きっかけ
【緩募】Oculusジェットコースター、Unity5で作り直したけど、3連休だしUE4で作り直そうかなと思うのでヒントお願いします!
①🎢に適したわっちゃわっちゃしたマップモデル入手、取込方法
②レール敷く方法
③レールに沿って走らせる、走る音を出す方法
— ゆーじ (@yuujii) 2015, 1月 9
@aizen76 @yuujii 今だと、スプラインのデモが使えそうですね〜。スプラインに沿ったキャラクターの動かし方はヒストリアさんのプログにありますし
— おかず (@pafuhana1213) 2015, 1月 9
というわけで、RollercoasterPluginを使わずに
UE4でOculusジェットコースター作ってみます。
(UE4のバージョンは4.7 Preview)
下準備
FPSテンプレートを使ってプロジェクトを新規作成、
そして、この「Blueprint Splines Track」をプロジェクトに追加します。
↑の感じで、スプラインに沿ってメッシュを自動配置・変形してくれるスゴイ奴です。
今回の制作では、この子のSplineComopnentを使うだけなので
メッシュ配置周りは解説なしです。あしからず (そもそもまだ理解できてな…)
次に、SplineComponentから各情報を取得する関数を一通り用意しておきます。
今後使いまわす気がするので、BPライブラリーで実装。
参考:[UE4] スプライン上を動く足場の作り方 | historia Inc - 株式会社ヒストリア
- Spline上の進んだ距離の取得
- 距離に応じたSplineの座標・回転・向き・接線の取得
https://dl.dropboxusercontent.com/u/30427841/0131/BP_SplineFuncLibrary.uasset
※ Contentフォルダ直下に置いて下さい
Splineの編集
まずは、てきとうにコースを作ってみます。レベル上に
"TrackGenerator/Blueprints/TrackGenerator"に配置して、Splineを弄ります。
操作方法に関しては、↑の参考で載せたヒストリアさんの記事を参考にして下さい。
※UE4のバージョン4.7では、Splineの編集中に表示される制御点が増えたことで
カーブの調整が簡単になりました。
GGJ中に少しつぶやいていた、UE4 4.7から追加されたのSpline編集中の制御点。4.6以前と比べると大分編集しやすくなるので、オススメ #UE4study pic.twitter.com/McLQ2zf3lS
— おかず (@pafuhana1213) 2015, 1月 31
※ エディターのビューポート画面左上にある、マニピュレータの
回転をローカル・ワールドに切り替えられる機能はSpline編集中によく使います
※ TrackGeneratorのLoopingTrackにチェックを入れると、Splineの始点と終点が
自動的に結ばれるので便利です。
できました
プレイヤーをSpline上で動かす
まずは、TrackGeneratorのSplineをプレイヤーが参照できるようにします。
今回はレベルBPでこんな感じに実装
- 毎フレーム(Tick)、移動量(Length)を計算して、スプラインから取得した座標・回転を、プレイヤーの座標・回転にセットしています(SetActorLocation/Rotation)
今回はここまで。
次の記事ではもう少しジェットコースターっぽい挙動にします。
おまけ
SplineComponentに関しては、ContentExampleの
BluePrint_Splineレベルがとても参考になると思います。
Unreal Engine | ブループリント スプライン コンテンツ事例