見出し画像

[UEFN]第5章.アセットのアニメーションに合わせてプレイヤーがダメージを受けるようにしよう


執筆者さんコメント

 この記事は 7nap がモンドリアン様クリエイティブ作品「Save the CEO:2911-3111-5636」を作成する過程で、いろいろな情報を参照し見よう見まねで実践した内容を記載しています。必ずしも*正攻法ではない可能性がありますのでご了承ください。(*正しくない、執筆後に変更になっているなど)

シリーズ記事

第1章 第2章 第3章 第4章 第5章 第6章 第7章

①ダメージボリュームを設置しよう

ダメージボリュームはプレイヤーが範囲内に入ると文字通りダメージを受けることができるデバイスです。今回はこのダメージボリュームをボスのアセットのボーンにくっつけてボスがアニメーションするとダメージボリュームも一緒にアニメーションするように設定します。

今回は、右手、左手、右足、左足用のダメージボリュームを設定します。左手には槍を持っているとして、左手だけ長いダメージボリュームにします。

左下の詳細タブにてダメージボリュームの大きさや、ダメージ量などいろいろなパラメータを設定することができます。確認してみてください。

②レベルシーケンスを作成する

アニメーション動作時の設定をするためレベルシーケンスを作成します。
アセットと同じフォルダや新しいフォルダを作成し、右クリック、シネマティクス、レベルシーケンスの順にクリックしてください。

②アセットを登録する

作ったらダブルクリックで開きます。
画面下部に動画のバーのようなものが出てきます。
「+トラック」をクリック、「シーケンサへのアクタ」、ボスアセットの名前を選択してください。

③アニメーションを適用する

選択するとアセット名の水色のバーが表示されます。
そのアセット名右の「+」より「アニメーション」、そして使用したいアニメーションを選択します。

アニメーションが適用できたら、オレンジ色の再生バーのようなものを左右に動かしてみてアセットがアニメーションするかどうか試してみてください。動いていればOKです。

④ダメージボリュームを登録する

「+トラック」をクリック、「シーケンサへのアクタ」、ダメージボリューム名を選択します。(今回は右手)

ボスアセットの右手ボーンと親子付けする

登録したダメージボリュームの右「+」より「親子付け」、「現状を保持」を選択します。(よくわかりませんがこうする)

同じく、ダメージボリュームの右「+」より「親子付け」、ダメージボリュームをくっつけたボスアセットを選択します。

ボスアセットを選択するとボスアセットに設置されているボーンの一覧が出てきますので、ダメージボリュームをくっつけたいボーンを選択します。
(今回は右手なので「hand_r」)を選択します。

この状態だと位置情報がずれているため右手にまだくっつていません。
レベルシーケンス内のダメージボリュームを選択し、右にトランスフォーム情報より「位置」をX:0.0、Y:0.0、Z:0.0に設定してください。

そうするとダメージボリュームが右手にくっつきます。
しかしこの状態だと選択している再生バーのキーフレームの位置だけしか位置情報が変わっておらず、再生バーを動かすとうまく追随してきません。

調整する

その場合、再生バーをずらした状態で、ダメージボリュームの Transform バーにて赤丸の中にある白い〇をクリックしてキーフレームを一つふやしてください。

この状態でさらに、右のトランスフォーム情報より「位置」をX:0.0、Y:0.0、Z:0.0に設定してください。
そうするとうまくいったりいかなかったりします。
最初に設定されていたキーフレームを削除してから、新しく作ったキーフレームをドラッグしてずらすなどにて調整してみてください。
(この辺は正攻法がよくわかりません。試行錯誤してみてください。)

成功するとダメージボリュームがきれいにボーンに追随するようになります。

ダメージボリュームの大きさを調整する

ダメージボリュームの大きさを変えたい場合は、右の詳細タブより「絶対スケール」の数値を変えてください。

大きさを 2.0 にするとこのようにダメージ範囲が変わります。

右手以外も同様の手順で追加していく

右手の説明だけさせていただきました。
この手順に従い、左手、右足、左足なども追加していきます。
たとえばこのタイミングでダメージ範囲を大きくしたいなどの場合は、再生バーでそのタイミングまで動かし、その場所でキーフレームを追加、ダメージボリュームの大きさを変えることによってうまく大きさが大きくなったり小さくなったりしてくれます。

⑤Verseに登録してゲーム中にアニメーションするようにしよう

作成したレベルシーケンスをムービーシーケンスの仕掛けに登録する

ムービーシーケンスの仕掛けを3D空間に配置しする。

詳細タブより「シーケンス」カラムにて作成したレベルシーケンスを選択する。

このムービーシーケンスの仕掛けをVerseに登録します。

Verseを設定する

creative_device へアトリビュートする

    @editable
    BossSmashCinema : cinematic_sequence_device = cinematic_sequence_device{}

アニメーション再生用関数を用意する

    BossSmashAnimation()<suspends>:void=
        BossSmashCinema.Play()

メインルーチンにて関数呼び出しを行う

    BossSmashAnimation()

ちなみに停止するときは、

BossSmashCinema.Stop()

一時停止するときは、、

BossSmashCinema.Pause()

🔸MONDRIANオリジナルマップ🔸
Save the CEO!!
2911-3111-5636

一緒にゲーム、創りませんか?

【大募集】 モンドリアンは #PLATEAU を活用した #UEFN コンテンツをリリースするために日々、研究中! お気軽にお問合せ&DMを!

DMでも受付中!モンドリアン公式 X (旧Twitter)
FORTNITE , ROBLOX , Minecraft , ZEPETO 4プラットフォーム対応
ゲーム・メタバース事業/スタジオ【モンドリアン】X (旧)Twitter

この記事が参加している募集

自己紹介をゲームで語る

メタバースやってます

この記事が気に入ったらサポートをしてみませんか?