プログラム

レベルデザインの方法

Unityでワールドを制作する際のレベルデザインの一方法を記述します。

一般的に、レベルデザインというと、ゲームステージのデザインから始まり、ゲーム難易度などのデザインまでを含みます。

ここでは、狭義の意味でのレベルデザイン(ゲームステージデザイン)の方法です。

  • ステージデザイン:建物や道、川などの配置設計図

 

レベルデザインは以下の手順で進みます。

  1. マップ作成:1,000m×1,000mの地図 → LevelDesign.png
  2. マップ読込:LevelDesign.png → UnityのPlane(平面)
  3. マップ検討:仮オブジェクトを作成してマップを検討する

 

マップ作成

マップの要件

マップで表現する範囲は1,000m×1,000mです。それを1,000px×1,000pxの画像にします。

  • マップ:1,000m×1,000m

つまり、マップ上の1mを、1pxで表現します。

例えば、

  • 横幅100m×奥行30m×高さ30mの校舎 → 横幅100px×奥行30pxの長方形
  • 幅50mの川 → 幅50pxの領域

 

マップの作り方

マップの要件を満たせば、マップの作り方は自由です。

Adobe Illustratorでもいいですし、Excelなどの図形描画機能を使ってもOKです。

凝ったマップを作るのであれば、レイヤー機能があった方がいいでしょう。

普段使い慣れた方法で作ってください。

 

ここでは、Excelを使った方法を説明します。

 

Excel作業

まずは、セルを正方形にします。セルを全選択して、セルの横幅と高さを揃えます。

次に、10×10セルを罫線で囲い、各セルも罫線で囲います。

1,000mを10分割したので、各セルの大きさは、100m×100mです。

  • セルの大きさ:100m×100m

最後に、Excelの図形描画機能を用いて、マップを作成します。

 

例えば、

  • 学校:幅300m×奥行200m
  • 校舎:横100m×奥行30m
  •  川:幅200m

LevelDesign.Excel

LevelDesign.Excel:画像クリックで拡大表示

 

Snipping Tool作業

Snipping Toolで10×10セル部分を切り出します。

LevelDesign.Snipping Tool
LevelDesign.Snipping Tool:画面クリックで拡大表示

 

Paint作業

まずは、切り出した画像をPaintに、コピー&ペーストします。

次に、サイズ変更を選択し、以下の設定にして、「OK」ボタンをクリックします。

  • 単位:ピクセル
  • 水平方向:1000
  • 垂直方向:1000
  • ▢縦横比を維持する ← チェックを外す!

 

LevelDesign.Paint
LevelDesign.Paint:画像クリックで拡大表示

 

最後に、pngファイルを書き出します。

  • ファイル名:LevelDesign.png
  • ファイルサイズ:1,000×1,000px

 

 

マップ読込

作成したマップをUnityのPlaneオブジェクトに読込みます。

  • LevelDesign.png → Unity:Planeオブジェクト

具体的には以下の手順です。

  1. Material作成
  2. Plane作成

 

Material作成

AssetsにMyMaterialsフォルダを作り、LevelDesign.pngをドラッグ&ドロップして読込みます。

  • LevelDesign.png → Assets/MyMaterials

次に、LevelDesignという名前のMaterialを作成します。

  • Assets/MyMaterials/LevelDisign

最後に、LevelDesignマテリアルの「アルベド」に、LevelDesign.pngをアタッチします。

  • Assets/MyMaterials/LevelDesign.png → アルベド

 

LevelDesign.Material
LevelDesign.Material:画像クリックで拡大表示

 

 

Plane作成

まずは、ヒエラルキーで、SampleSceneにPlane(平面)オブジェクトを作成します。

  • SampleScene/Plane

次に、インスペクターを以下の設定にします※。

  • 回転:Y:180
  • スケール:X:100, Y:1, Z:100

※Planeの1スケールは10mなので、1,000mの場合は100スケールとなる

最後に、LevelDesignマテリアルをPlaneにアタッチする

  • LevelDesignマテリアル → Plane

 

LevelDesign.Plane
LevelDesign.Plane:画像クリックで拡大表示

 

 

 

マップ検討

ここまでで、建物や川などの配置設定図(マップ)をUnityに読み込みました。

ここでは、設計図通りに仮物体を作成し、正しくワールドが出来ているかを確かめます。

 

仮物体の作成

まずは、SampleSceneに立方体を作成します。

  • SampleScene/Cube

次に、CubeをSchoolと名前変更します。

  • Cube → School

最後に、インスペクターで属性を変更します※。

  • 位置:マップ上の位置 ← X:50, Y:15, Z:245
  • スケール:X:100, Y:30, Z:30

※Cubeの1スケールは1mなので、100mの場合は100スケールとなる

これで、横幅100m、奥行30m、高さ30mの校舎ができました。

 

LevelDesign.TemporaryObjects
LevelDesign.TemporaryObjects

 

School2(校舎2)も同様に作成します。

 

 

マップを検討

ここまで出来たら、一旦プロジェクトをセーブして、Playしてワールドが正しくできているかをチェックします。

下図は、プレイヤーが校舎に近づいたときのゲーム画面です。

もっと近づいて、校舎を見上げたり、校舎の周りを回ったりすると、設計図通りに正しくワールドができていることが分かります。

  • 校舎:100×30×30mで正しくできている
  •  川:60mの川幅が正しく再現できている

 

Level Design.Play
Level Design.Play

 

 

 

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です