좌클릭하면 클릭부위가 힘을 받는다.
좌클릭이벤트는 BPI_HitReaction에 정의되어 있고 HitLocation과 Bone Name을 전달한다.
HitReactoin BPI는 Character의 EventHitReaction을 call하고 Bone이름을 전달한다.
RootBone이 아니고 Hit된적이 없다면
전달된 bone을 BoneName변수에 저장한다. 이후 타임라인이벤트를 실행하는데
타임라인은 변화는 다음과 같다.
타임라인이 끝나면 Weight를 0으로하고 Physics Simulate를 꺼준다 Hit변수도 꺼준다.
시퀀스2는 메시에 카메라 방향으로 충격을 가한다.
TimeLine에서 만들어진 weight는 EventTick에서 반영된다.
실행해보면 충격이 약하다 약한 이유는 휘어질 본이 지정되기 때문이다. 휘어질 본은 무조건 spine_01로 지정하고 충격은 클릭한 Bone그대로 두었다. 타임라인도 손을봐 좀도 길게 쎄게 했다.
add impulse의 힘도 쎄게했다. BoneName은 마우스가 클릭한곳으로 놔두었다.
EventTick에서BoneName을 끊고 Spine_01로 고정했다. BoneSpine을 만들고 default로 spine_01로 했다
이후 움직임이 나아졌다.
다리쪽에도 충격을 전달하기 위해 BoneName을 pelvis로 해봤지만 너무 많이 날라갔다. 다리 2개를 추가해주었다 한개만하는게 더 자연스러웠지만 2개를 다 하라는 에러메세지가 나왔다 ㅠㅠ
좌클릭 노드 찾기
레벨블루프린트에는 아무런 로직이 없다.
배경을 눌러보니
뭔가 많다
하지만 EventGraph에는 아무것도 없다.
게임모드오버라이드의 디폴트폰을 봤다.
좌클릭이 있다. Hit된Actor의 BoneName을 얻어 올수 있는것 같다.
카메라의 위치에서 보는 방향으로 LineTrace를 해 충돌액터를 구한다.
TraceHit의 Result 리턴값중 HitBoneName이 있었다.
액터와 컴포넌트의 Tag를 검사한다. 컴포넌트Tag는 Slider를 움직일때 사용하는 것 같다.
'Contents Example > Physics Animation' 카테고리의 다른 글
1.1 Physics Animation Blending (0) | 2024.04.26 |
---|