3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2017年3月25日土曜日

初めてのBGE その2


前回の続き・・・
チュートリアルのステップ2途中から!

前回までで、CUBEの「移動」「ジャンプ」のアクションを追加して
床の上を動くまで。

さて、続きをします。



◼︎まず『コイン』を作成。
 別のビューを選択して、シリンダー作成。
 回転とスケール調整。
 マテリアルを変更で黄色に。
 名前変更でとりあえず完成!


次に、メインビューに戻って、コインの配置場所を設定。

Ctrl + A で Empty/PlaneAxis でロケータ作成&移動。
ここでLogic作成。
Always -> And -> EditObject(objectでCoin指定)

ここで、GameStartすると、ロケータ位置にコインが表示されるのを確認!
ロケータを複製していっぱい配置される。



ここからは、
◼︎「コインに当たるとコインが消える」のアクション作成
CoinのLogicで「当たったら消える」動作を追加。

[Coin]
Logic: Collision(Player) -> Add -> EditObject(EndObject)

[Cube1]
Property: Player と名前を追加

ここでポイント!ゲームを作るにあたっての新しい事実!!
3Dオブジェクト名と、ゲーム内での処理に用いる名前は別!?

Collisionで衝突判定するときは、
Properyでゲーム用の名前を作成する!

以上で、GameStartすると、箱動かしてコインに当たると消えるようになる。

・・・・がなぜか、消えない(エラーがどこかわからない)

というわけで、Blenderに最初から入っているモン吉モデルで作り直したらいけた。
というわけで、今後はCoinをMonkeyに変えて進めます!(すみません、エラー解決する時間なくて。。)



えーと、、箱動かしてモン吉が消えるとこまで出来たので、
次は
◼︎モン吉をとるとポイントゲット!!を表示する
 ➡︎ポイントカウンター設置!

ポイントカウンター用のゲームプロパティを作成。
今回は、擬似プレーヤーの箱に作成します。

 [cube1] 
   Property : Score と名前追加
 Logic : Collision(Monkey) ->   Add -> Property(Add,100)


とここで、上で指定したCollisionのMonkeyが今のままでは反応しません。。
以下を追加します。

 [Monkey]
   Property :  Monkey  と名前追加。

最後に、実行画面でポイントカウンターを表示するために
Scoreと作成たプロパティで 「インフォメーション」ボタンをONにして表示指示。
さらに、BGEのDisplay設定でDebugPropertyを ON にして画面表示を有効にする。

※3Dオブジェクト「Monkey」に、ゲーム用のプロパティ「Monkey」を追加(左下パネル)
 Game実行時に文字表示を有効にするDebugPropertiesのON設定(右上パネル)


とここで、「あれ?」と思いませんか。
ロケータにオブジェクトを呼び出すときはProperty追加してなかったぞ?
詳細は分かりませんが、今回は

『Collision(衝突判定)のときはProperty名で指定』
Propertyなければ追加作成する。

というということを学びました。



ステップ2の最後に、
◼︎モン吉が取られる間、回転している

[Monkey]
Logic: Always -> Add -> Motion(rotateZ -2.0)

これで、Z軸に毎フレーム-2°回転します。



以上でステップ2は終了です。
いや〜なかなか初心者には時間がかかりましたが、
一気にゲームっぽくなってきましたね、テンション上がります。


さておさらい。
ステップ2での作業は

◼︎物理法則を適用して箱がジャンプできるように …前回のブログ
◼︎別のビューアでコイン作成
◼︎コイン(モン吉)に箱が当たるとコインが消える
◼︎コイン(モン吉)をとるとポイントゲット&ポイントカウンター表示
◼︎コイン(モン吉)を待機中に回転させ続ける

そして、キーワードは

● 衝突判定
● ゲームプロパティの追加
● デバッグプロパティ表示

衝突判定がこんなに簡単だとは!涙
デバッグプロパティ(テキスト)表示も簡単!

Sensorのキーボードを外部インターフェースにすれば、Arduinoからシリアル通信できそう。
Actuatorsに外部動画ファイルの再生を当てたり、モーション付きの3Dモデルとか、Alembic再生させるのをつなげれば、リッチなコンテンツできそう。


にしてもBlenderはインターフェースが見やすいなぁ。
何より触るのが楽しい!無料もサイコーですね〜








0 コメント:

コメントを投稿