アドベンチャーゲーム2

フィールド作成

アドベンチャーゲームチュートリアルの第2回目では、フィールド作成をしていきます。まず、キャラクターが移動したり登ったりするフィールド作成からです。以前学んだProBuilderを使ってフィールド作成をしていきましょう。

LEVEL

開発環境

UNITY

フィールド作成

今回はUnityが提供するチュートリアルをつかっていこう!まず、プロジェクトを作成していこう。

1.このプロジェクトにはProBuilderが予め入っているので

T00ls > ProBuilder > ProBuilder Window でプロビルダーをすぐに使い始めることができる。

 

ProBuilder Windowの表示を分かりやすい「アイコンモード」に変更しよう。

2.Cube(キューブ)を作ってみよう

↓の「シェイプツール」ボタンをクリックすればすぐにCube(キューブ)が作れる

Extrude Face Tool (バージョンによってアイコンが違います。)

他の形を作りたいときは「シェイプツール」ボタンをAltキー(Windows: Control)を押しながらクリックしよう。

すると「シェイプツール」ウィンドウが開く

↓の例はCylinder(円柱)を作っています。

 

ProBuilderについては下のカリキュラムも参考にしてください。

ProBuilderを使う

ProBuilderで3Dモデル製作2

ProBuilderを使った3Dモデル製作3

 

 

作ったオブジェクトがキャラクターが当たるようにしましょう。

1.キャラクターははすり抜けてしまう

 

2

毒の池をつくる

1.PolyBrush(ポリブラシ)をつかってプロビルダーでつくった地面を編集しよう。

まず地面(Plan)を選択します。

 

2.PolyBrush(ポリブラシ)ウィンドウを表示させます。

したのようなウィンドウが開くと思います。

3.したの「プッシュ/プル」ツールをクリックします。

4.地面をクリックすると地面が盛り上がってきます。

4.Control(Ctrl)ボタンを押しながらクリックすると凹みます。

これで毒の池ようの穴ができました。

 

作ったオブジェクトがキャラクターが当たるようにしましょう。

1.毒用プレファブを置こう

Assets > 3D GamekitLite > Prefabs > Interactables

にある毒池プレファブをシーンにおく。

自分の作った穴に入れれば毒の池池の完成だ。

2.試して見よう。

ゲームを起動してテストしてみよう。キャラクターが池に触れたら、キャラクターが死んで最初に戻れば正常に動いている。

ノート:新しくシーンを作るときに、高さに気をつける必要があります。このプログラムには予めデスエリアが設定されています。

そのエリヤ(高さ)にいくと死んでしまいます。

ですエリアは下のように設定されています。

2

敵を置く

1.敵の種類

チャンパー

キャラクターを見つけると向かってきて攻撃します。

スッピター

キャラクターを見つけると毒液を吐きかけます。

ともにキャラクターを見つける範囲などを設定で帰ることができます。

 

2.通常のセッティング

キャラクターを見つけるためのプログラムが実装されており、設定を変えることで見つけ方を変えることができます。

また、Damageableコンポーネントをもっておりダメージを受けたときのヒットポイントの減り具合なども調整できます。

3.敵をセンタしたときの表示について(Gizmo)

紫の円:キャラクターを見つける範囲です。この円の中にキャラクターが入るとキャラクターを見つけます。キャラクターと敵との間に何か遮るものがある場合は見つけることができません。

黄色の球:敵の目がある位置です。

赤の円:敵がダメージを受ける受ける範囲です。この範囲に攻撃すればダメージを受けます。

 

4.チャンパーを追加する

Assets > 3DGamekitLite > Prefabs > Characters > Enemies > Chomperにあるチャンパープレファブをシーンに入れます。

チャンパーを選択し、インスペクター見るとDetection Radius(索敵範囲)という項目があります。ここの数値を変えると見つける範囲を変えることができます。

早速動かして見ましょう。でも下のように敵が動けない状態になったら、NavMeshの設定が間違っている可能性があります。

下のようにNavMeshAgentコンポーネントがなっているかチェックしてください。

次にフィールドのNavMeshの設定があっているか見ていきましょう。

まずPlane(地面)を選択します。

インスペクターのAddComponentをクリックしてNavMeshSurfaceを追加します。

次にAgentTypeをChomperにします。

次にIncludeLayersのいったんNothingにしてすべての選択をなくし

その後で、Enviromentに設定します。

次にBakeしてフィールドのNavMeshの設定は完了です。

青く見えるところが敵が歩行可能なエリアになります。

青く表示されていない箇所は障害物があり敵が行けない場所です。

5.スピッターを追加する

3DGamekitLite > Prefabs > Characters > Enemiesにあります。

基本的にはチャンパーと設定は一緒です。

スピッターは遠距離用の的で、キャラクターが近づきすぎると逃げていきます。

Fleeing Distance で酸を吐く距離を設定できます。

キャラクターから逃げ出してほしい時はFleeing DistanceをDetection Radiusより大きく設定します。

また、スピッターに環境を考慮させたい場合は、View Block Layer Maskの値をEnviromentにします。

2

動く床をおく

1.動く床(Moving Platforms)を置こう

この動く床プレファブはボタンとの連携などの機能もある。

Assets > 3D GamekitLite > Prefabs > Interactablesにある「Moving Platforms」プレファブをシーンに置いて見よう

 

置いた場所が動き始めるときの最初の位置になります。

動く床プレファブを置くといくつかの表示(Gizmo)がシーン上にでてきます。

各項目を移動させることによって自在に動きをコントロールできます。

1).プレファブ自体の位置

2).動き出す開始位置

3).動きがとまる位置

4).動く距離

動く床プレファブのインスペクタ画面で下記コンポーネントのActiveにチェックを打ちます。

これで動くようになります。

Preview Positionのスライダーをうごかすことで動きを確認できます。

2.LoopTypeを選びます。

Once:一度で終わり、繰り返しはありません。

PingPong:スタートからエンドそしてエンドからスタートと繰り返します。

いちばん一般的な繰り返しです。

Repeat:スタートからエンドにいったあとまたスタートに戻って繰り返します。