cluster ライド系アトラクション ワールドの作り方
思いつきで ライド系アトラクション ワールド祭り 2月初旬
に開く事にしてしまったので、この入門記事を書いてみることにしました。ライド系アトラクションワールドが増えるといいな...
Creater Kit の 椅子に座る機能を利用して座ったユーザーの操作なしに自動でコースを移動して進んでいくワールドを作る方法を説明していきます。 最後の方に サンプルプロジェクトへのリンク も書いたのでコピーして内容改変してライド系アトラクションワールドを作ってみてください
ライド系アトラクション とは
wikipedia によると下のような 定義のようです。
ライド(ride)とは乗り物のことである。
乗り物の動き自体を楽しむ物や、乗り物のコースに作られた物語のセットを見て楽しむ物などがある。
ユーザーが操作するのではなく、コースを移動する乗り物の仕組みを作ってみたいと思います。
Creator Kit 導入済みのプロジェクトの用意
Unityのインストールや導入方法は省略しますが、
プロジェクトを新規で作成する際は Cluster Creator Kit テンプレートプロジェクト を元に改変するのがトラブルも少なくておすすめです。
ダウンロードして展開したフォルダの名前を 作るワールド名にして unity で開くと環境が整います。
Cinemachine の追加
本来の利用方法は Unity のカメラを操作するためのUnity無料パッケージなのですが、レール上に配置したカメラを移動させる機能を利用して、乗り物をコースに沿って移動させる
ために利用するので プロジェクトに追加します。
- メニューバーで、Windows > Package Manager 開く
- Unity Registry で
Cinemachine
を検索 - ダウンロードとプロジェクトへのインストールをする
インポート後のエラー
下のエラーが出た場合 Unityを一度、終了して プロジェクトフォルダの Library
フォルダを削除後にUnityを起動してプロジェクトを開き直すとエラーが解消されます。
Failed because this command failed to write the following output files:
Library/Bee/artifacts/mvdfrm/UnityEngine.UIxxxxx
Cinemachine の Dolly Track と Dolly Cart をシーンに追加
コースと 乗り物になるオブジェクトをヒエラルキーに追加します。
- メニュー GameObject > Cinemachine を開く
-
Dolly Track with Cart
を選択する - ヒエラルキーに
DollyTrack1
とDollyCart1
が追加されてるのを確認する
DollyTrack を編集してコースを作る
DollyTrack1 を編集することでコースを作ることができます。ここでは簡単に円のコースを作ってみようと思います。
- ヒエラルキーで
DollyTrack1
を選択する - インスペクターで
CinemachineSmoothPath
コンポーネントの設定を変更していく- Loopd にチェックを入れる これでコースのPathがが閉じて一周回れるようになります。
- Waypoints を 二つ増やして 円になるように値を調整する
Dolly Cart を編集して乗り物を作る
DollyTrackに沿って移動するオブジェクトを作るために Dolly Cart1 を編集していきます。
- ヒエラルキーで
DollyCart1
を選択する - DollyCart1 の
Cinemachine Dolly Cart
コンポーネント の Speed を 1 にする - 見た目オブジェクトとして Cube を追加, scaleを 0.5 程度に変更する
-
DollyCart1
に Ridable Item を追加します
ここまでの変更で コースを回る乗り物ができているはずです。実行して確認してみてください。
乗車と停止の組み込み
このままでは 乗車がのが難しいので 乗車後に開始して一周したら停止するようにしてみます。
開始スイッチを Cart につける
インタラクトすると開始するスイッチを Cart に追加してみましょう。 CreaterKit の仕様で Item の子に Itemは追加できません、 Cart は Ridable Item
になっているはずなので Constraint で乗り物に追従させる方法を使います。
-
ヒエラルキーで 右クリックして Create Empty をして
GameObject
を追加 名前をDollyCart1StartSwitch
に変更する -
DollyCart1StartSwitch
以下にSphere
を追加して Scaleを 0.3 くらいにする -
DollyCart1StartSwitch
位置を Cart の前方に ずらして 乗った時に押しやすい位置に設定
-
DollyCart1StartSwitch
にParent Constraint
コンポーネントを追加する- Is Active にチェックを入れる
- Sources に
DollyCart1
を設定する - これで カートに追従する 状態になります。
-
DollyCart1StartSwitch
に Interact Item Trigger コンポーネントを追加します- Trigger を追加。
Target SpecifiedItem Key名 Start
Specified Target Item はDollyCart1
Parameter Type Bool true(チェックを入れる) - これで
DollyCart1
に Bool値 true を送ることができるようになる
- Trigger を追加。
当たると Cart が停止するアイテムを コース上に作る
一周まわったあたりに当たると Cart が停止するためのアイテム DollyCart1StopSwitch
を作ってみましょう。
- ヒエラルキーで 右クリックして Create Empty をして
GameObject
を追加 名前をDollyCart1StopSwitch
に変更する -
DollyCart1StopSwitch
にBoxCollider
コンポーネントを追加する- Is Trigger true(チェックを入れる)
- サイズを X 0.5 Y 1.5
- 配置位置 Transform を 開始位置の少し後ろに設定する
-
On Collide Item Trigger コンポーネントを追加する
4. Collision Event Type Exit
5. Collision Type Trigger
6. Triggers を 1件追加
Target SpecifiedItem Key名 Start
Specified Target Item はDollyCart1
Parameter Type Bool false(チェックを入れない)
7. これでDollyCart1
に Bool値 false を送ることができるようになる
DollyCart1 を 開始,停止できるようにする
DollyCart1
の値変更と DollyCart1Systemを作って Animator で開始と停止するようにしてみます。
- ヒエラルキーで
DollyCart1
を選択する - DollyCart1 の
Cinemachine Dolly Cart
コンポーネント の Speed を 0 にする -
DollyCart1
を選択したまま ヒエラルキーで 右クリックして Create Empty Parent をしてGameObject
を追加 名前をDollyCart1System
に変更する。 -
DollyCart1System
に Set Animator Value Gimmick を追加する- 各値を下の内容にする
Target Item Key名 Start
Item DollyCart1 Parameter Type Bool
Animator Parameter Name start
- 各値を下の内容にする
- Animator コンポーネントに Controller を新規で作って関連づける
- Project欄の適当な位置で 右クリック Create > Animator Controller で新規作成して 名前を
DollyCart1 Animator Controller
にする - Animator コンポーネントに設定
- Project欄の適当な位置で 右クリック Create > Animator Controller で新規作成して 名前を
- Project欄の適当な位置で右クリック Create > Animation して Animation を新規作成 名前を
DollyCart1 Idle Animation
にする - Project欄の適当な位置で右クリック Create > Animation して Animation を新規作成 名前を
DollyCart1 Start Animation
にする -
DollyCart1 Animator Controller
を開いて Animator 画面で表示する-
DollyCart1 Idle Animation
とDollyCart1 Start Animation
を Controller に配置する - Animator 画面の Parameters 欄で start Bool を追加する
-
DollyCart1 Idle Animation
> Make Transition でDollyCart1 Start Animation
を繋ぐ - Transition の
conditions
に start true を追加 -
DollyCart1 Start Animation
> Make Transition でDollyCart1 Idle Animation
を繋ぐ - Transition の
conditions
に start false を追加
-
-
DollyCart1 Idle Animation
を編集-
DollyCart1
CinemachineDollyCart
コンポーネント Speed を タイムラインに追加 - 0 秒で Speed 0 にする
- 60 秒にある キーは削除
-
-
DollyCart1 Start Animation
を編集
1.DollyCart1
CinemachineDollyCart
コンポーネント Speed を タイムラインに追加
2. 0 秒で Speed 1 にする
3. 60 秒にある キーは削除
ここまでの内容で コースを一周すると停止する カートが作成できたはずです。
サンプルワールド
コースに沿って移動して、コース上の DollyCart1StopSwitch
に当たると停止するサンプルワールドへのリンクと unitypackage です。 Cluster Creator Kit テンプレートプロジェクト
へ unitypackage をインストールすればサンプルワールドの環境が作れます!
SampleRide.unitypackage
-
Cluster Creator Kit テンプレートプロジェクト
のフォルダ名をワールド名などに変更して開く -
SampleRide.unitypackage
を インポートする - Project欄の SampleRide > Scenes にある Main を開くとサンプルシーンが表示されます。
おわりに
アセットストアのアイテムや Timeline, Post Processing, Terrain などを使って拡張すれば、
面白いワールドが作れると思います! ライド系アトラクション ワールド祭り
に応募してくださーい。
ライド系アトラクション ワールド祭り とは
先日オープンした ライド系ワールドがとても楽しかったので、
もっとライド系アトラクションワールドが増えるといいなーと思って
この祭りを開催する事にしました!
詳細はまだ決めてないのですが、みなさんにライドワールドを応募してもらって、イベントで紹介するのと
人気だったワールドにはなにかを進呈しようかなーと思ってます
Discussion