前回、脱出ゲームの作成に必要な下準備を行ったのでここからゲーム内容を作ったり必要なゲームシステムを作ったりしていきます。
まずは今回作る脱出ゲームのシーンを作っていきましょう。手順は次の通りです。
- シーンを準備する
- 部屋の壁を作る
- ライトを設定する
- 家具を配置する
シーンの準備
はじめにシーンを準備します。といってもプロジェクトを作ったときに最初から「Sample Scene」という名前のシーンファイルがあると思うので、今回は新しいシーンは作らずにそれを使うことにしましょう。
ただそのままだと何のシーンなのかが分かりづらいため、右クリック→「名前の変更」を使ってシーンファイル名を「Main」にしておいてください(そうするとダイアログが出ますが、「無視」を選べばOKです)。
部屋の壁の作り方
そうしたら部屋を囲う壁を作ります。次の手順で作業を行ってください。
- ヒエラルキーを右クリックし、「作成」→「3Dオブジェクト」→「クアッド」を選択して小さな平面を作成
- スケールを(4, 3, 1)に変更
- 座標を(0, 1.5, 2)に変更
- オブジェクト名の右側の「静的」にチェック(※ここを忘れずに!)
- 不要なのでMesh Colliderコンポーネントを削除
これで画面から向かって奥側の壁ができました。
あとは同じ要領で他の5面の壁も作ってください(※上面と底面の壁のスケールは4, 4, 1)。ここまでの作業を行うと次の画像のようになります。
なお現時点では環境光などを壁オブジェクトに反映させていないので、黒っぽい見た目になっていますがこれは正常です。またクアッドを裏側から見るとメッシュが透けて見えますが、これは元々こういうものなのでこちらも気にする必要はありません(※一般的にメッシュの裏面を描画するのは無駄なのでこのような仕様になっています)。
ライトの設定
次にライトの設定を変更して室内用の照明を作ります。シーンに最初からある「Directional Light」の設定を下の画像のように変更してください。
また、ライトの座標を(0, 2.9, 0)、回転を(90, 0, 0)に設定してください。
さてここで「エリアライト」とは、平面から出る光をシミュレーションするためのライトです。他のライトよりもリアルなライティングを実現できますが、計算に時間がかかるのでリアルタイムで描画することができず、必ず事前にライティングを計算しておく必要があります(※注)。
まあ物は試しということで早速ライティングを計算してみましょう。メニューバーの「ウィンドウ」→「レンダリング」→「ライティング設定」からライティングウィンドウを開き、右下の「ライティングの生成」ボタンをクリックしてみてください。
するとライティングの生成作業が始まり、しばらくすると部屋の中が明るくなります(下図)。これでライティングを事前計算することができました。
ただ、よく見ると光が当たっている部分がなんか汚いのが分かります。これはライティングの設定があまり良くないせいです。後ほど改善することにしましょう。
※注1:ライティングを事前計算することを「ベイク」と言います。このあとよく出てくる用語なので覚えておきましょう。
※注2:ちなみに先ほど部屋の壁オブジェクトの「静的」オプションにチェックをしてもらいましたが、ここにチェックを入れないとライティングをベイクできないので注意してください。
※注3:静的オプションはザックリ言うと「このゲームオブジェクトは絶対動きませんよ」ということをUnityに知らせるためのものです。動かないものは光の当たり具合や陰影が変化しないので、いちいちリアルタイムで計算する必要がなく事前に計算しておけばよいというわけです。
家具の配置
最後に、前回インポートした家具アセットを部屋に配置していきます。この作業は好きなようにやっていただいて構いませんが、一応お手本を次に示しておきます。
家具に関しても「静的」オプションにチェックを入れるのを忘れないようしてください。
これで脱出ゲームの見た目の部分が一応出来上がりました。
次のページ→シーンのライティングをきれいにベイクする方法