
クイックスタート
Tutorial
Beginner
+0XP
75 mins
71
Unity Technologies
このテキストによるガイドは、「3D Game Kit」の中で空のシーンをセットアップし、新しいレベルを作るまでの手順をカバーしています。このガイドを修了すると、このキットを使ってゲームプレイを作るために使う基礎事項を一通り習得することができます。このキットにはすでに構築済みのゲームが含まれています。このゲームはキットに含まれるすべてのパーツを使った作例となっているので、もし詰まってしまったときはこれを見てヒントを得てください。エディターの使い方を学びたい方は、こちらの Unity インターフェイスのチュートリアルをご覧ください。
Resources
Languages available:
1. クイックスタートガイドの概要
このテキストによるガイドは、「3D Game Kit」の中で空のシーンをセットアップし、新しいレベルを作るまでの手順をカバーしています。このガイドを修了すると、このキットを使ってゲームプレイを作るために使う基礎事項を一通り習得することができます。
このキットにはすでに構築済みのゲームが含まれています。このゲームはキットに含まれるすべてのパーツを使った作例となっているので、もし詰まってしまったときはこれを見てヒントを得てください。
エディターの使い方を学びたい方は、こちらの Unity インターフェイスのチュートリアルをご覧ください。
プロジェクトはこちらからダウンロードできます。
始める前にこちらの動画で、このチュートリアルを終えた時にできるようになることをざっと見ておきましょう。
2. 新規シーンを作る
制作を始める前に、まず新規シーンを作りましょう。
標準のUnityでは新規にシーンを作るとオブジェクトが何も配置されていない空のシーンができますが、3D Game Kitには、地面や自機キャラのEllenがすでに配置されていて、すぐにEllenを走らせたり攻撃させたりできる新規シーンを作る機能があります。今回はこちらの機能を使ってシーンを作ってみましょう。
- 画面上部のメニューで「Kit Tools」>「Create New Scene...」を選択します。

- 下の画像のようなウィンドウが表示されるので「New Scene Name」のところにシーンの名前を入力して、「Create」をクリックします。シーンの名前をここでは「Level1」としましょう。

「Create」をクリックして数秒待つと、自機キャラのEllenと地面、攻撃のエフェクトと思われるもの、それとゲームのUIがあらかじめ配置されたシーンが作成され、自動的に開きます。

これからこの画面の中にいろいろな要素を追加していくのですが、まずはこのできたばかりのシーンを再生して、自機のEllenを動かしてみましょう。実はもうEllenを動かせるようになっています。
- シーンを再生するには、エディター上部の再生ボタンをクリックします(Ctrl/Cmd+PでもOK)

自機キャラであるEllenの操作は以下の通りです。
- 移動:W, S, A, D
- ジャンプ:スペースキー
- 攻撃:マウス左クリック
- カメラの視点移動:マウスを動かす
- ポーズ:ESC

マウスを左クリックするとEllenがエフェクト付きで攻撃します(連続攻撃でモーションも変わる)。
また、3D Game Kitを再生するとマウスが視点移動に取られてしまうので、Unityエディターの操作にマウスが使えない状態になりますが、ESCキーを押してポーズに入るとマウスが視点操作から外れて、Unityエディターの操作に使える(つまり、普段PCでマウスを使っている)状態に戻ります。
ポーズからの復帰は、ポーズ画面の右上の「x」をクリックしてください。

では次のステップから、このシーンの改造を進めていきましょう。
3. 動く床の追加
このステップではシーンに動く床(アクションゲームで空中に浮いていて左右や上下に動いている地形)を追加します。
この動く床を含めて、ゲーム内で自機キャラが何か手を出せるもの(英語ではInteractives)は、3D Game Kitではあらかじめプレハブとして提供されており、すべて「Prefabs/Interactives」フォルダーに格納されています。

このステップでは、「MovingPlatform」というプレハブをシーンに追加します。これをシーンに追加すると、シーンに動く床が出てきます。

MovingPlatformをシーンに追加するには、このMovingPlatformのアイコンをSceneウィンドウにドラッグアンドドロップするだけです。

この動く床(「MovingPlatform」という名前でHierarchyウィンドウに入っています)、少々大きいし近いので、Unityエディターの「トランスフォームツール」を使って移動したり大きさを変えたり、加工しましょう。

トランスフォームツールで動く床を加工するときは、Hierarchyウィンドウで「MovingPlatform」を選択して、移動(Wキー)、回転(Eキー)、大きさ変更(Rキー)のいずれか必要なモードに切り替えて操作を行いますが、ここまで特にUnityエディターの表示モードを変えずに来ていると「MovingPlatform」を選択するときに、矢印が3セット出てきます。

これはあらかじめMovingPlatformに仕込まれた便利な機能を操作する矢印も表示されている状態です。動く床の加工のためにトランスフォームツールを使うときに邪魔ならば、以下の手順で一時的に非表示にできます。
- HierarchyウィンドウでMovingPlatformを選択します。

- インスペクターのSimple Translatorコンポーネントの横にある矢印をクリックして畳んで表示した状態にします。


非表示にした「便利な機能」はすぐ後で使うので、矢印を一部非表示にした場合は、Simple Translatorコンポーネントを開いて表示した表示にして、矢印のセットを3つ表示した状態に戻しておいてください。
今回は動く床を縦・横・奥行きをすべて元の半分ほどの長さにして、さらにEllenに対して90度回転させてみました。

- ここで前のステップと同じようにして、シーンを再生してみましょう。
「動く床」を置いたはずなので、動くはずです...が、動きません。
実はこの「動く床」、置いただけでは動かず、先ほど非表示にしていた「便利な機能」を使って、「どこからどこに動くか」を設定してやる必要があります。
ここでは動く床の行先を指定してあげます。それには動く床(MovingPlatform)の「End Point」ツールを使います。Sceneウィンドウで「End」と表示されているボタンが付いた矢印セットがあると思いますが、それがEnd Pointツールです。

End Pointツールから伸びている三方向の矢印をマウスでつかんでドラッグすると、「End」ボタンの位置を変えられます。これで動く床の行先を指定してやるわけです。こうすると動く床は「Start」ボタンと「End」ボタンのある区間を移動するようになります。
今回は「Start」の真上に「End」を置き、上下に動く床をイメージした設定としました。

...が、実際に動くようにするにはもう一段階設定が必要です。
HierarchyウィンドウでMovingPlatformを選択して、Inspectorウィンドウに移動し、先ほども触れたSimple Translatorコンポーネントを探してください。

Simple Translatorは、動く床が動くかどうか、またどのように動くかを設定する部分です。
この中で、「Preview Position」と表示されているスライダーを動かすと、Unityエディターで再生しなくても動く床がどのように動くかをチェックすることができます。
このスライダーは「0」から「1」の間で動きますが、「0」なら「Start」ボタンのある場所、「1」なら「End」ボタンのある場所に動く床がある状態となります。「0」と「1」の間(たとえば「0.5」)なら、「Start」と「End」の間のどこか、ということです(数学で「内分点(のベクトル)」を習った覚えがある方もいるかもしれませんが、それです)。
今回の動く床の経路は非常に単純ですが、曲線や直線を複雑に組み合わせた経路を作るときに、思った通りの経路をたどるかを確かめるために、このようなプレビュー機能が重要な役割を果たします。

ただしこれは手で動かしただけなので、再生モードでは自動的に動いてくれません。再生モードで「動く床」にするには「Activate」のチェックボックスをオンにします。

「Activate」は動く床の電源スイッチのようなものです。実のところ、動く床が置いただけで動かなかったのは、電源が入っていなかっただけ、という話です。
さて、今度こそ動く床になったはずなので、再生モードで確認しましょう。
どうでしょうか...確かに動く床は動いてくれたと思いますが、「End」が置かれた場所に到着すると止まってしまったと思います。これもSimple Translatorでそのような設定になっているためです。

実際のゲームでは目的地に着いたらそこで止まるタイプの動く床も使うと思いますが、今回は上下に動き続ける動く床としてみましょう。
そのようにするには、Simple Translatorでの「Loop Type」を「Ping Pong」に設定します。「Loop Type」は動く床の動き方を設定する項目で、「Ping Pong」に設定すると、ピンポンのラリーのように「Start」と「End」をいったり来たりするような動きになります。

これでまた再生してみましょう...今度は動く床が上下に移動し、下に来たタイミングでEllenが飛び乗ることもできるはずです。
4. パッドを踏んだら開く扉を置く
3D Game Kitでは、Game Commandを使ってUnityで他のオブジェクトに信号を送り、何かアクションを取らせることができます。
このステップでは感圧パッド(Pressure Pad)を使って、ドア(Door)を開ける仕掛けを作ってみましょう。まずDoorをシーンに置きます。
- Projectウィンドウで、フォルダーをPrefabs > Interactablesの順に開きます。
- 「DoorSmall」をSceneウィンドウにドラッグします。

このオブジェクトにはたくさんのギズモが表示されていて圧倒されるかもしれません。動く床のときと同様に、トランスフォームツールだけを表示し、位置の調整をしやすくしましょう。
- DoorSmallをHierarchyウィンドウで選んで、インスペクターを表示します。
- Simple Translatorコンポーネントの矢印マークをクリックして、ウィンドウを畳んで表示した状態にします。


こうするとオブジェクトのトランスフォームツールだけが見えるようになります。

- トランスフォームツールを使って、DoorSmallを好きな場所に置きます。
ここまでできたら、感圧パッドを置きましょう。
- Projectウィンドウで、フォルダーをPrefabs > Interactablesの順に開きます。
- PressurePadをSceneウィンドウにドラッグします。
- トランスフォームツールを使って、ドアの近くに配置します。

このパッドをEllenが踏んだらドアが開くようにしたいのですが、そのためにはPressurePadとDoorSmallを連動させる必要があります。
- HierarchyウィンドウでPressurePadをクリックします。PressurePadのインスペクターが表示されます。

- PressurePadのインスペクターに表示されているSend on Trigger Enterという場所に、HierarchyウィンドウからDoorSmallをドラッグします(放り込む感じです)。

ここまで作業してSceneウィンドウを見ると、PressurePadからDoorSmallに白い矢印が伸びているのが見えると思います。これが互いのオブジェクトが接続されたことを示します。

- ここでUnityを再生モードにしましょう。
EllenがPressurePadに乗ると、PressurePadの一部が引っ込み、光の色が変わってDoorSmallが開きます。

5. 3D Game Kitに登場する敵キャラ
3D Game Kitにはあらかじめ作られた敵キャラが3種類収録されています。これらはProjectウィンドウで、フォルダーを Prefabs > Characters > Enemiesの順に開くと見つかります。
敵キャラはそれぞれ、Chomper、Spitter、Grenadierという名前です。

Chomperは近寄ってきて攻撃してくる敵、Spitterは遠くから弾を吐き出してくる敵、Grenadierは特別な攻撃パターンを持ち、いろいろな弾や近接攻撃を繰り出し、シールドを張って防御までしてくるボスキャラタイプの敵です。
まずはChomperをシーンに置き、Ellenと戦わせてみましょう。
- Projectウィンドウで、フォルダーをPrefabs > Characters > Enemies > Chomper と開きます。
- 開いたフォルダーの中にあるChomperをSceneウィンドウにドラッグします。
- トランスフォームツールを使って、Chomperを好きな位置に置きます。

Chomperをシーンに置くと、濃い青の扇形が表示されます。これはChomperのDetection Radiusという項目の設定を反映しています。Ellenがこの扇形の領域に入ると、ChomperはEllenを追いかけて攻撃してきます。
ちょっと扇形が広すぎなので、小さくします。ChomperをHierarchyで選択して、
- インスペクターで、Chomper Behaviourコンポーネントを見つけてください。
- Player Scannerという項目の隣にある矢印をクリックして、広げてください。

- Detection Radiusという項目の値を3にします。

また、このChomperは後ろまで見えるようになっているので、前だけ見えるように調整しましょう。
- Detection Angleスライダーを調節して、スライダーの右側に表示されている値が180になるようにしてください。

ここまでの設定で、Chomperの視界は前だけ、また見える範囲もずいぶん小さくされました。

ちなみにこんなにきれいに扇形が見えていないと思いますが、先ほどのステップと同様、Chomper Behaviourコンポーネントをたたんで表示してあげるとギズモが消えてみやすくなります。
- 再生モードに入り、Chomperの前に移動してみましょう。

EllenがChomperに近づくと、それまで静かだったChomperがじたばたと足を動かしたりして、確かにEllenを見つけたような動きをしますが、よく見るとその場で足踏みしているだけです。
できれば地面の上を移動してEllenに向かってきてほしいのですが、そうするにはNavMesh Surfaceを追加して、Chomperにどこからどこまで移動できるのかを伝える必要があります。
- Hierarchyウィンドウで、Planeをクリックします。

- インスペクターで、Add Componentをクリックします。
- 「NavMeshSurface」を検索します。「NavMeshSurface」という項目(スクリプト)が表示されます。

- Enterキーを入力するか、「NavMeshSurface」をクリックして、PlaneにNav Mesh Surfaceコンポーネントを追加します。
- Nav Mesh Surfaceコンポーネントの内容が表示されているところまで移動します。
- Agent Typeの項目をChomperに設定します(これはすべての敵のタイプで使います)。
- Include Layersの項目をNothingに設定します。
- Include Layersをもう一度開き、Environmentを選択(追加)します。
- さらにInclude Layersで、Vegetationを選択(追加)します。

- Nav Mesh Surfaceコンポーネントの一番下にある、Bakeボタンをクリックします。
ここまで設定、操作すると、明るい青色の面が地面の上に表示されます。この面がシーンに置いた敵キャラが動き回れる領域を示します。
- 再生モードに入り、Chomperの前に移動してみましょう。
今度はChomperが追いかけてきて、攻撃してくるようになります。
- こちらも手にしたスタッフで反撃しましょう。マウスの左クリックで攻撃できます。

一度攻撃を当てるとChomperを倒せます。何度か攻撃に耐えるようにしたいなら、次のように設定を変えます。
- HierarchyでChomperを選択します。
- インスペクターで、Damageableコンポーネントが表示されているところまで移動します。
- Max Hit PointsをChomperが攻撃に耐えてほしい回数にします。Ellenのスタッフが当たると、敵のHit Pointを1減らせます。

6. 3D Game Kitのオブジェクトを使って攻撃する
3D Game Kitでは、Damegeableコンポーネントを持つオブジェクトに、Contact Damagerを使ってダメージを与えることができます。
箱のオブジェクトとChomperを使って、これを試してみましょう。
- Projectウィンドウで、フォルダーをPrefabs > Interactablesの順に開きます。
- DestructibleBoxプレハブをSceneウィンドウにドラッグします。
- トランスフォームツールの移動モードで、Chomperの真上に箱がある配置にします。
- 箱はある程度高い位置に置いて、テスト時に何がどうなるかちゃんと見れるようにしましょう。

- 再生モードに入ります。
箱が落ちてきてChomperが下敷きになります...が、Chomperの上で箱がピタリと止まって、何も起きません。
注意:Chomperに近づきすぎるとEllenを追いかけてしまって、箱が落ちてきたときに起きることを観察できません。このステップの内容を行うときは、Detection Radiusを0にしておくのもいいでしょう。

箱がChomperに当たったらダメージを与えるように設定しましょう。まず、箱がChomperに当たった時にそれを検知する「トリガー」を追加します。
- Hierarchyウィンドウで、DestructibleBoxの横にある矢印をクリックし、子のオブジェクトを表示します。
- 子の方のDestructibleBoxを選択します。

- インスペクターに移動します。
- インスペクターの一番下までスクロールして、Add Componentをクリックします。
- 「Box Collider」を検索します。
- Enterキーを入力するか、Box Colliderコンポーネントをクリックして、DestructibleBoxに追加します。
- Box Colliderコンポーネントで、Is Triggerのチェックボックスをオンにします。

次に、Contact Damagerというコンポーネントを追加して、箱がChomperに当たった時にダメージを与えるようにします。
- 引き続きDestructibleBoxのインスペクターで、Add Componentをクリックします。
- 「Contact Damager」を検索します。
- Enterキーを入力するか、Contact Damagerコンポーネントをクリックして、DestructibleBoxに追加します。
- 追加したContact DamagerコンポーネントのAmountという項目の値を3にします。
- ここで設定する値は、先ほどのステップでChomperに設定したMax Hit Pointsという項目に設定した値と同じにしておきましょう。こうすると、箱がChomperに当たると一撃で倒せるようになります。たとえば下の画像ではAmountを3にしていますので、この場合はChomperのMax Hit Pointsも3とします(もちろん別の値にしてもかまいません)。
- Damaged Layersを「Enemy」に設定します。

- ここまで設定が終わったら、再生モードに入ります。

今度は、箱がChomperに当たると、Chomperのヒットポイントが0になり、動かなくなります。また、箱は弾んでどこかに飛んでいきます。これで箱を使ってChomperを倒せるようになりましたが、ちょっと見た目がよくありません(クッションのサイコロを当てたような動きをします)。
箱に少し設定を加えると、箱がChomperにダメージを与えるのと同じように、Chomperが箱にダメージを与えて、箱が壊れるようにすることができます。箱にしたのと同じように、ChomperにもContact Damagerを適用して、箱が壊れるようにしてみましょう。
- Hierarchyウィンドウで、Chomperを選択します。
- インスペクターを表示します。
- インスペクターの一番下までスクロールし、Add Componentをクリックします。
- 「Contact Damager」を検索します。
- Enterキーを入力するか、Contact Damagerコンポーネントをクリックして、Chomperに追加します。
- Contact DamagerコンポーネントのAmountを1に設定します。
- Damaged Layerで「Enemy」を選択します。

- 再生モードに入ります。

Chomperに箱が落ちてきて、当たった瞬間に箱が壊れるようになりました。Chomperは先ほどと同じく、箱に当たってヒットポイントがなくなり、動かなくなります。
7. 3D Game Kitを装飾する
3D Game Kitにはサンプルゲームを作るために使った環境オブジェクトがすべて収録されています。
環境オブジェクトは Prefabs > Environmentフォルダーに格納されています。
環境オブジェクトは種類ごとにフォルダー分けされています。フォルダーの中身をざっと見て、このオブジェクトを使って皆さん独自のシーンを構築してみましょう。

岩や植物を置く
3D Game Kitには、シーンを整えるためにRock PainterとVegetation Painterというツールが用意されています。これらのツールは植物や岩を置いて、地面に合わせて大きさを変えたり回転させたりすることができるというものです。
これらのツールの使い方をご紹介します。
- Hierarchyウィンドウで、VegetationPainterを選択します。
- 横にある矢印をクリックして、子のオブジェクトを表示します。

- GroundCoverをクリックします。
- Sceneウィンドウで地面が表示されている部分にマウスカーソルを持っていきます。
- 地面の上で左クリックすると、その場所に草や丸い葉っぱが置かれます。

左クリックしたときに置かれるオブジェクトの種類を変えるには、次のようにします。
- (Vegetation Painterを選択した状態で)インスペクターに移動します。
- Instance Painterコンポーネントを探します(コンポーネントの中に、ツールに登録されているプレハブのアイコンが表示されています)。

- 置きたいプレハブのアイコンが表示されているボタンをクリックします。選択したボタンは白でハイライトされます。
このツールの操作方法はインスペクターのInstance Painterコンポーネントが表示されている領域の一番上に表示されています。作業するためにまず覚えておくべき操作は以下の通りです。
- 左クリック:Sceneウィンドウでクリックした場所にプレハブを置く
- Ctrl/Cmd+左クリック:Sceneウィンドウでクリックした場所からプレハブを削除(削除できるプレハブがあるとき、円が赤く表示されます)
- Alt+画面スクロール操作(マウスホイールを回す):プレハブを置く範囲を広げる
- スペースキー:プレハブの位置や向きをランダムにする(自然な感じに草を置きたいときに有効)
このツールを使って置いたプレハブは、ツールの子オブジェクトになります。たとえば、GroundCoverを使って草を置くと、HierarchyウィンドウでGroundCoverの横に矢印が表示されるので、これをクリックして展開すると置いた草がGroundCoverの子として表示されます。

ツールを使って置いたオブジェクトは、すべてツールの子として格納されます。これらのオブジェクトをHierarchyで個別に選択して、編集したり配置を変えたりすることもできます。
VegetationPainterの子には他にもVegetationSmall、VagetationMedium、VegetationLargeがありますが、基本的な使い方は同じです。

岩の配置も同じように行うことができます。
- Hierarchyウィンドウで、RockPainterを選択します。
- 横にある矢印をクリックして、子のオブジェクトを表示します。
- RocksSmallをクリックします。
- Sceneウィンドウで地面が表示されている部分にマウスカーソルを持っていきます。
- 地面の上で左クリックすると、その場所に岩が置かれます。

注:このステップの内容を実践して地面を作り替えた後、敵キャラに移動できる範囲や、障害物(大きな植物など)の位置を認識させるためにNavMeshを再度ベイクする必要がある場合があります(岩を置いて高さの違う地面ができた場合など)。その場合は、以下の操作を行ってください。
- Hierarchyウィンドウで、Planeを選択します。
- インスペクターに移動して、NavMeshSurfaceコンポーネントの表示されているところまで移動します。
- Bakeをクリックします。

8. 3D Game Kitでテレポーターを作ろう
これで3D Game Kitにはテレポーターが用意されています。これを使って、Ellenを他のステージに飛ばしたり、シーン内の離れた場所に移動させたりすることができます。ここまで作ってきたシーンにテレポーターを置いてみましょう。
- Projectウィンドウで、フォルダーをPrefabs > Environment > Structuresの順に開きます。
- GateWayHugeTeleporterをシーンにドラッグします。
「Huge」と名前がついていることからわかるように、このテレポーターのゲートはちょっと大きめです。少し小さくしましょう。
- トランスフォームツールの大きさ変更モードと移動モードを使って、Ellenのサイズに合うようにテレポーターのゲートのサイズを調整します。
サイズを調整したら、Ellenにテレポーターが反応するように、コライダーをゲートに追加します。
- Hierarchyウィンドウで、GatewayHugeTeleporterを展開して、子オブジェクトを表示します。
- 子オブジェクトの中から、TeleportPlaneを選択します。
- インスペクターに移動します。
- Add Componentをクリックします。
- 「BoxCollider」を検索します。
- Enterキーを入力するか、「BoxCollider」をクリックして、TeleportPlaneにBox Colliderを追加します。
- Box ColliderコンポーネントのIs Triggerにチェックを入れます。

テレポーターの動作をつかさどるTeleporterスクリプトも追加しましょう。
- Add Componentをクリックします。
- 「Teleporter」を検索します。「Teleporter」という項目(スクリプト)が表示されます。
- Enterキーを入力するか、「Teleporter」をクリックして、TeleportPlaneにTeleporterを追加します。

続いて、Teleporterコンポーネントの設定を行い、テレポーターがEllenにだけ反応するようにして、さらにテレポート先の場所も設定します。
- TeleporterコンポーネントのLayerを「Player」に設定します。
- Hierarchyウィンドウで、Checkpointsを探し、その横に表示されている矢印をクリックして子オブジェクトを表示します。Checkpointという子オブジェクトが表示されます(名前がよく似ているので注意してください)。

- 今度はHierarchyウィンドウでTeleportPlaneをクリックして、先ほど表示したCheckpointをTeleportコンポーネントのDestination Transformフィールドにドラッグします。
Ellenがゲートに入って、光の粒子をまとってテレポート先に出てくるようなエフェクトも追加します。
- Hierarchyウィンドウで、Ellenを探し、その横に表示されている矢印をクリックして子オブジェクトを表示し、RespawnParticlesというオブジェクトを探します。

- 再度HierarchyでTeleportPlaneを選択し、RespawnParticlesをTeleporterコンポーネントのEnter Effectにドラッグします。
- TeleportコンポーネントのExit EffectにもRespawnParticlesをドラッグします。

再生モードに入り、Ellenにテレポーターのゲートをくぐらせてみましょう。

Ellenがテレポーターに入ると、最初にEllenが登場した位置に瞬間移動し、青い粒子がEllenを囲んで表示されるようになったと思います。これでテレポーターの設置ができました。
9. 3D Game Kitをもっと楽しもう
3D Game Kitのほとんどのオブジェクトは、Pressure Padの設定で見たようなイベントシステムを使って動作します。
Scenes > GamePlay フォルダーには、「Level 1」と「Level 2」のシーンが含まれており、このチュートリアルで使った以外のオブジェクトがコマンドシステムを使ってどのように設定されているかを見ることができます。
コンポーネントのドキュメントには、3D Game Kitで提供しているすべてのコンポーネントとそのパラメーターに関する詳細を掲載しています。
---
これでこのチュートリアルは終了です。これからもレベルデザインを楽しんでください!