GrabとRelease
この機能を実装するにあたって三つのBPを編集する必要があります。
- PlayerPawnBP
InputActionの実装
- ControllerBP
static mesh bpのインターフェイスを呼び出す関数、コントローラーのOverlapの実装
- 掴みたい物のstatic meshをもつstatic mesh bp
コントローラーへのアタッチの実装
- Interface
PickUp,Dropを宣言する、つかめるオブジェクトとつかめないオブジェクトをこれが実装されているか否かで判定します。
以下にBPを分けて掲載します
仕組み概略
- ControllerBPでTick毎にGrabActorを呼び出している時を除きGetActorNearHandを呼び出します
- GetActorNearHandでMotionControllerについているSphereCollision内のインターフェイスが実装されているオブジェクトで一番距離が近いオブジェクトを返します
- PlayerPawnBPでInputAction GrabRight(or Left)のPressedからコントローラーのGrabActorを呼び出します
- GrabActorからstaticmeshBPに実装されているPickUPを呼び出します、AttachedActorにGetActorNearHandから返されたオブジェクトを代入します。
- PlayerPawnBPでInputAction GrabRight(Left)のReleaseからコントローラーのReleaseActorを呼び出します
- ReleaseActorからコントローラーに掴まれているstaticmeshBPのAttachParentが掴んでいるコントローラーであることを確認してstaticmeshBPのDropを呼び出します、またAttachedActorを空にセットします。
Player Pawn BP

Controller BP