
기하와 벡터에서 배웠던 vector와 동일
방향, 크기를 가지며 (x, y, z) 값으로 표현
Actor의 location을 표현하기 위해 vector가 사용되는데, 월드 좌표계에서의 원점을 시작으로 벡터의 끝 방향이 위치하는 곳이 해당 actor의 location임을 의미
해당 물체가 바라보는 방향 (길이는 1)

대부분 local 좌표계에서의 x축 방향을 가리키며 mesh의 앞방향도 x축으로 맞추는게 좋음
local의 좌표계와 별개로 각 component들도 자기만의 transform을 가질 경우 자기만의 좌표계를 또 가짐

물체의 회전 각도를 표시하는 자료형으로, (Roll, Pitch, Yaw)의 3개의 값으로 이루어짐
각 3개의 값은 각 축에 대해 얼마나 회전되어 있는지를 가리키는 실수값
Rotator를 벡터로 변환할 수 있는데 이 때의 벡터는 해당 물체의 forward vector와 동일
마찬가지로 transform을 가지는 각 component들은 자기만의 rotator 값을 가짐




액터의 이동, 회전 같은 트랜스폼은 기본적으로 Root Component를 기준으로 작동
보통 액터의 최상위 루트는 DefaultSceneRoot이므로 여기에 맞추어 mesh를 이동

그러면 DefaultSceneRoot를 기준으로 회전이 일어나게 된다
결과

Object Channel
Trace Channel
실제 물리적 충돌(Physics Collision) 시에 두 오브젝트가 어떻게 반응할지를 결정
오브젝트 유형을 정의하여, 서로 다른 타입의 오브젝트 간 충돌 여부와 방식을 설정

Object Type
해당 컴포넌트의 Object type도 설정 가능
여러 종류의 preset들이 있으므로 원하는 것을 사용하거나 규칙 추가 가능

레이캐스트(ray cast), 선형 추적(line trace), 구체 추적(sphere trace) 등 트레이스 명령에서 어떤 오브젝트가 감지될지, 혹은 무시할지를 제어
특정 범위나 경로를 검사할 때, 어떤 타입의 오브젝트에 반응할지 정하는 채널
Collision 설정 내 Trace Channel에서 커스텀 채널을 추가하거나 기본 채널(Visibility, Camera 등)을 사용할 수 있습니다.


mesh file을 들어가 collision 부위를 확인 가능

collision 탭을 통해 여러 종류의 collision을 추가 가능. auto는 자동으로 알맞게 생성
![]() | ![]() |
|---|
언리얼에서 모든 Interaction은 Event로 취급, 다루어짐
Interaction의 실행 단계
크게 overlap 과 hit가 존재
overlap: 물리 현상 없이 그냥 통과하면서 겹침을 인지 (통과)
hit: 부딪히는 물리 현상 존재하며 부딪혔다는 것을 인지 (충돌)
위 내용 중 회전문을 만드는 과정에서 Static Mesh와 Box Collision을 DefaultSceneRoot의 오른쪽으로 옮기는 과정이 있었음
하지만 이 경우엔 문이 돌아갈 때 Box Collision도 같이 회전하는 현상이 발생함
따라서 특정 컴포넌트만을 회전시키거나 이동시키고 싶을 때 Scene 컴포넌트의 자식으로 설정하는 방법이 존재

Scene 컴포넌트는 위치(Location), 회전(Rotation), 크기(Scale) 같은 3D 트랜스폼(transform) 정보를 가지고 있는 컴포넌트이다
이 Transform을 이용해 하나의 액터 안에서도 여러 컴포넌트들을 각각 원하는대로 이동, 회전, 확대시킬 수 있다


회전을 적용하고 또 회전을 적용하는 경우, Rotator에 Add로 Rotator를 적용하는 것은 문제가 발생할 수 있다
단순 덧셈이므로, 축별 회전 범위(-180~180도 등)를 초과할 수 있고, 회전하면서 바뀐 축 때문에 원하는 회전값이 나오지 않을 수 있다
따라서 rotator 계산에는 Combine 함수가 좋은데, 단순한 각 덧셈이 아니라 내부적으로 Quaternion(쿼터니언) 연산을 통해 회전이 합성되기 때문이다
쿼터니언 계산이므로, 회전 순서, 회전축 회전에 의한 오류를 잡아주어 Rotator 계산에 좋다


물리효과를 적용시킬 수 있게 해주는 항목

Linear Damping: 숫자가 높을수록 잘 미끄러짐
Angular Damping: 숫자가 높을수록 잘 회전함

Random Float in Range를 통해 0초부터 5초 사이의 랜덤한 숫자를 반환Set Timer by Event는 해당 시간에 특정 Event를 발생Set Timer by Function Name은 해당 시간에 특정 함수를 호출
Set Actor Location이 작동하지 않는 것이었다AddImpulse, AddForce 등을 사용해야 한다
Add Impulse를 사용하므로 target도 컴포넌트를 연결해야 함Self로 냅두면 컴파일 에러가 발생