ゲーム企画(その1)- 制作方法の検討

実際に制作する前に、そもそもどうやって制作していくのか?といったところを洗い出します。他のシステム屋やゲーム屋さんがどのような制作過程を経ているかはわかりませんが、筆者は机上で設計書を書く前に、実現可能性を検討します。思いつきで実行して、文書だけは立派に仕上げました、という実例を何度も見てますので・・・

以下、検討結果となります。

3Dか2Dか?

3Dです。2Dでもよかったのですが、大量の絵を書くためのリソースが無いことと、3Dモデルだとモデルの使いまわしが可能なので、制作時間を抑えられるためです。とはいえ、実際3Dモデルを使うとなると、かなり複雑な仕組みが必要になります。キャラクターの衝突検出や物理モデルの設計、ライティング等様々なことを考慮する必要があります。あれ、結局制作時間抑えられてない?という突っ込みがありそうですが・・・

とはいえ、これだけ3Dゲームが普及してる中で2Dゲームだけ作るのは限界があります。ゲームで3Dを扱う利点は、より幅広い表現力をゲームの中に注ぎこめるという事です。そのような点も含め、将来的なことを考えると、ここで3Dの知識を蓄えておくのは必須なのです!

どうやってオブジェクトを作るのか?

こればっかりは、3DCG制作用のソフトウェアが無いとどうにもできません。テキストに頂点データやら法線ベクトルやらを頭の中で想像して書ければ別ですが。

世の中色々そのようなソフトウェアはありますが、筆者はLightwaveを使用しています。選定理由としては、価格が他のソフトウェア(MAYA、3dsMax等)に比べ安いことがあります。本音を申しますと、筆者が昔から使用してなじんだソフトウェアだったので、新しい操作を覚えることなく、スムーズにモデリングできる!!というのが理由です(笑)(下図はサンプル)

さて、ここで問題となるのが、どのようなフォーマットで作成したデータを出力するか?ということです。当然、Lightwave独自のバイナリファイルでは、中身のデータどうなっているのか解らないので、開発の際に3Dモデルが読み込めるようなデータフォーマットに変換する必要があります。結構有名かもしれませんが、Colladaという XML形式のデータフォーマットを使用します。バイナリとは異なりデータの中身がテキスト形式で可視化されているので、データの確認も行いやすいのです。

どうやって開発するのか?

根本的なとこですね。iPhoneで3Dゲーム作るって話なのですから、まずは以下を覚える必要があります。

  • 開発言語:Objective-C
  • 3DCGに使用するAPI:OpenGL ES

iPhone専用のOSであるiOSでアプリを稼動させるためには、Objective-Cでアプリを制作する必要があります。実は未体験の言語なので、若干不安があったのですが、大方のオブジェクト指向言語と同様のコンセプトが適用されており(勿論、違う点はありますが)、筆者としてはとっつきやすい言語でした。

OpenGL ESは、3DCGを扱うAPI「OpenGL」の組込み端末向けのサブセット版です。勿論こっちも未体験ゾーンです。ですが、基本的なOpenGLの知識さえ抑えておけば、問題ありません。

開発の流れ

どんななんでしょうね(おい)。いや、本当にやったことないので、解りません!というのが本音です。とはいえ、ある程度フローを決めておいても悪いことはありません。てなわけで、多分下図のような感じでやります。


見て解るように、かなり曖昧です(ちょっとだけ説明しますと、細い矢印は依存、矢印の無い四角形は平行作業可能)。特に試験フェーズなんて何をして良いかわかりません。ですが、何か新しいことに挑戦するのに、まったく方向性が無いというのも困ります。なので、今回はざっくりとですが、制作フローを図のように決めました。おそらく詳細なところは進めていくうちに見えてくるでしょう(そうならないと困ります)。

というわけで、今回はとりあえずゲーム制作にあたり大枠のガイドを記してみました。あまり具体性が無いので開発するという実感が湧きませんが、次回からゲームシステムについて筆者なりに考えたやり方で構築してみます。