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