2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【UE4】SideScrollerテンプレートのSideScrollerCharacterに180度ターンを簡単に実装

Last updated at Posted at 2018-09-19

久しぶりに記事を書きます。UE4初心者向けのかゆい所に手が届く内容です。
SideScrollerテンプレートのSideScrollerCharacterに、180度ターンを簡単に実装する記事です。

#SideScroller ターン時の問題点

UnrealEngine4で3Dのサイドスクロールゲームを作成する時に、大多数の人がSideScrollerテンプレートを使うと思われます。
SideScrollerテンプレートはデフォルトで2Dのように移動、ジャンプが実装されているため、自分もサイドスクロールゲームを作成する時はよく使用します。

ただ、このSideScrollerテンプレート、絶妙に困る部分が一つあります。
それは逆を向く時です。

side.gif

こんな感じで、向いてる方向と逆に向きたい場合、このGIFのように正面を向いてターンをするようになっているので、ボタンを押したらすぐに逆を向いてほしい場合には適しません。

なので、これを解決するためにSideScrollerCharacterに、簡単な180度ターンを入れてしまいましょう。

UE4フォーラムの3D Sidescroller: How to make a character turn in instant 180° intervals?を元に実装しています。

今回はBluePrintで実装しています。

#180度ターン(SideScroller限定)

さっそくサイドスクロール用の180度ターンを実装しましょう。

まず、SideScrollerCharacterを開きます。
位置がわからない人は、以下の画像を見てください。
フォルダ.png

修正を加えるのは、イベントグラフのMovement inputとコメントされている部分です。
MovementInput.png

Axis MoveRightインプットイベントの修正に入る前に一つ、180度ターンを処理を行う関数を作成しましょう。

##関数作成

関数を作成します。関数の部分にある+のボタンをクリックして、関数を作成します。
以下は、関数名の例です。
関数.png

次にインプットにFloatの変数ピンを一つ追加します。
以下は名前の例です。
インプット.png

最後に関数を以下の画像のように実装します。
BP.png
SweepとTeleportのチェックを入れているのは、一応プレイヤーが壁等を通過してしまう可能性を考慮にいれたのと、直ぐに逆を向いてしまうのでテレポートさせて変な物理の粗ぶり等を防ぐためです。

Blueprintueにソースをコピペして貼り付けられるものを作成したので、使うようであればこちらからジャンジャン使ってください
SideScroller180Rotate

##インプットイベント修正

次にAxis MoveRightインプットイベントに、先ほど作成した関数を呼び出すように、以下のように修正します。
EG.png

こちらもBlueprintueにソースをコピペして貼り付けられるものを作成したので、使うようであればこちらからジャンジャン使ってください
SideScroller180RotateInputEvent

#実装結果

上記を実装すると、以下のようにすぐに逆を向くようになりました。やったね!
side2.gif

これで地味に物足りない部分が簡単に解決しました。
ゲームによってはすぐに逆を向いてほしいというのもあるので、ここに書かれているのを参考にサクッと180度ターンを実装してしまいましょう。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?