いよいよRollercoasterPluginのスプラインでコースを作ります。
目次
前回
サクッとOculusジェットコースターをつくろう! その3 ~ オープンソースなUE4Rollercoasterのレベルブループリントを読む。 UnrealEngine43分クッキング
http://2vr.jp/2015/01/13/ue4-de-oculus-rollercoaster-3/
前回は気前よく公開されているUE4Rollercoasterのプロジェクト一式を読んでRollercoasterPlugin4.4.1の使い方を把握しました。
環境
- Unreal Engine 4.4.3
- RollercoasterPlugin 4.4.1
コースを作る初期設定
まずはレベル全体のスケールを小さくしていきます。
設定はコースの最初の制御点を追加した後に行います。
制御点の追加方法についてはこちら サクッとOculusジェットコースターをつくろう! その2 ~ ブループリント続編 UnrealEngine43分クッキング http://2vr.jp/2015/01/12/ue4-de-oculus-rollercoaster-2/
最初の制御点でコースのスケールを設定
チュートリアル動画で設定していた100ではコースターの速度がノロノロ。
(一応RollercoasterPlayerControllerのSet Climbing Speedでも設定可能)
どうやら前回参考にしたUE4Coasterではレベル全体のスケールを下げており、RollercoasterPluginの調整自体がこのスケール感で行われている風なので倣います。
これによりコースターの進行速度が相対的に早く感じることができる。
PlayerStartのスケール設定
Player Startのスケールを1→0.1
世界のスケールを変える
World to Metersを100→7.5へ
※ついでにGame Modeも画像の通りに。
ゲームモード(Game Mode)について Unity使いのOculusコンテンツ開発者がUnrealEngine4に再々入門してみる その3 ~ ゲームモードを知る http://2vr.jp/2015/01/03/try-ue4-3/
コースを作ろう
まずは高低差を考えず平面のコースを作成する
コース1周をつなぐ前に制御点の高さをいじるとスプラインの捻りの調整が面倒くさいので、とりあえず一周繋ぎます。
スプラインを繋ぐ場合は終点を選択して始点をCtrl+左クリック
コースのつくり方について サクッとOculusジェットコースターをつくろう! その2 ~ ブループリント続編 UnrealEngine43分クッキング http://2vr.jp/2015/01/12/ue4-de-oculus-rollercoaster-2/
カーブを滑らかに
カクカクな制御点を選択してEキーから回転を編集
また、滑らかになったタイミングでRキーを押すと接続する両方の制御点を考慮した角度に自動的に調整してくれます。
高低差を付ける
Wキーで位置を編集
制御点を選択してZ軸を編集します。
複数の制御点で同じ高さにする場合は、詳細のLocation.zで高さを直接設定するとよさげ。
試しに走らせてみる
コースターを動かす最小限のレベルブループリントを作成
RollercoasterPluginをレベルブループリントで操る方法についてはこちら サクッとOculusジェットコースターをつくろう! その3 ~ オープンソースなUE4Rollercoasterのレベルブループリントを読む。 UnrealEngine43分クッキング http://2vr.jp/2015/01/13/ue4-de-oculus-rollercoaster-3/
PlayerStartをコースの任意の位置に置いてAlt+Pで再生
しかし・・・
制御点で逆走する問題
フォーラムにも報告されている突如ワープしてしまうような現象。
https://forums.oculus.com/viewtopic.php?f=42&t=8032&start=240#p224129
RollercoasterPluginではこのあたりの実装っぽい
原因
スケーリング設定の両端のコントロールポイント(Control Point)が制御点を挟んで同じ方向の場合などで結果的に問題が起こる。
(処理的には制御点通過時にコースターの進行方向のrotationを指定。使われている関数の意味を調べていないので断言はできないけど、その際に2つあるコントロールポイントの方向を見てるっぽい)
対応
各制御点のスケーリング設定のコントロールポイントを逆方向にドラッグで調整する。
※但し、正としている反対側にある状態でも逆走することがあった。
その際はスケーリングを大きくするように調整するか、その制御点を削除して作り直すかなどで解消。
これでコースターがゆっくり1周回るようになる。
次回に続く
コースターが走る音や、コースの勾配でコースターが加速するようにしていきましょう。
サクッとOculusジェットコースターをつくろう! その5 ~ コースターの加速をブループリントで実装 UnrealEngine43分クッキング
http://2vr.jp/2015/01/18/ue4-de-oculus-rollercoaster-5/