おはようございます、こんにちは、こんばんは、Kyotokiです。
アドベントカレンダーの記事を書くことになり、何を書こうか迷いましたが、今回はゲーム制作で使用しているUnityのことを書いていくことにしました。
この記事は、タイトルから察した方もいると思いますが、Unityの初心者向けの内容です。Unityを使いこなしている方々には物足りない内容かもしれませんが、Unityに慣れていない方、興味のある方は是非最後までお付き合いくださいませ。
さて、本題に移りましょう。UnityにはStandard Assetsなる、公式が出しているアセットのパッケージがあるのですが、今回はその中に入っている車を使って遊んでいきます。
車を自分で操作して走らせる
まずはプロジェクトを作成します。Unityを起動したらNEWボタンを
クリックしてください。
すると上のような画面が出てきます。Project nameを自分のわかりやすいものに書き換えるだけで十分だと思います。もし2Dになっていたら3Dにしておいてください。ここでは名前を「Sample」とします。書き換えたらCreate projectをクリックしましょう。
すると編集画面に移ります。画面の説明は割愛します。Google先生に聞きましょう(この手に限る)。
このままではStandard Assetsは使えず、インポートする必要があります。「Assets」→「Import Package」→「Vihicles」でクリックしましょう。
するとこんなウィンドウが出てきます。ここでチェックマークの入ったものがインポートされるわけですね。特にこのままで問題ないので「Import」を押しましょう。
正常にインポートされるとProjectのAssets内に「Editor」「Standard Assets」の2つのフォルダが現れます。これで準備は完了しました。
では、車をゲームの世界に配置しましょう。まず真ん中の画面がSceneになっていることを確認してください。この画面でゲームオブジェクトの配置などを見ていきます。
次にProject内で「Standard Assets」→「Vehicles」→「Prefabs」の順に開いていきます。「Prefabs」内には3つのものがありますが、ここから「Car」を「Hierarchy」の欄、または「Scene」内にドラッグします.
すると、このようになります。「Hierarchy」内に「Car」が追加され、「Scene」内に「Car」が設置されました。試しに画面上にある再生ボタンを押してみましょう。「よっしゃ、走らせたろ!」
悲しいことに、この車は走ることは叶わず、どこまでも落ちていきます。まだこの世界には大地がなかったのです。再生ボタンを再びクリックして編集に戻りましょう。
車を走らせるために大地をつくってあげます。「Hierarchy」の真下にある「Create」をクリックしましょう。ここから「3D Object」→「Terrain」を選択します(ここは「Cube」でも構いません)。
するとこのような感じになるのではないでしょうか。せっかく大地を作ったのに、このままでは車が大地に乗りません。そのため、「Car」の座標を変えることにします。
「Hierarchy」内のCarをクリックします。すると右にCarの「Inspector」が表示されます。もし違うものが表示されていたら、タブが「Services」になっていると思うので「Inspector」に切り替えましょう。「Inspector」にはCarについているコンポーネントが表示されており、各コンポーネントのパラメータ調整や有効無効の切り替えなどをすることができます。この中に「Transform」という項目があるので、その中の「Position」の数値をいじって調整していきましょう。この時、「X」「Y」「Z」の上でクリックして左右にドラッグしても調整ができますし、左上の十字の矢印がクリックされた状態でScene内のオブジェクトに表示される矢印をドラッグすることでも調整ができます。また、調整をする際にSceneの画面から車が見えなくなることがあると思います。その時は「Hierarchy」の「Car」をダブルクリックするといいです。
車の座標を調整したら、再び再生ボタンを押しましょう。パソコンの矢印キー(またはW・S・A・Dキー)を使って走ります。今度はうまくいったはずです。ただ、今のままだと、カメラが見づらいですよね。次はこのカメラを車についていくようにしていきます。「Hierarchy」内に「Main Camera」があると思います。このカメラが再生時の画面になります。このカメラをCarの上にドラッグしましょう。
上のようになっていればOKです。Main CameraをクリックするとScene内に「Camera Preview」が表示されると思います。これを見ながら先ほどの車と同様に適切な位置にカメラを持っていきましょう。再生してみて、自分の納得できる感じになれば完了です。Terrain上にCubeやSphere等配置して心ゆくまで遊びましょう。もし後で遊びたいというのなら、Sceneを保存しておきましょう。次回に保存したSceneを読み込めば遊べます。Sceneとは何か簡単にいうとタイトル画面、メニュー画面などの一つ一つのことだと思ってたらいいのではないですかね。ちゃんと知りたい方は、Googleせ(以下略
特定のコースに沿って車を走らせる
先ほどは自分で車を操作しましたね。ここでは車を自動運転させます。
上の画面は先ほどの車だけを消したものです。Main CameraをCarから元の位置に戻した後、Carを右クリックからDeleteで消去しました。今回用いるのは「Car」ではなく、「CarWaypointBased」です。Project内のCarのあったフォルダに入っていたと思いますので、そこからCarと同様にSceneにもっていきます。Terrainに乗ってないときは調整してください。
さて、次に新しくStandard Assetsをインポートします。実は自動運転させるのに必要なものが他のStandard Assetsにあるので、それを持ってきます。先ほどと同様の手順で「Utility」をインポートしてください。
インポートが終わったら今度は適当なゲームオブジェクトを作成します。Hierarchyの「Create」からCreate Emptyを選択します。名前は分かりやすいように「Waypoint」にしておくといいでしょう。名前の変更はCreate Emptyの上で右クリックして出てくる「Rename」でできます。その後、同じものをいくつか作成して走らせたい位置に設置したら、先ほど作成したWaypointへドラッグしましょう。
次に、一番最初に作ったWaypointにWaypointCircuitという名前のスクリプトをUtilityフォルダから持ってきます。
その後WaypointのInspectorを見て、WaypointCircuitコンポーネントの「Assign using all child objects」をクリックし、子オブジェクトを元にルートを作成します。ルートを調整するときは、子オブジェクトの位置を調整しましょう。
こんな感じで黄色い輪ができていたらルートの作成は完了です(見づらいため、Terrainに色を付けています)。
最後にCarWaypointBasedのInspectorにある「Waypoint Progress Tracker」の「Circuit」に「Waypoint」を追加します。これで再生すれば走ってくれる…はずです。カメラの位置をうまく調整して見てみましょう。
さて、ここまでで自分で走らせる車と自動で走る車で遊べるようになりました。コースを作ればAIとの対戦もできますね。この後どう遊ぶかはあなた次第です。存分に使い倒してもらえたらと思います。
終わりに
今回の記事ですが、ちょっと書きすぎたかなと思います。書いてる途中で疲れたのは久しぶりです。途中から説明が雑になっていたらごめんなさい。気が向いたら追記とかするかもです。気が向けばですが。車編とタイトルに書いたので他のStandard Assetsも紹介するのかと思う方もいるかもしれませんが、今のところは未定です。来年のアドベントカレンダーでネタに困ったら書くかもしれません。それでは、また。