반응형
Vector (벡터) 변수와 위치 제어
이제 Vector (벡터) 변수를 만들어 봅시다.
1. Vector 변수 생성 및 설정

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

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

- 액터 참조 생성: 뷰포트에서 **바닥 메시(Ground Mesh)**를 선택한 다음, 레벨 블루프린트에서 마우스 오른쪽 버튼을 클릭하여 **바닥에 대한 참조(Reference)**를 생성합니다.
- 변수 이름 변경: 우리가 바닥의 위치를 다룰 것이므로, 이전에 만든 'CamLocation' 변수 이름을 **'FloorLocation' (바닥 위치)**으로 바꾸는 것이 더 적절할 것입니다.
- 위치 설정 노드: 바닥 참조 핀을 당겨서 **'Location'**을 검색하고 'Set Actor Location (액터 위치 설정)' 노드를 선택합니다.
- 연결: Print String의 연결을 끊고, Event BeginPlay의 실행 핀을 Set Actor Location에 연결합니다.
- 위치 지정: 'FloorLocation' 변수 노드를 Set Actor Location의 'New Location' 핀에 연결합니다.
- 결과: 이제 게임이 시작되면, 이 FloorLocation 변수(100, 100, 100)로 바닥의 위치를 설정하게 됩니다. (원래 위치는 0, 0, 20 정도입니다.)

- 액터 이동성 설정: 액터의 위치를 게임 중에 변경하려면, 뷰포트에서 바닥 메시를 선택하고 디테일 패널에서 Mobility (이동성) 설정을 **'Movable (이동 가능)'**로 변경해야 합니다.
- 실행 지연(Delay) 추가: 위치 변경이 너무 빠르게 일어나서 눈치채지 못할 수 있으므로, Set Actor Location노드 이전에 'Delay (지연)' 노드를 추가하겠습니다. **Duration (지속 시간)**을 3초로 설정하여 코드가 3초 후에 실행되도록 합니다.
- 실행: Compile하고 Play를 클릭하면, 3초 후에 바닥의 위치가 100, 100, 100으로 변경되는 것을 볼 수 있습니다.
이것이 바로 우리가 Vector 변수를 사용할 수 있는 용도입니다. 위치, 회전 또는 스케일과 같은 3차원 데이터를 담는 데 사용됩니다.
Rotator (로테이터) 변수와 회전 제어
Rotator (로테이터) 변수는 아이템의 **회전(rotation)**을 변경하는 데 사용됩니다.
1. Rotator 변수 생성 및 설정

- 변수 생성: 새 변수를 만들고 이름을 **'FloorRotation' (바닥 회전)**이라고 하겠습니다.
- 유형 설정: 변수 유형을 **Rotator (로테이터)**로 변경합니다.
- 변수 사용: Ctrl 키를 누른 채 드래그하여 변수를 가져옵니다.
- 값 확인: **Compile (컴파일)**을 클릭하면 이 변수가 세 개의 숫자를 포함하고 있는 것을 볼 수 있습니다. 이 값들이 바로 회전을 나타냅니다.
- 뷰포트에서 바닥과 같은 어떤 항목을 클릭하면, 디테일 패널에서 이 세 개의 값(X, Y, Z)이 회전 값인 것을 확인할 수 있습니다.
- 값 설정: 이 변수를 통해 게임 내에서 회전을 동적으로 편집할 수 있습니다.
- X축을 20도, Y축을 80도, Z축을 30도로 회전하도록 설정하겠습니다.
2. Rotator를 이용한 액터 회전 적용
- 액터 참조 생성: 이전 강의에서와 마찬가지로, **바닥 메시(Floor Mesh)**를 클릭하고 그래프에서 마우스 오른쪽 버튼을 클릭하여 **바닥 참조(Floor Reference)**를 생성합니다.
- 회전 설정 노드: 바닥 참조 핀을 당겨 **'rotation'**을 검색한 후, 'Set Actor Rotation (액터 회전 설정)' 노드를 선택합니다.
- 연결: Event BeginPlay의 실행 핀을 Set Actor Rotation에 연결하고, 'FloorRotation' 변수를 'New Rotation' 핀에 연결합니다.
- 실행 지연(Delay) 추가: 회전 전후의 차이를 명확히 보기 위해, Delay (지연) 노드를 추가하고 시간을 3초로 설정합니다. (Event BeginPlay 다음에 Delay를 연결하고, Delay 다음에 Set Actor Rotation을 연결합니다.)
- 결과: 게임이 시작되면, 3초 후에 바닥 메시가 우리가 설정한 값(X: 20, Y: 80, Z: 30)으로 회전하게 됩니다.
3. 코드 정리 (Good Practice)

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

- Compile하고 Play를 클릭합니다.
- 3초 후, 바닥 메시가 회전하는 것을 볼 수 있습니다.
이것이 바로 Rotator 변수입니다. 메쉬나 액터의 회전을 제어하는 데 사용할 수 있습니다.
반응형
'Unreal Engine' 카테고리의 다른 글
Unreal Engine 변수 연산자 (Variable Operators) (0) | 2025.10.14 |
---|---|
Unreal Engine Transform (트랜스폼) 변수 유형 (0) | 2025.10.14 |
Unreal Engine 텍스트 기반 변수 유형: Text, String, Name (0) | 2025.10.13 |
Unreal Enfgine (0) | 2025.10.13 |
Unreal Engine Boolean (불리언) 변수 유형 (0) | 2025.10.13 |