この記事では移動を司るMovementコンポーネントについて解説していきます。Movementコンポーネントが使いこなせるとオブジェクトの回転やキャラクターの移動についての理解が深まると思います。
Movementコンポーネントとは?
以前の記事で、ボールを動かすためにブループリントで位置を更新していく方法を紹介しました。ですが、この操作方法は欠点があります。
- 毎回ブループリントでグラフを作るのが時間がかかる。
- 重力を適用とするとさらにグラフが必要になる。
- 好きな方向へ移動するのが大変である。
このような欠点を全て解決するポテンシャルを秘めているのが、MovementConponentです。これはブループリントクラスにコンポーネントとして追加するものであり、移動の処理を数値の入力などによって簡単に追加することができます。MovementConponentはそれぞれ違う役割を持つ3つのコンポーネントがあります。
ProjectileMovement
このコンポーネントはアクタの等速直線運動、放物運動、対象をホーミングする際などに使われます。実際に使ってみましょう。BP_BallというActor型のブループリントに追加していきます。このチュートリアルを連続で見ている人は、イベントグラフのノードをすべて削除しておきましょう。
コンポーネントパネルからProjectileMovementを追加しましょう。ProjectileMovementを選択すると詳細パネルから軌道を制限できます。
InitialSpeedを200、ProjectileGravityScaleを0にして、初速度200cm/sの等速運動をさせてみましょう。ゲームを実行して実際に動くかどうかを確認しましょう。また、ShouldBounceをTrueにする(チェックを入れる)と壁や床に当たった時跳ね返ります。
RotatingMovement
このコンポーネントは回転をさせることができます。
回転をわかりやすくするために適当でいいのでキューブをボールの上にのせてみましょう。
先ほどのProjectileMovementコンポーネントを削除し、代わりにRotatingMovementコンポーネントを追加しましょう。
詳細パネルのRotatingRateという部分で回転量の変更ができます。今回はデフォルトのままにしてゲームを実行しましょう。無事に二つのコンポーネントが回転したことが確認できたと思います。
次に、あるコンポーネントのみを動かしたい場合の対処法を紹介します。初めはルートコンポーネントが回転の対象になっているのですべてが回転してしまいますが、SetUpdatedComponentノードで対象を変更することができます。
イベントグラフでこのようにノードを組んでください。NewUpdatedComponentのピンに接続したコンポーネントのみを回転させることができます。
追加したいノードが見つからない場合はノード検索画面にある”状況に合わせた表示”のチェックを外すことで解決する場合があります。
CharacterMovement
このコンポーネントは自分が操作するキャラクターの速度やジャンプなどゲームにおいて基本になる動きを制御するコンポーネントです。このチュートリアルではのちにキャラクターを自分で作成するので、その時に使うことになります。この段階では名前だけ覚えておいてください。
コメント