横スクロール2Dゲームの地形を自動生成しよう!
ランゲームやジャンプゲームのような2D横スクロールゲームのステージを自動生成するAssetとその使い方を解説します。
自動生成することで、実行するたびに別のステージになるので何度でも遊べるゲームを作ることが可能です。
Endless-2D Terrain Generator
今回使用するAssetは、Endless-2D Terrain GeneratorというAssetになります。
このAssetは
- コーディングの必要がなく、すべての地形生成は、エディターに入力したルールに基づいて作成されます。
- 退屈で平凡な地形だけでなく、動的に生成されたメッシュは、キャラクターに丘や谷を走らせることができます。
- 完全にコメントされたC#コード。
- モバイル対応。地形は必要なときにのみ生成され、画面上になくなると破棄されます。これにより、モバイルデバイスでのパフォーマンスがスムーズに保たれます(Android HTC EVO 3Dでテスト済み)
それでは、使い方を説明します。
Endless-2D Terrain Generatorをインポート
Assets StoreでEndless-2D Terrain Generatorと検索します。
Downloadをクリックすると、
Possible incompatibility with Unity 2019
This package was published using Unity 4 and contains asset types which may not upgrade cleanly to Unity 2019:
While Unity will generally attempt to upgrade assets to work, problems may still occur. For more information about upgrading projects to Unity 2019, please refer to the Unity 5.0 Upgrade Guide.
For more information about the compatibility of this specific package, please contact the publisher directly.
Cancel Access
|
とでますが、Accessを押してダウンロードし、インポートしてください。
簡単な作り方
画面上部のComponentをEndless 2D Terrain→Create Terrainの順番に選択してください。
HierarchyにEndless 2D Terrainオブジェクトが追加され、単純な波形の地形が出来上がります。
作成した地形を確認するために、CameraオブジェクトにChaseCameraスクリプトを追加します。このスクリプトは、カメラが右に移動し、必要に応じて生成される地形を確認できます。
実際のゲームでは、カメラはキャラクターを追跡します。
後は、このオブジェクトにマテリアルや生成のためのパラメーターを設定することで、思い通りの地形データを作成することができます。
Endless 2D Terrainの設定
Front、Top、Detailのマテリアルの設定ができます。地面は、Front、Topの二層構造となっており、それぞれの、マテリアルや高さを設定できます。
ここでは、基本的な設定を行い、次に丘の角度やコイン等のオブジェクトの設定を行います。
今回は画像のように設定しました。
Terrainの生成ルールやプレハブの追加
Terrain Generation Rulesでは各種のパラメータの設定を行うことができます。
丘の高さやその出現間隔を最小値と最大値にて設定することができ、Terrain StyleをRandomにしておくことで、設定した間隔でランダムに生成されます。
Terrain Generation Rulesの詳細
Terrain Style |
Prefab Generation Rulesでは、コイン等のオブジェクトの設定が可能で使いたいプレファブを設定し、出現間隔や1グループに表示する個数などの設定ができます。
Prefab Generation Rulesの詳細
Prefab To Clone |
実際にGame画面でどう映るのか見ながら調節しましょう。
今回は画像のように設定しました。
これで一通りの設定が終わりました。最後にPrefabsフォルダのKoalsをHierarchyにドラックアンドドロップして実行してみてください。地形が自動生成されます。
まとめ
このAssetを使うことで、横スクロールのステージを自動生成することができました。あとは、スコア表示やゲームオーバー、キャラクターをコントロールできるように設定するだけでゲームを作ることができます。
コメント