第7回「Anthemっぽい飛行-その1」

今回はAnthemっぽい飛行の制作メモ。

と、その前にブログの更新がいつもより遅いことについて愚痴らせてください。

タイトルで「社畜でもロボゲーできるもん!」とうたってたが……スマン、ありゃウソだった

社畜じゃロボゲーできねーよ!!

残業100時間越えが3か月続くとかふざけんな!!死ぬわ!!

・・・そりゃ確かにもっとやばい人といっぱいいるけどさ、少なくとも休日動けんのですよ、真面目に・・・

社畜じゃなくなったらタイトル変えます。もっと楽な部署にいきたい…

はい、というわけでAnthemっぽい飛行の制作していきます。

今回は一旦別のサードパーソンベースを用意して一旦飛行だけのお試しを作ります。

目指す挙動は下記の画像のような物。



最初はカメラの方向にキャラを飛ばすという考えに囚われすぎていてカメラも同時にいじり始めたもんだからわけわかんない状態になっていましたが、キャラクターをカメラの方向に向かせて前方に進めると考えを改めたら結構楽にできました。

それがこのBP

移動と飛行の切り替え
左スティックの入力切替

・飛行と歩行の切り替え

まず飛行モードと歩行モードの切り替えをFlipFlopとSetMovementoModeで作成。

「Flying」のときは「UseControllerRotationPich」にチェックを入れます。

これは第二回で触れていたキャラの向き(Yaw)をカメラに追従させるやつのPich版で、これにチェックを入れることでカメラの上下向きに合わせてキャラクターの向いている角度も変わります。

キャラクターの向きも変われば、あとは「Flying」の時にキャラクターを前方に移動させるだけでカメラの向いている方向にキャラクターが前進するという仕組みです。

「Walking」にモードを切り替えるときに「UseControllerRotationPich」のチェックを外しますが、実はこれだけだとキャラクターが「Walking」にモードを切り替えたときの向きのままになってしまいます。

なので「SetActorRotation」でPitch軸の数値だけを0にしてその軸の回転をリセットすることでキャラの向きを戻します。

ちなみに Flying中の前に進む処理について は AddActorLocalOffsetを使用 を使用していますが、 ハイブーストや移動にvelocityやAddMovementInputを使っている関係かこの2つは前に進む処理に使用するとなんかおかしくなってしまいました。

まあ、私のBPの組み方が悪いだけかもですが…

・左スティックの入力切り替え

サードパーソンベースのBPはフィールドに対して軸を取っています。そのためキャラクターがカメラに合わせて上を向いていても、左スティックを前に倒すと地面に対して前に進む、といった感じになります。

今回は上記の画像に上げた通り、「Flying」中はカメラの向きを主軸にしたいので、画像のようなBPとしました。

「Flying」中は「UseControllerRotationPich」にチェックが入っているのでそれを判定としてスティックの入力をBranchで切り替えています。

で、ターゲットを「FollwCamera」にした「GetRightVector」及び「GetUpVector」を設定してやることで飛んでいる最中はカメラを主軸にキャラクターが左スティックで移動するようになりました。

後でカメラをいじる予定なので恐らくターゲットの「FollwCamera」はその時に切り替えが必要になるかもです。カメラの設定の仕方にもよるのでしょうが、調べている感じ変更が必要そうです。

以上でAnthemっぽい(全然別物だけど)飛行のベーシックは完成。

次回はこれをオリロボの方に組み込んで、加減速などの処理、あと障害物に当たったときは飛行が解除されるとかの処理を試してみようと思います。

カメラの処理はその後ですかね。

次回は「Anthemっぽい飛行モードの実装―その2」の予定

ああ、社畜辞めたい・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です