はじめてのBGE

お久しぶりです。やっと大事な日が終わりました。少なくともこれから二十日間はゆっくりできそうです。学生万歳。

今日はちょっとBlenderのゲームエンジン(BGE)を触ってみました。勝手に膨らむゲーム妄想。誰か止めてくれ。


~はじめてのBGE~

その1.動かす


up_20090821224815.jpg
矢印キーでCubeが前後移動、横回転します。

Sensor(キーイベントとか当たり判定などを感知するもん)でキーボードを感知し、
Controller(条件みたいなもん)を経由して、
Actuator(所定の動作を行うもん)でMotionを選択。それぞれのキーに対応する動きをつけます。

やはは、これは簡単。CubeのObjectTypeはDynamicにしとくと、Planeを降りた時に落下します。その他のパラメータはその他判定に関るもの。多分。実は知らない。
 細かいことについて書くつもりないんで、最後に参考サイトを上げときます。操作や機能についてはそちらで^^


その2.ジャンプ


up_20090821224326.jpg
矢印キーで移動。Spaceでジャンプします。

とりあえず、z軸方向(上)に初速(?)が加わるようにしました。でもこれでは、押している間ずっと上昇してしまいます。しかも空中にいる間何度でも上昇する事ができます。いやいや、ガンダムじゃないんだから。

ということで、Cubeが地面についているか判別して、地面にいるときだけ飛べるようにします。ほい。

up_20090821233428.jpg

地面についてるかの判別にはSensorのTouchを使いました。Touchは設定したオブジェクトが指定したマテリアルに触れたときを感知します。よって、地面にはマテリアルを設定しなくてはならず、地面のPlaneにはFloorというマテリアルに設定しました。

次にCubeにisfloorというプロパティをつけて、Touchによって判別する地面に触れているか触れていないかという情報を格納することにしました。地面に触れてるか触れてないのかを知りたいのはキーボードを押した時なので。
 isfloorのタイプはBoolean。TouchしてないときはisfloorをFalseに、してる時はTrueにします。

この方法では、Floorをマテリアルで判別しているので、実装するとなると、表示用の地面と当たり判定用の地面とそれぞれを作る必要があります。
 BGEでは地面つくったら勝手に物理判定を適応してくれてくれるので、なんか面倒に感じますが、きっとその方が後々不都合が生じることが少ないはず。というか、表示用と当たり判定用を分けるのは普通なんじゃないかな、きっと。

こうしてみると、対象に所定の動作をさせるとき、
キーを感知→所定の動作
よりも
キーを感知→Propertyを変更→Property変更を感知→所定の動作
とした方が、周りから対象の状態を確認できるので、何かと良い気がしました。スクリプトを割り込ませる場合とか、AIを作るときとか。なんか2度手間っぽいですけど。

少し気になるのが、重力加速度小さくね?ってことです。Material->Worldから重力加速度の変更が出来ますが、最大にしてもふわふわ感が目立つ気がするんですが。
up_20090821232759.jpg


その3.弾を打つ


up_20090821224706.jpg
SpaceでCubeから小さいCubeを打ち放ちます。

Cubeの中から打ち放っちゃうと何かと問題なので、打ち出す場所にEmptyを配置して、そいつからぶっ放します。

打ち放ちにはActuator->EditObjectを使いました。linVのyの値を増やして、y方向にぶっ飛ぶようにします。横のLを押すとローカル座標になるので押しときます。EditObjectで生成するオブジェクトは別レイヤーに置いて、非表示にしとかないと生成されないみたいです。
あと、Sensorについてですが、pulse modeにすると押しっぱなしに対応しますが、1フレームずつ打つと多すぎるので、その横で何フレーム毎か指定できます。
up_20090821231932.jpg



にしても、やっぱソフトいじるだけってのは楽ですね~。ソフトいじるだけでゲームがチャチャっと作れたら3Dゲーム作りも大衆の趣味になり得ますな。ですが、やはり、本格的に作ろうと思ったらゲームを作ろうと思ったらプログラミングは欠かせないと思うので、BGEはこれで3Dゲームを作るという役割より、ゲーム作りに必要な技術、動作の流れを確認するといった、”3Dプログラミングを始める前に”的な役割にいい気がします。


しかし、このロジックつなげる方法、多くなってくると分けが分からん。
up_20090821225642.jpg
Apricot frankieのロジック


BGEシリーズ、つづかない


参考URL:
Blenderで3DCG制作日記:ゲームロジックの基本的なつなぎ方
http://bmania.blog70.fc2.com/blog-entry-615.html

GameBlender研究
http://futuregadget.sakura.ne.jp/gameblender/

Tutorials For Blender 3D Game Engine Documentation
http://www.tutorialsforblender3d.com/GameDoc/index_GameDoc.html
関連記事

コメント

コメントの投稿

非公開コメント

このブログについて
□ ブログ内容
決まった趣旨はありません。
興味を持ったこと・日常で行ったことを何でも書きます。

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フィード+解析コード