Part20では湖を配置しましたが、実際はハリボテで、湖の上を歩けるものでした。
今回は、湖を泳げるようにしていきたいと思います。
初めての方に
アンリアルエンジンの記事では、初心者がアンリアルエンジンの勉強をのんびりしていき、最終的にはゲームを完成させる目的で、記事をあげていっています。紹介する手法が必ずしも最適な方法とは限りませんので、ご了承ください。
また、ゲーム完成まで温かく見守っていただけると幸いです。
湖の上を歩けないようにする
まず、湖を当たり判定を消して、湖の上を歩けないようにしてみます。
湖を選択して、WaterSurface(継承)を選択します。
コリジョンプリセットがBlockAllDynamicになっているので、No Collisionを選択します。
なぜか、Customに変わったので、無視するにチェックします。
とりあえず、これで水の中には入れるようになりました。
水中の設定を入れる
とりあえず水の中に入ることができましたが、見た目上の話だけであって、中では普通に歩けますし、ジャンプもできます。
今回目指すところは、水の中に入ったら、泳ぐようにしたいです。
なので、まず水中にいるという判定を追加する必要があります。
アクタを配置のボリュームの中から、物理ボリュームを選択して、ドラッグして入れます。
立方体の箱ができました。
詳細の画面のキャラクター移動の項目のWater Volumeにチェックを入れます。
これにより、この立方体の中は、水の中と認識されます。
ブラシセッティングの項目のX Y Z を変更して、湖と同じサイズにします。
こんな感じにしました。
あとは、Zの位置を調整して、上手く水面と一致するように配置します。
これで、水の中を歩くと少し遅くなってるのがわかるかと思います。
ただ、泳ぐモーションを準備していないので、わかりづらいですね。
泳ぐモーションを設定する
問題は、泳ぐモーションの設定です。
色々調べたのですが、アニメーションがマーケットプレイスで有料で売られてるくらいで、あまり情報がありません。
しかしながら、Youtubeで解説動画があったので、紹介させて頂きたいと思います。
やり方も全部説明されているのですが、全部英語なので、簡単にまとめさせていただきます。
Youtube説明欄のリンクから、泳ぎモーション・待機モーションのFBXをダウンロードする
コンテンツブラウザにインポートする
インポート時には、スケルトンを設定すること。
コンテンツブラウザを右クリックして、ブレンドスペース1Dを作成する
ここでもスケルトンを間違えないように注意
作成されたファイルをダブルクリックする。
以下の図のようにドラッグして配置する。(Idleが左側、fwdが右側)
名前とMaximum Axis Valueを変更します。
移動速度がMaximum Axis Value以上になったとき、完全にfwdのアニメーションとなり、0~299の間はブレンドして徐々にアニメーションが変わるようです。
コンテンツブラウザからMannequin > Animations > ThirdPersion_AnimBPを開く
右下に先ほど作成したブレンドスペース1Dのファイルがあるので、ドラッグして入れる。
上記のようにブループリントを作成する
IsSwimmingはBool型の変数を作成。
IsSwimmingがTrueかFalseによって、使うアニメーションを切り替える設定のようです。
イベントグラフを開き、以下のブループリントを追加する
後ほど使用するGetCharactor関数を作成するようです。
一番右側のセットは、As Charactorから線を引っ張って、「変数へ昇格」で作成
赤枠の部分を追加する(Get Charactor)
右下の部分に以下のように追加する
右から2つ目のは、イコールです。
これで、水中にいる場合は、泳ぐアニメーションに変りました。
まとめ
今回は、水中に入り、泳げるように設定しました。
意外と泳ぐ情報がなく、調べるのに苦労しました。
Youtubeで探しても、日本語の解説動画より英語の解説動画の方が圧倒的に多く、欲しい情報を探すのに苦労します。
これからも役立ちそうな情報があれば、紹介していきたいと思います。