본문 바로가기
Unreal Engine

Unreal Engine Vector (벡터) 변수와 위치 제어, Rotator (로테이터) 변수와 회전 제어

by hfgraphic 2025. 10. 14.
반응형

 

Vector (벡터) 변수와 위치 제어

 

이제 Vector (벡터) 변수를 만들어 봅시다.

 

1. Vector 변수 생성 및 설정

  1. 변수 생성: 새 변수를 만들고 이름을 **'CamLocation' (카메라 위치)**이라고 하겠습니다. (나중에 더 적절한 이름으로 바꿀 것입니다.)
  2. 유형 설정: 변수 유형을 **Vector (벡터)**로 변경합니다.
  3. 값 확인: Ctrl을 누른 채 변수를 드래그하여 **Compile (컴파일)**을 클릭하면 기본값을 볼 수 있습니다.
  4. Vector의 구성: Vector는 세 개의 숫자, 즉 X, Y, Z 축의 값으로 구성됩니다. 이는 일반적으로 게임 세계 내의 **위치(Location)**나 **방향(Direction)**을 지정하는 데 사용됩니다.
  5. 값 설정: 이 벡터를 사용하여 무언가의 위치를 설정할 수 있습니다. 예를 들어, X, Y, Z 값을 모두 100, 100, 100으로 설정하겠습니다.
  6. 출력하기: 이 벡터를 Print String에 연결하여 출력하면 (자동으로 문자열로 변환됨) Play (실행) 시 우리가 설정한 X=100, Y=100, Z=100 값이 화면에 표시되는 것을 볼 수 있습니다.

 

2. Vector를 이용한 액터 위치 변경

Vector 변수의 실제 사용 예를 보여드리기 위해, 레벨 내의 바닥 메시 위치를 변경해 보겠습니다.

  1. 액터 참조 생성: 뷰포트에서 **바닥 메시(Ground Mesh)**를 선택한 다음, 레벨 블루프린트에서 마우스 오른쪽 버튼을 클릭하여 **바닥에 대한 참조(Reference)**를 생성합니다.
  2. 변수 이름 변경: 우리가 바닥의 위치를 다룰 것이므로, 이전에 만든 'CamLocation' 변수 이름을 **'FloorLocation' (바닥 위치)**으로 바꾸는 것이 더 적절할 것입니다.
  3. 위치 설정 노드: 바닥 참조 핀을 당겨서 **'Location'**을 검색하고 'Set Actor Location (액터 위치 설정)' 노드를 선택합니다.
  4. 연결: Print String의 연결을 끊고, Event BeginPlay의 실행 핀을 Set Actor Location에 연결합니다.
  5. 위치 지정: 'FloorLocation' 변수 노드를 Set Actor Location'New Location' 핀에 연결합니다.
  • 결과: 이제 게임이 시작되면, 이 FloorLocation 변수(100, 100, 100)로 바닥의 위치를 설정하게 됩니다. (원래 위치는 0, 0, 20 정도입니다.)
  1. 액터 이동성 설정: 액터의 위치를 게임 중에 변경하려면, 뷰포트에서 바닥 메시를 선택하고 디테일 패널에서 Mobility (이동성) 설정을 **'Movable (이동 가능)'**로 변경해야 합니다.
  2. 실행 지연(Delay) 추가: 위치 변경이 너무 빠르게 일어나서 눈치채지 못할 수 있으므로, Set Actor Location노드 이전에 'Delay (지연)' 노드를 추가하겠습니다. **Duration (지속 시간)**을 3초로 설정하여 코드가 3초 후에 실행되도록 합니다.
  3. 실행: Compile하고 Play를 클릭하면, 3초 후에 바닥의 위치가 100, 100, 100으로 변경되는 것을 볼 수 있습니다.

이것이 바로 우리가 Vector 변수를 사용할 수 있는 용도입니다. 위치, 회전 또는 스케일과 같은 3차원 데이터를 담는 데 사용됩니다.

 

 

Rotator (로테이터) 변수와 회전 제어

 

Rotator (로테이터) 변수는 아이템의 **회전(rotation)**을 변경하는 데 사용됩니다.


 

1. Rotator 변수 생성 및 설정

  1. 변수 생성: 새 변수를 만들고 이름을 **'FloorRotation' (바닥 회전)**이라고 하겠습니다.
  2. 유형 설정: 변수 유형을 **Rotator (로테이터)**로 변경합니다.
  3. 변수 사용: Ctrl 키를 누른 채 드래그하여 변수를 가져옵니다.
  4. 값 확인: **Compile (컴파일)**을 클릭하면 이 변수가 세 개의 숫자를 포함하고 있는 것을 볼 수 있습니다. 이 값들이 바로 회전을 나타냅니다.
  • 뷰포트에서 바닥과 같은 어떤 항목을 클릭하면, 디테일 패널에서 이 세 개의 값(X, Y, Z)이 회전 값인 것을 확인할 수 있습니다.
  1. 값 설정: 이 변수를 통해 게임 내에서 회전을 동적으로 편집할 수 있습니다.
  • X축을 20도, Y축을 80도, Z축을 30도로 회전하도록 설정하겠습니다.

 

2. Rotator를 이용한 액터 회전 적용

 

  1. 액터 참조 생성: 이전 강의에서와 마찬가지로, **바닥 메시(Floor Mesh)**를 클릭하고 그래프에서 마우스 오른쪽 버튼을 클릭하여 **바닥 참조(Floor Reference)**를 생성합니다.
  2. 회전 설정 노드: 바닥 참조 핀을 당겨 **'rotation'**을 검색한 후, 'Set Actor Rotation (액터 회전 설정)' 노드를 선택합니다.
  3. 연결: Event BeginPlay의 실행 핀을 Set Actor Rotation에 연결하고, 'FloorRotation' 변수를 'New Rotation' 핀에 연결합니다.
  4. 실행 지연(Delay) 추가: 회전 전후의 차이를 명확히 보기 위해, Delay (지연) 노드를 추가하고 시간을 3초로 설정합니다. (Event BeginPlay 다음에 Delay를 연결하고, Delay 다음에 Set Actor Rotation을 연결합니다.)
  5. 결과: 게임이 시작되면, 3초 후에 바닥 메시가 우리가 설정한 값(X: 20, Y: 80, Z: 30)으로 회전하게 됩니다.

 

3. 코드 정리 (Good Practice)

  • 코드를 정리하는 것은 항상 좋은 습관입니다.
  • 회전 관련 노드들을 선택하고 C 키를 눌러 **주석(Comment)**을 달아줍니다. 예를 들어 **'Floor Rotation'**이라고 작성합니다.
  • 주석을 클릭하여 색상을 변경하거나 확대/축소 시 버블 표시 여부 등을 설정하여 코드를 더 쉽게 정리할 수 있습니다.

 

4. 실행

  1. Compile하고 Play를 클릭합니다.
  2. 3초 후, 바닥 메시가 회전하는 것을 볼 수 있습니다.

이것이 바로 Rotator 변수입니다. 메쉬나 액터의 회전을 제어하는 데 사용할 수 있습니다.

 

반응형