日本産ゲームエンジンを作ろう 第5回
(概要編)

ゲームエンジンの概要

 随分とひさしぶりの更新になります。1か月程、本職やりながらベクトルについて勉強してました。でも全然理解できてませんけどね。 さて、今回は「第4回 日本産ゲームエンジンを作ろう」で上げた必要な機能を分類分けしていきたと思います。

プロジェクト全体

 ゲームに限らず、チームで1つのものを作り上げて行くときに必要になるのがプロジェクト管理機能ですね。 プロジェクト管理機能はプロジェクトの進行を管理するために存在します。また、開発の領域を管理し、他のゲーム開発 とは切り離した管理を実現します。
  • プロジェクト管理機能
    プロジェクトの領域を管理します。Eclipseで言うところのワークスペースですね。他の開発とは別の領域で 作業を進めることを実現します。また、開発するための環境定義やプロジェクト単位でのメタデータを 定義できるようにします。
  • リソースのバージョン管理機能
    リソースのバージョンを管理し誤修正による品質低下を防ぎます。過去を遡って修正した箇所を確認することができます。 また、リポジトリを共有することで、他の担当者が修正したリソースを自分の開発環境へ簡単に取り込めます。
  • アトリエ管理機能
    ゲームエンジンのアプリケーションは様々なビューを用意します。開発担当者はその中から必要なビューを 組み合わせて、配置することで開発の効率化を実現します。まるで自分だけのアトリエのような感じを実現します。 アトリエ管理とはこの時のビュー及び配置場所をまとめて定義できるようにします。
  • ビルド機能
    ゲームエンジンで定義した内容を元に各OSへインストール可能な形へビルドします。自分の環境だとAndroid のみ開発可能なので、まずは対象のOSはAndroidのみとします。

モデル設計

ゲームを作る際、絶対に必要になるのがモデルですね。モデルはポリゴンで形成され、ゲームに出てくる キャラクタ、ギミック、フィールド等、あらゆるものの形状を構成します。
  • モデルの取込
    他のモデリングソフトで書いたモデルを取り込めるようにします。モデリングソフト固有のフォーマットから 当ゲームエンジン独自のフォーマットへ変換したのち、モデル取り込みができるようにします。
  • モデルの編集
    モデルの編集が、他のモデリングソフトではないとダメ!なんてメンドくさいですね。モデリングソフト のフォーマットにこだわらないのであれば、独自のフォーマットに変換した後、そのまま編集できれば効率も 上がると思います。粘土をコネるような感じで編集できれば面白いですね。
  • モデルの表示
    モデルの取込みや編集を行う前にもっと必要な機能です。それはモデルを表示する機能です。 モデルの拡大/縮小や回転することができます。また、ライトを配置することで、影を付けた 状態での表示もできるようにします。
  • ライブラリ管理
    モデルはライブラリ化し、いつでも取り込めるようにします。ライブラリ化されたモデルからは フィギュアを生成することができプロジェクト毎にカスタマイズして保存することができます。 ライブラリを変更することも可能とします。

フィギュア設計

モデルをゲームで扱うためにインスタンス化して、ゲーム固有のカスタマイズを施します。モデル設計の 段階では形状のみの設計ですが、フィギュア設計ではテクスチャやモーションを付けることで、ゲームで 使用できるようにモデルに色々着飾って具現化します。
  • 材質機能
    フィギュアに質量、硬度、材質を与えます。これらの情報は法線や物理演算に影響します。 材質は前もってライブラリ化したのもから選択することを可能とします。
  • 物理演算機能
    重力、跳ね返り、運動、効果、影響などの演算を伴う処理をフィギュアに与えます。 材質は前もってライブラリ化したのもから選択することを可能とします。
  • テクスチャ機能
    フィギュアにテクスチャを貼り付けます。 テクスチャは前もってライブラリ化したのもから選択することを可能とします。
  • ボーン機能
    フィギュアにボーンを与えます。いくつかのボーンをセットにして管理します。
  • モーション機能
    ボーンを元にフィギュアにモーションを付けます。モーションは前もってライブラリ化したものから 選択することを可能とします。
  • ライブラリ管理
    フィギュアはライブラリ化し、いつでも取り込めるようにします。ライブラリ化されたフィギュアからは インスタンスを生成することができプロジェクト毎にカスタマイズして保存することができます。 ライブラリを変更することも可能とします。
  • クラス管理
    このフィギュアはユニットであるとか、歩行ユニットであるとか、ボタンであるとかフィギュアに対して 基本的なグループを設定します。ちょうど、ユーザロールのような感じですかね。
  • AI機能
    フィギュアにAIを設定して、自動的に動けるようにします。AIには言葉やモーション、移動、攻撃等、様々な ものを組み込めるように設定します。

フィールド設計

フィールドを編集することができます。平らで簡単なフィールドからフィールドの凹凸及び、山 崖、川など複雑な地形を編集することができます。
  • 地形編集
    地形を編集します。山、崖、川を作ることができます。地形もポリゴンで構成します。AOEの シナリオエディタのような感覚で地形を編集します。他に空、宇宙のような空間も編集することができます。
  • 天候編集
    晴れ、曇り、雨や嵐と言ったような天候を編集します。天候は時間によってどんどん変更するように 設定することができます。
  • フィギュアの配置
    フィールドにフィギュアを配置します。フィギュアはフィールドに配置するとインスタンスとなり、 同じフィギュアを何個でもおけるようにします。もちろん状態はインスタンス毎に保持するので、 1つのインスタンスの状態変換が他のインスタンスに影響を及ぼすことをなくすことができます。
  • ギミック編集
    フィギュアにトリガを設定してアクションを設定します。トリガやアクションは前もってライブラリに登録 したものから選択します。

ステージ設計

フィールドとステージに必要な非ビジュアルオブジェクトとで構成します。非ビジュアルオブジェクトとは得点、レベル、 経験値、お金、タイマーなどの内部で管理するポイントのことでステージに依存するようなものを言います。
  • 非ビジュアルオブジェクトの配置
    得点、タイマや、配置したフィギュアに対してポイントを設定します。時間によりフィギュアを自動的に 生成する機能を設定することができます。他にもステージのクリア条件を設定するなど様々な 非ビジュアルオブジェクトを設定することができます。
  • 遷移条件の設定
    ステージに対して遷移条件を設定します。ステージの端に着いたら次のステージに遷移するとか、全てのアイテムを 集めたら次のステージに遷移するとか、ボタンを押したら遷移するとか設定することができます。

ゲーム設計

ステージを非ビジュアルオブジェクトとで構成します。ゲーム設計で言う非ビジュアルオブジェクトとはステージ設計で でてきたものとほとんど一緒ですが、ステージに依存せずにゲーム全体に依存するものを言います。
  • 非ビジュアルオブジェクトの配置
    ゲーム全体に関わる、総合得点、レベル、体力などを設定します。また、キャラクタやモンスターが存在するのでれば そのパラメタ等、ゲーム全体に影響するものを設定します。但し、パラメタはステージ設計時にオーバーライド できるものとします。
とりあえず、今回は以上です。
メッセージを残す
名前: メッセージ:
Copyright © takamax All Rights Reserved