충돌
중요한 것은 Object Channels, 그리고 충돌의 대상이 아니라, 충돌을 하는 내가 더 중요하다는 것이다.
Object Channel
Name : 해당 채널의 이름
Default Response : 각 물체에 대한 기본 설정. 각각 물체에 대해서는 따로 해주어야 함.
Ignore : 무시
Overlap : 겹침
Block : 가로막음
Preset
Collision Enabled :
Object Type : 오브젝트의 타입 앞서 설정한 것들
Overlap
Generate Overlap Events를 반드시 체크해주어야 한다.
겹침을 판정할 때는 Generate Overlap Events를 체크해주어야 하고,
하나는 Block 하나는 Overlap으로 해야한다.
Block - Overlap, Overlap - Block, Overlap - Overlap의 경우만 발생한다.
Block - Block의 경우는 겹쳐지지 않아서 발생하지 않는다.
Multi Trace
판단 하기 위해서 WeaponFireTrace라는 채널을 추가하여 사용한다.
다중 트레이스, Overlap을 전부 인식하고, 처음 Block을 만날 때까지 충돌을 판정한다.
For Each Loop를 쓴다는 점이 조금 다르다.
Spawn Emitter at Location을 통해, 해당 위치에 Emitter를 생성하고, Play Sound 2D를 통해 소리를 재생한다.
Multi Line Trace For Objects
또 다른 방식으로 내가 충돌 판정을 하고 싶은 오브젝트 타입을 정하고 사용할 수 있는 이런 방식도 존재한다.
하나의 오브젝트 타입으로 Profile을 정해서 할 수 있는 방식.
플레이어 조준
위젯 블루프린트를 만들어서, 줌하는 경우에 생성 Viewport에 추가하고 타임라인으로 Spring Arm의 Target Arm Length를 바꾸어주고 있다.
Begin Overlap에서 아이템 오브젝트를 저장하고, 아이템의 존재 여부를 True로 한다.
End Overlap이 되면 반대로 아이템을 비우고, 아이템의 존재 여부를 False로 한다.
액션을 이용해서 버튼을 누르면 함수가 동작하게 하고 여기에 Operate_BP를 이용해서, 아이템의 존재 여부와 유효 여부를 확인하고 몽타주를 재생한다. 그리고 변수 하나를 이용해서 아이템의 습득 여부를 바꾸고 액터를 파괴한다.
🦴🦾참고
Collision
https://dev.epicgames.com/documentation/en-us/unreal-engine/API
멀티 라인 트레이스 오브젝트
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/using-a-multi-line-trace-raycast-by-object-in-unreal-engine?application_version=5.3
멀티 라인 트레이스 채널
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/using-a-multi-line-trace-raycast-by-channel-in-unreal-engine?application_version=5.3
Is Simulating Physics
https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Physics/IsSimulatingPhysics?application_version=5.3
Add Impulse at Location
https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Physics/AddImpulseatLocation?application_version=5.3