執筆: A.Y
はじめに
今回紹介するのはUnrealEngineでスプライン上を動くコンポーネントと、そのコンポーネントをインプットキーで操作できるようにする方法です。
タイムライン等を使った自動で動くコンポーネントではなく、ユーザーが意図的に動かしたいコンポーネントを作る時に役に立てばと思います。
この記事の内容
この記事ではスプライン上を動くコンポーネントと、そのコンポーネントをインプットキーで操作出来る処理を作ります。

用意するもの
UnrealEngin 5.2
cppファイルなどは使用せず、BPだけで作ります。
実装してみよう
まずはスプラインを作ります。

“右クリック>ブループリントクラス>Actor”からBP_Splineを作ります。

BP_Spline内にSplineを追加します。

追加したスプラインを適当に伸ばします。後々伸ばしたスプラインの形に添ってコンポーネントが動かせるようになります。

作成したBP_Splineをレベル内に配置します。
次にスプライン上を自動で移動するコンポーネントを作ります

BP_Spline内にCubeを追加します。

関数GetCurrentTransformを作り、上記のようにノードを組みます。
関数のインプットにDistanceTraveledを追加します。型はFloatです。
関数のアウトプットにTransformを追加します。型はTransformです。
SplineDistanceはFloatの変数になります。

イベントグラフのBeginPlayとTickに上記のようにノードを組みます。
startDistanceとMoveSpeedとDistanceTraveledはFloatの変数になります。
startDistanceを変更するとコンポーネントの開始位置が変わります。
MoveSpeedを変更するとコンポーネントの移動速度が変わります。
この段階でCubeがスプライン上を自動で移動するようになっているのでレベル上で確認します

上記のようにCubeがスプライン上を自動で移動していたら正常に実装出来ています。
次にCubeをインプットキーで動かせるようにしていきます

関数BP_Splineを作り、上記のようにノードを組みます。
インプットにAddを追加します。型はBooleanです。
inputMoveの型はFloatの変数になります。

イベントグラフのノードを上記のように追加、変更します。
TickはMoveSpeed変数をInputMove変数に置き換えています。
これでインプットキーを押すことでCubeが動かせるようになっているのでレベル上で確認します

まとめ
以上がスプライン上を動くコンポーネントをインプットキーで動かす方法になります。
今回はインプットキーを使った方法を紹介しましたが、それ以外のユーザーが関与できる方法にも応用できるので活用してみてください。