GameBlender(Blender Game Engine)とは

3DCG統合制作環境ソフトフェア Blender の一つの機能である Blender Game Engine(以下、BGE)を使ってゲームを作成することについて、まとめてみます。何かの参考になれば。


一応、目的としては、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

関連記事

コメント

Re:

こちらのコメントは下の記事に移動しました

【Blender Game Engine】初めてのゲーム作り 2/5について
http://timiditybraver.blog71.fc2.com/blog-entry-538.html

お久しぶりです

自分もBGEを使ってしばらく経ちますが、とても参考になります。

BGEの特徴や利点について私自身の意見等をブログに書く予定があるのですが、参考文献(?)として、この記事を紹介させて頂いても大丈夫でしょうか?
私がまとめようとして挫折した文章を的確にまとめて頂いた感じなので、とても助かります(笑)

もしよろしければ、ブログだけでなく私の管理する別のサイトでもこの記事に対して度々リンクを貼らせて頂くことになるかもしれません。

Re:お久しぶりです

お久しぶりです。

リンクや紹介はこのページに限らず、すべて自由にしてもらって大丈夫ですよ。
承諾や報告も不要です。あれば嬉しいですけどね。(トラックバックとか^^)

記事は勢いで書くため、ちょくちょく書き直したりもしますので、その辺はご了承ください_ _。

Re:お久しぶりです

了解しました!
ありがとうございます!

こちらのコメントは下の記事に移動しました。

【Blender Game Engine】 噴出し(テキストメッセージ)のようなものを表示させるには
http://timiditybraver.blog71.fc2.com/blog-entry-539.html

こちらのコメントは下の記事に移動しました。

【Blender Game Engine】車の挙動を再現したい
http://timiditybraver.blog71.fc2.com/blog-entry-540.html

こちらのコメントは下の記事に移動しました。

【Blender Game Engine】オブジェクトの削除(EndObject)について
http://timiditybraver.blog71.fc2.com/blog-entry-542.html

コメントの投稿

非公開コメント

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

CryENGINE 3 を使ってみた。(前編)

最近、ゲームフェスに三つのゲームを投稿しましたが、 そろそろBlenderゲームエンジンでの制作にも限界を感じてきましたので、 別のゲームエンジンを使うことも視野に入れて制作を続
このブログについて
□ ブログ内容
決まった趣旨はありません。
興味を持ったこと・日常で行ったことを何でも書きます。

3DCG・プログラミングなどが多めです。

□ 現在の活動
・ウェブサイト制作
 (http://tiblab.net)
・3Dゲーム制作
 (コックパニック)
検索フォーム
ユーザータグ

Blender キャプチャ blendファイル BGE Python GameEngine ムービー Android CG  Red5 Terragen C# C++ 

カテゴリー
プロフィール

TiBra

Author:TiBra
趣味でCG制作、プログラミング等を行っています。メイカーズに憧れています。

ネットを通じた交流を広げたく思っていますので、コメント・メールはお気軽にどぞー

戯言程度のことは、こちらのブログに投稿しています。基本戯言なので、実質移転しているようなものです。

Mail:tibraあっとlive.jp
HP:TibLabmemocode
動画:VimeoFC2動画ニコニコ
ファイル:SkyDrive
企画:3Dゲーム作業実況

Blogリンク
不都合がございましたらご連絡ください。
当ブログのリンクバナー
FC2 ID
FC2カウンター
RSSフィード+解析コード