GameBlender(Blender Game Engine)とは
一応、目的としては、3Dゲームを作ろうと思った人が開発環境としてBGEを利用するかどうか、の参考材料になればっと思ってます。
目次
・BGEの概要
・BGEで作られたゲーム
・BGEの注意点
・お勧めするBGEの用途
・入門情報
概要
BGEは3DCGソフトBlenderの一つの機能として、Blenderに埋め込まれています(どちらかと言うとオマケです)。制御はソフト上で設定でき、細かいところは、スクリプト言語である Python によってプログラムします。非常に単純な動作であればPython無しでも作れますが、ある程度ゲームらしくするならPythonは必須と思われます。開発プラットフォーム | Windows、Mac、Linux、FreeBSD |
開発環境 | Blender |
開発言語 | Python |
グラフィックライブラリ | OpenGL |
物理エンジン | Bullet |
出力プラットフォーム | Windows、Mac、Linux、FreeBSD |
特徴(良い点)としては、
○ イベント検出、当たり判定等の設定をソフトウェア上で設定できる(プログラミングの必要なし)
○ Pythonという比較的簡単なプログラム言語で開発できる
○ 3D作業とシステム開発を同じソフトウェア上で平行して行えるため、確認作業が楽ちん
○ モデル、エフェクト、システムなどを共通のファイル(blendファイル)で扱えるので共有が楽ちん
っと、より簡単に作れることに重きを置いた個人向け開発環境です。
実績
BGEを用いて作られたゲームは多数ありますが、ここでは2作品を紹介します。一つが公式プロジェクトとして作成されたゲームで、もう一つが商用として作られたゲームです。
公式プロジェクト:Yo Frankie!
http://www.yofrankie.org/
BGEで作られた商用ゲーム:Color Cube
http://www.colorcubestudio.com/
その他
http://www.tutorialsforblender3d.com/Demos/Demos.html
さらに見たい人は、YouTubeで「blender game」とかで検索してみるといいでしょう。ハイクオリティなのがたくさん出てきます。
このように自由度は高く、BGEではそこそこのクオリティしか出せない、っということはありません。
しかし、大・中規模開発には向かないと思います。その理由は以下の注意点を読むとなんとなくわかるのではないかと。
注意点
BGEを使うかどうか決める際に、気になるだろうことを列挙します。ライセンス
BGEは、ライセンスがやや面倒。と言うのも、Blenderによって出力される実行ファイル(exe等)はGPLライセンスのプログラムが内包されているので、GPLライセンスが適用されてしまうとのことです。GPLライセンスとは、詳しい説明は下記のリンク先にまかせるとして、簡単に言うと、中身を誰でも見られるようにして、誰でも改良を加えられるようにしよう、というライセンスです。GPLライセンスのものを利用して作ったものは、GPLライセンスにしなくちゃいけません。
自分の製作物をGPLライセンスにしたくない場合には、GPLライセンスを含む物(Blenderが出力するexe、BlenderPlayerなど)と、自らの制作物(blendファイル、pythonスクリプトなど)を分けると言ったことが必要です。(具体的なことはリンク先に書いてあります。)
Licensing of Blender Games
http://wiki.blender.org/index.php/Doc:2.6/Manual/Game_Engine/Licensing
GNUライセンスに関してよく聞かれる質問
http://www.gnu.org/licenses/gpl-faq.ja.html#WhatDoesGPLStandFor
プレイに必要なPCスペックが高くなる
BGEではPythonスクリプトを使用しますので、C++等に比べ、処理速度が落ちます。3Dゲームの場合、グラフィックでの負荷が主になるとは思いますが、スクリプト量が多くなると窮屈になるかもしれません。また、複雑なステージの中、シビアなレスポンス(反応速度)を求める場合には注意したほうが良いと思います。
ゲームファイルの容量が大きくなる
BGEで作成したゲームを配布する場合、実行ファイル(exeファイル等)を出力するか、プレイヤーソフト(BlenderPlayer)を同封するかになります。どちらの場合でも、たとえほとんど素材を使わない単純なゲームであっても、ゲームエンジンを機能させるファイルがまるまるパッケージングされるので、容量が大きくなります。ただの正立方体が表示されるゲームでも150MBくらいになりますね。
最近のは1TBのHDDもザラですから、PCに置いておくには大きな問題じゃないかもしれませんが、配布する際にはネックかもです。
綺麗なグラフィックにするには
GLSL(OpenGL Shading Language)というシェーダーを使用すると良い感じになります。しかし、使用するにはそれに対応したグラフィックボードが必要です。つまりGLSLを使用した場合、プレイ側も対応していなければ、ゲームを遊べないっということになります。(最近のPCの対応率ってどんなもんなんですかね?)グラフィックにそこまで拘らないのであれば、GLSLを使わなくても作成できます。使用しないと極端にクオリティを下げるというわけでもなく、例えば、上記の「Color Cube」はGLSLは使っていません。
暗号化はサポートしてません
ゲームを公開するときに、ソースコードや3Dモデル、テクスチャ、音声ファイル等をプレイヤーに見せたくない、あるいは、素材の利用規約の関係で、取得できない状態にしなきゃならないっという場合には、別途ソフトウェア(BPPlayer、GameKitなど)を使うか、自身でそういったシステムを構築する必要があります。BPPlayer
http://blenderartists.org/forum/showthread.php?130089-BPPlayer-BGE-Security-(1-06-Win32-Linux64-MacOSX)
GameKit
https://code.google.com/p/gamekit/wiki/BlenderAddon
BlenderゲームのGPL回避と、BPPlayerを使った暗号化
http://timiditybraver.blog71.fc2.com/blog-entry-553.html
情報は主に英語圏から
日本ではBGEを使う人も少なく、入門的な情報ならまだしも、有用な情報・書籍は英語のものがほとんどです。ただ、英語圏に目を向ければ、BGEで本気でゲームを作っている人は大勢いて、疑問に思ったことは、(実質)公式BSSであるBlender Aartists で、ほぼ間違いなく既出されています。難しいのは、適切な検索ワード(英単語)が分かるか、ですね。
Blender Artists | Game Engine
http://blenderartists.org/forum/forumdisplay.php?34-Game-Engine
入門のための情報については、後述します。
その他
・BGEが自動でやってくれる制御が多いため、作成は容易になりますが、細かい制御はできません。メモリ管理も自動です。システムを詰めたい人には向きません。こんな人に向いてる?
・個人の趣味で作りたい人
・重度の英語アレルギーでは無い人
・とにかくアイディアを形にしたい人
・中身をオープンにしてもいい人
不特定多数に遊んでもらえるような人気ゲームを作ろうと思うなら、モデル、アニメーションはBlenderで作成して、制御は他のゲームエンジンを使うのがベターです。最近のゲームエンジンはBlenderに対応しているものが多いそうです。
とはいえ、3Dゲームはただでさえ作業が多いですし、そもそも難易度的にそこまで敷居の低いものでもありません。(あくまで)比較的簡単に制作できるBGEは、まずは形にするにはいいかなっと思っています。
さらに個人的には、試作に適した環境であると思っています。他のゲームエンジンを採用してゲームを作ろうと思っている場合にも、まずBGEを使って作ってみる。すると、BGEは3D作業と平行してプログラミングできるので、モデル、モーションの不具合や必要なモーションの確認ができます。また、システムを実装しテストプレイすることで、システムの仕様をより良いものに詰める際に、修正が比較的容易になります。
ゲーム制作経験が豊富な方ならまだしも、最初は皆、試行錯誤して作り進めます。その試行錯誤の段階であるなら、簡単な環境・言語で作成したほうが修正の手間が少なく、たとえその後 移植するにしても、その方が挫折因子が少なくなるんじゃなかろうか。
入門の仕方
最後にどのように始めたらよいか、というのに少しだけ触れます。とっかかりについては、自分のコンテンツで恐縮ですが、以下の動画が参考になるかと思います。バージョンが古いですが、そう大きく変わりません。(動画:v2.52、本稿投稿時の最新:v2.66)
はじめてのゲーム作り
http://tiblab.net/workvideo/first-bge-1/
(ニコニコ動画:http://www.nicovideo.jp/watch/sm11818104)
スクリプトの基礎的な情報については、これまた自分のコンテンツですが、以下のURLに目を通してみると良いかもしれません。
TB code | BGE API Samples
http://sites.google.com/site/tibracode/bge
それ以降は、APIリファレンスを片手に色々試してみるのが、近道なんじゃないかと思います。
GameEngineリファレンス
http://www.blender.org/documentation/250PythonDoc/
前述しましたが、作成する上で疑問に思うこと、したいと思うことは、大抵 Blender Artists で既に話題に上がっています。得たい情報を得るためのキーワードが分からないと中々見つからなかったりしますが。
Blendファイルを添付してくれることが多いので、やりとりがわからなくても参考になる場合が多いです。
Blender Artists | Game Engine
http://blenderartists.org/forum/forumdisplay.php?34-Game-Engine
その他、参考になるページについては、以下のサイトが良いです。
blendertutorial@ ウィキ | Game Engine
http://www35.atwiki.jp/blenderwiki/pages/23.html
- 関連記事
-
- 久々のモデリング
- ろご
- GameBlender(Blender Game Engine)とは
- カメラそうさ
- ゲームモデルづくり3