ゲーム開発ツールのUnityを少しづつ勉強中。Unityのアドベンチャーゲーム制作アセットAdventure Creator の公式サイトに掲載されている英語のチュートリアルを翻訳しながら進行中。
今回はシーンの切り替えの最終回でRoomシーンとFieldシーンの切り替えを行います。
RoomシーンにTriggerプレハブの追加
キャラクターがドアの前に移動したらシーン切り替えアクションが実行されるよう、それぞれのシーンにTriggerプレハブを追加します。まずはRoomシーンからいきましょう。
Roomシーンを開いたらTriggerプレハブを配置します。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene managers > Scene prefabs > Logic > [Trigger]ボタンをクリック。
作成したTriggerプレハブをドアオブジェトの手前に配置します。サイズはドアの幅に合わせて調整しました。
Triggerプレハブにアクションを設定します。[Hierarchy]ビュー > _Logic > _Triggers > Triggerを選択。[Inspector]ウィンドウ > AC Trigger (Script)コンポーネントを次のように変更します。
- Action type: [Scene] [Switch]
- Chose scene by: [Name]
- Scene name: [Field]
ちょっと壁や床が物足りないのでテクスチャを貼ってみましょう。Asset Storeの無料アセットから次のテクスチャを使用しました。
Yughues Free Architectural Materials – Nobiax / Yughues
Uhnityのプリミティブオブジェクトはスケールを変更するとテクスチャマッピングスケールも一緒に変化してテクスチャが比率が変わってしまいます。
なので、ちょっと面倒ですが、壁と床はスケールを統一したオブジェクトに置き換えました。これでRoomシーンの設定は完了です。
FieldシーンにTriggerプレハブの追加
さて、Fieldシーンの作業に移りましょう。Roomシーンと同じくTriggerプレハブを配置しますが、何もない平原にTriggerプレハブだけ配置しても見えないので、プリミティブオブジェクトを組み合わせてテレポートのオブジェクトを作成しました。オブジェクトをプレハブに変換して、そこにTriggerプレハブを設置しました。
Triggerプレハブにアクションを設定します。[Hierarchy]ビュー > _Logic > _Triggers > Triggerを選択。[Inspector]ウィンドウ > AC Trigger (Script)コンポーネントを次のように変更します。
- Action type: [Scene] [Switch]
- Chose scene by: [Name]
- Scene name: [Room]
Build Settingsにシーンを追加
Triggerプレハブの設定が終わったらRoomシーンとFieldシーンをビルド設定に追加しましょう。メニュー:File > Build Settingsを選択。[Build Settings]ウィンドウ > Scene In Build のフィールドに[Project]ウィンドウからシーンファイルをドラッグして登録。今回はRoomシーンをスタートシーンにしました。
トランジョンエフェクトの追加
最後にシーン切り替えのトランジョン効果を追加してみましょう。
Roomシーンを開きます。[Hierarchy]ウィンドウ > _Logic > _Triggers > Triggerを選択。[Inspector]ウィンドウ > AC Trigger (Script)コンポーネント > [Add new action]ボタンをクリック。追加したアクションの右側にあるアイコンをクリック > Re-arrange > Move to topを選択して順番を入れ替えます。
そしてアクションの内容を次のようにフェードアウトのアクションに変更します。
- Action type: [Camera] [Fade]
- Type: [Fade Out]
- Force complete transition? [✓]
- Wait until finish? [✓]
シーンが切り替わった後のフェードインの設定はPlayerStartプレハブの設定で行います。[Hierarchy]ウィンドウ > _Navigation > _PlayerStarts > PlayerStartを選択[Inspector]ウィンドウ > Player Start (Script)コンポーネント > Fade in on Start? にチェックを入れます。
Fieldシーンも同じようにTriggerプレハブでフェードアウトのアクション設定、PlayerStartプレハブでフェードインの設定を行います。これで完成。さっそくWebGLでビルドしてみました。
Triggerプレハブの位置にキャラクターが移動するとフェードアウト。画面が暗転したところでシーンが切り替わり、だんだん画面が明るくなりフェードインが完了です。
今回のチュートリアルでは原文のページにBuild Settingsにシーンを追加する手順が省略されていたのでちょっと分からなくなってしまいました。うっかり忘れないようにしたいと思います。