Google

2016年9月26日月曜日

Unreal EngineでMatinee速度変化処理1

相当の間ブログをサボっていたので少し吐き出します。

以前Unreal Engineでジェットコースターの作り方を見たことがあるのですが、以前仕事で速度変化が可能なタイプを作った事があるのでその基礎部分だけを紹介します。
構成はこんな感じ。
  • Unreal Engine 4.13.0
  • レールのようにルートは決まっている
  • マウスのオンオフで移動と停止させたい
  • 単純に動くのではなく、速度を変化させたい
電車ゲームとか、遊園地のコース固定型ドライブとかが近いと思われます。
今回使う技術はこちら。
  • BluePrint
  • Matinee
C++で書くのも良いのですが、BluePrintやMatineeをまだまだ使う所も多いかと思いますので、わかりやすさ等も考えてこうなりました。
そして今回出来上がったものを部分的に再生したのがこちら。
(記事の最終回にはプロジェクト一式とHTML5変換デモを準備してあります)


何も表示がないので分かりづらいですが、移動が止まったり動いたりしてるのはマウス押しっぱでアクセルオン、離してオフになるという動作です。
多少ですが慣性の法則が効いていて加速減衰があります。
コースは固定ですが、自分の意思で動きを変化させたいような処理に向いているかと。

元々UnrealEngineにはこのMatineeという、レールの上を動かしたり変化させるためのアニメーションユーティリティ機能みたいなものが存在しています。
が、これにBluePrintで組み合わせて使う記事が余りに少なかったので、備忘録を兼ねて書いてみた次第というだけです。
なお、Unrealの実装方法を操作手順込みで書くとSSが膨大になるので分割します。

作り方

まずプロジェクト作成から。


今回はサードパーソンタイプを選択してみました。
素からでもいいのですが、適度なマップがあるためこの中を1周させるのに最適です。
あと実践ではプレイヤーキャラが既に居るような環境に追加するという事も考えてこれにしました。
サンプルではありますがプロジェクト名はAcceleratorProjectと指定。


サードパーソンベースは箱庭マップが入ってます。
このまま実行するとWASDでキャラを操作するいつもの状態が始まりますが、ここから改造していきます。

まずはキャラに取って代わる新しい自分を作成。
コンテンツブラウザにある新規作成をクリックし、一覧からブループリントクラスを選択。


タイプを聞かれるので、アクタを選択。


できたアクタにはわかりやすく名称を付けましょう。
保存場所も迷わないように管理を。



このアクタにはカメラを入れ込む予定なので、「MyCameraActor」と命名。
そのままダブルクリックでアクタの編集画面を開きます。


当然何も存在していません。
なので、左上のコンポーネントを追加ボタンをクリック。


一覧からカメラを追加します。


上図のように追加されます。
この中で移動回転の調整は今回不要ですが、この例のようにカメラもアクタ化しておくと応用がしやすくなります。
追加したら閉じてレベル全体のビューポート画面に移動します。
このアクタをビューポートにドラッグ&ドロップして下さい。


上記画面のようにぐいっと持っていきましょう。
カメラが入っているため、図のようにカメラアングルも表示されます。
このマップだと埋まり気味になるため、少々上方に移動させる位がちょうどいいです。
そして、この例ではカメラを右回りで1周させるので、左端の角に配置しましょう。


ちゃんと持っていければアウトラインにもこのようにアクタが存在しているはず。
自分自身の準備はこれで完了。

続いてレベルにマチネを作成します。
先程アクタを作った時と同様に新規作成ボタンで出るメニューからその他を選び、その中にあるマチネデータを選択して下さい。


マチネデータの生成方法は他にも数種類ありますのでお好みで。



同様に名称はわかりやすくMyMatineeにして管理します。
こちらの作り方の場合、コンテンツ(Unityで言う所のアセットのようなもの)になるので、ビューポートにドラッグ&ドロップが必要です。


こんな感じで。
マチネの処理は長いのでここで一旦切ります。

続きはまた次回。


0 件のコメント:

コメントを投稿