久しぶりに記事を書きます。UE4初心者向けのかゆい所に手が届く内容です。
SideScrollerテンプレートのSideScrollerCharacterに、180度ターンを簡単に実装する記事です。
#SideScroller ターン時の問題点
UnrealEngine4で3Dのサイドスクロールゲームを作成する時に、大多数の人がSideScrollerテンプレートを使うと思われます。
SideScrollerテンプレートはデフォルトで2Dのように移動、ジャンプが実装されているため、自分もサイドスクロールゲームを作成する時はよく使用します。
ただ、このSideScrollerテンプレート、絶妙に困る部分が一つあります。
それは逆を向く時です。
こんな感じで、向いてる方向と逆に向きたい場合、このGIFのように正面を向いてターンをするようになっているので、ボタンを押したらすぐに逆を向いてほしい場合には適しません。
なので、これを解決するためにSideScrollerCharacterに、簡単な180度ターンを入れてしまいましょう。
UE4フォーラムの3D Sidescroller: How to make a character turn in instant 180° intervals?を元に実装しています。
今回はBluePrintで実装しています。
#180度ターン(SideScroller限定)
さっそくサイドスクロール用の180度ターンを実装しましょう。
まず、SideScrollerCharacterを開きます。
位置がわからない人は、以下の画像を見てください。
修正を加えるのは、イベントグラフのMovement inputとコメントされている部分です。
Axis MoveRightインプットイベントの修正に入る前に一つ、180度ターンを処理を行う関数を作成しましょう。
##関数作成
関数を作成します。関数の部分にある+のボタンをクリックして、関数を作成します。
以下は、関数名の例です。
次にインプットにFloatの変数ピンを一つ追加します。
以下は名前の例です。
最後に関数を以下の画像のように実装します。
SweepとTeleportのチェックを入れているのは、一応プレイヤーが壁等を通過してしまう可能性を考慮にいれたのと、直ぐに逆を向いてしまうのでテレポートさせて変な物理の粗ぶり等を防ぐためです。
Blueprintueにソースをコピペして貼り付けられるものを作成したので、使うようであればこちらからジャンジャン使ってください
SideScroller180Rotate
##インプットイベント修正
次にAxis MoveRightインプットイベントに、先ほど作成した関数を呼び出すように、以下のように修正します。
こちらもBlueprintueにソースをコピペして貼り付けられるものを作成したので、使うようであればこちらからジャンジャン使ってください
SideScroller180RotateInputEvent
#実装結果
上記を実装すると、以下のようにすぐに逆を向くようになりました。やったね!
これで地味に物足りない部分が簡単に解決しました。
ゲームによってはすぐに逆を向いてほしいというのもあるので、ここに書かれているのを参考にサクッと180度ターンを実装してしまいましょう。