キャラクターの部位切断ができるコードプラグイン『EnGore: Procedural Dismemberment』を使ってみました。
マーケットプレイスで販売しているコードプラグインで、価格は14,792円でした。
EnGore: Procedural Dismemberment:コードプラグイン – UE マーケットプレイス
エンジンにインストールします。
現時点で既にUE5.4にまで対応しています。
私はUE5.3.2で使いました。
公式のチュートリアルもあります。
プラグインの有効化と確認
編集 > プラグインでEnGore: Dismemberment Systemにチェックを入れて再起動。
それとControl Rigにチェックが入っていることも確認しておく。
スケルトンに対してCreate Dismemberment Rig
SK_Mannequinで右クリックして、
スクリプト化された アセット アクション > Create Dismemberment Rig
するとSK_Mannequin_Dismemberment_AnimBPという名前のアニメーションブループリントが作成されます。
キャラクターBP
今回はサードパーソンテンプレートのプレイヤーキャラクターであるBP_ThirdPersonCharacterを開きました。
敵の部位切断をする場合は、敵キャラクターBPを使う必要があります。
コンポーネントにDismemberment Componentを追加します。
Dismemberment Componentを選択して詳細を見る。
Dismemberment > Dismembered Anim InstanceがNoneになっているので、SK_Mannequin_Dismemberment_AnimBPに変更します。
イベントグラフ
コンポーネントのDismembermentをドラッグ&ドロップでイベントグラフに配置。
そこから線を伸ばしてDismember Limbを配置します。
セットアップとしては、これだけで完了です。
各自の攻撃システムにDismember Limbを繋げる必要があります。
私の場合
プレイヤーキャラクターの攻撃時にSphere Trace By Channelを使っている場合、Out Hit → Break Hit ResultにHit Bone Nameがあり、このHit Bone Nameを敵側のブループリントに送る必要があります。
敵キャラクターBPに送られてきたHit Bone NameをDismember LimbのBone Nameに繋ぎました。
Impulseは「衝撃」です。
とりあえず全て100にしてテストプレイしました。
バッサバッサと斬れました。
切断後の敵の処理は何も加えていないですから、敵は部位欠損しても普通に動きます。切断後の敵の動き方に変化を加えるのは大変そうなので、トドメの時のみ切断されるようにしようかと思います。
大満足ですが中級者以上向け
敵の部位欠損が30分もかからず簡単に導入できて、動作にも大満足です。
各自の攻撃システムに実装する必要がありますから、中級者以上向けのコードプラグインかと思います。
コメント