3DCG屋さんの活動記録

PROFILE ★★こんな人です

3DCGを活用した映像や没入体験コンテンツの制作をしています。テクノロジーの社会実装に興味があり。テクニカルディレクター。面白いこと新しいことにワクワクする気持ちに『素直』でいつづける。

ラベル BGE の投稿を表示しています。 すべての投稿を表示
ラベル BGE の投稿を表示しています。 すべての投稿を表示

2017年12月31日日曜日

BlenderGame に ArduinoからSerialでボタン入力! その2


pyserial  inWaiting() でデータ受信の確認してる
https://www.youtube.com/watch?v=k2prOyRfimg&t=168
受信バッファとは http://www.7key.jp/nw/tcpip/tcp/window.html

pyseialのオプオプション(Serialオブジェクトのメソッド)
https://github.com/whosaysni/pyserial-doc-ja
http://pythonjp.osdn.jp/contrib/pySerial/README_JP.txt

とりま、Arduinoのボタン押してる間だけ動く、システム作成
Arduino
Blender Python
でそれぞれ設定


ちなみに、Arduinoでpyserialの送信で改行したいとき
必要な "\n" のバックスラッシュ。
Macでは 『option + ¥』 で 入力できる!


で、なぜかボタンを離しても一定時間信号受信してる。
シリアルモニターを同時起動すると、離した時に信号切れる・・・
おそらく、改行込みで送信した文字列が、受信バッファに溜まって
フレームレートの異なる環境(ArnordoとBlender)でずれる。



=========
Arduino
=========

===================
Blender python (for BGE)
===================



================================
★スイッチ離したら重力で落下
 motionにz 0.2 を追加。
 おさるの右端タブでStatic を Rigidに変更
Bulled(物理演算)参考サイト

★GameSatrtのショートカット  キーボードのP
ショートカットまとめサイト


★Python使ってScaleの変動Logic


オブジェクトのScaleをPythonで変化させるのは
cont.owner.localScale.x
もしくは
cont.owner.localScale=[Ax,Ay,Az]

================================



えーと色々と書きましたが、まとめます。

試行錯誤の結果・・・

Arduinoのボタンを押している間だけBlenderで処理を実行
※ボタンOffが遅延することなく

ができました!!!!!!!

ArduinoとBlenderPythonの内容は以下の通り。

=========
Arduino
=========
上記のスケッチでOk

===================
Blender python (for BGE)
===================





 
Arduinoのボタンを押している間だけ、処理実行。
処理:回転&スケール3倍
重力適用しているので、処理終わると下に落ちる





2017年12月27日水曜日

Blender GameLogic基礎 〜 PythonでSensor検知とActuators実行


ようやく、GameLogicでPythonを使う方法がわかってきた
今回は入力検知と処理実行、という超基礎部分。


「キーボードを押している間だけ回転する」というものを
GameLogicだけと、Pythonを使っての比較。
その2つを、図では結果が同じ内容で試してます。


ポイントは

◾️Sensorを検知

#一旦変数にする
click = cont.sensors["keyClick"]
rot = cont.actuators["rot"]

◾️Actuatorの開始と停止

if click.positive: #clickされていたら処理
    cont.activate(rot)   #開始
else:    #clickされていなかったら処理
    cont.deactivate(rot)   #停止


以上。
「停止」しないといけなかったんかぁ。
こちらの動画から学びました、いつもありがとうござます。


ではまた

2017年12月25日月曜日

BlenderGame に ArduinoからSerialでボタン入力! その1


前回から時間が経ったので、まずは復習&確認から


⑴まず、ArduinoでボタンのONOFFチェック(Lチカ=LEDチカチカテスト)
  ・・・サンプルスケッチからテスト。ok。なんて基礎からするんだと、悲しいw
     ※参考




⑵次に、Blenderでpyserialがimportできるかチェック。
  ・・・lenderでpySerialが使える設定が完了
     



⑶次に、Blenderでpython使ったlogicの復習
   ・・・sensor Always,  controller Python,  actuator  Logic
                  実にシンプル





⑷上記の基礎の復習を終えて、ここからが今回の本題!
 Arduinoのボタン入力をSerialに送り、Blenderでpyserialから取得、Cubeを回す

まずは、Arduino、ボタン押したらserial出力するスケッチ↓


//Arduinoでボタン押すとシリアルそうしん &LEDテントウ


const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;

void setup(){
  pinMode(buttonPin,INPUT);
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}


void loop(){
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH){
    Serial.write("1");
    digitalWrite(ledPin,HIGH);
  }else{
  
    digitalWrite(ledPin,LOW);
  }
  delay(30);
  
}



次に、Blender python で serial通信を受信してfor文を実行するやつ

が、うまくいかず・・・

その前にまずは、pythonの関数を実行するテスト

Aキーを押してる間だけおサルが回転するLogic
のはずが、なぜか回転が止まらない
printはちゃんと押してる間だけ出力されてる。
理由は分からず、、、調べときます!

ちなみにPythonは作成したあと画面下パネルのTextから保存して、読み込んでます。
あと関数は()をつけないとだめ!



ちなみにこちらがpyserial with Blenderの参考



以上、続きは今度。

・Pyserialのreadを含む関数、を呼び出すPython作成










Mac でBlenderのPrint結果を表示する


Blender (game)でPythonを使い始めて、
printの結果が表示されるウインドウがないことに困っていた。

が、調べると ConsoleWindow っていうのがある
しかも window/Toggle console window から表示できる、とあるけど・・・
ないじゃん!



よくわからずに、ずっと放置してたけど
ようやく解決!

それは、、
MacのTerminalからBlenderを起動するってこと。

ショートカットキーで説明↓↓↓

  Ctrl + Space   で [Spotlight検索] 起動して


  terminal   と入力して[Terminal(ターミナル)]起動して
※画面上のタブで 移動/Applications/ユーティリティ/ ターミナル からも起動できる


  /Applications/Blender2.79/blender.app/Contents/MacOS/blender   でBlender起動!
※画面上のタブで 移動/Applications/ 内のBlender2.79 フォルダ内にBlender.appがある場合


するとBlenderが起動されます。
あとは、Blender Game のpythonにprintを記述して、GameStartすると
起動していたTerminalにprint結果が表示されます




おおお!!!!
これこれこれが欲しかった〜😄

ちなみに、printで文字列を出力するときは
print ("aaaa") のようにかっこで囲むことを注意!


・・・ただ、毎回ターミナルで記述するのは面倒。。
ということで上記の内容をエイリアス(ショートカット?)で時短!
内容は.dashrcを編集するってこと。

ちょっと複雑ですがとりあえず通しで書きます。
以下、順番にTerminalで実行してください。

  vim ~/.dashrc   で.dashrcを編集!(or作成)

そのまま記述してReturnキー押して実行

Vimで.bashrcする画面になります。
使い方が特殊です。詳細は調べてみてください


まず、i でインサートモードに。


上記のように記述。
マウスは使えません。
←↑→↓キーで移動、コピペもできます!
終わったら、ESCキーでインサートモード終了。


最後に、 :wq で.bashrcを保存してVim終了。



  source .dashrc   で.dashrcを登録(?)



  blender27   でBlenderを起動!



以上。
次からはblender27と打つだけで、consoleも同時に起動されます。
(というかTerminalに結果がでるだけだけど。。)


これでようやくトライアンドエラーが捗る。

てか、Vim初めて知った!
すごい便利〜、でもCUIじゃないとできないのが不便><
かといってGUIのツールを入れるのもなんだかな。
あとは、macがファイル名先頭に . がついていると表示されない、っていうのも!


参考サイト1:ターミナルで色々する
参考サイト2:Vimについて説明


2017年11月18日土曜日

BGE logicのお勉強 〜PythonをActuatorのスイッチに


PythonをControllerにして、pythonからActuatorを実行。

シンプルそのもの!




これがわかるまでに時間かかったー><;
英語解説を調べるのが下手か、
日本語解説が少なすぎるのか。。

とにかく、これで
Pyserialで外部からシリアル通信して、
それをActuatorに接続できる!!
Pyserialでシリアル受信して、python内でオブジェクトを制御していたけど、それは嫌で何が何でもActuatorに接続したかったんですよね〜😂




というわけで、最終的に参考になったのはこちら



==============-
おまけ


▪️キーボードを押すたびに加速するLogic
http://pyoyoyo.blog.fc2.com/blog-entry-31.html

▪️python Controller
https://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Game_Engine/Logic/Controllers/Python

Dを押すと、テキストの変更がリアルタイムに反映される

2017年11月4日土曜日

ArduinoとBlenderGameをSerialでリアルタイム通信 その3[完結]


MacのPythonを3にしてpyserialを追加する!


というわけで、Python3にする方法はこちら参考!

まず、HomeBrewをインストール
ターミナルで以下を実行

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

以下の表示で完了。ちょっと時間かかった (5分?)

==> Installation successful!

==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics.html

==> Next steps:
- Run `brew help` to get started
- Further documentation: 

    https://docs.brew.sh



次にPython3
ターミナルで以下を実行

brew install python3

と、ここでDLは完了したけど
インストールで問題発生&エラーで終了。(5分?)

どうやらXcodeのコマンドラインツールのインストールが必要なようでした。
つまり、ターミナルで以下をじっこう

xcode-select --install

以下の表示で完了。(1分?)

xcode-select: note: install requested for command line developer tools


そして、再度 python3のインストールコマンド実行。
brew install python3

以下の表示で完了。(4分)


Pip, setuptools, and wheel have been installed. To update them
  pip3 install --upgrade pip setuptools wheel

You can install Python packages with
  pip3 install <package>

They will install into the site-package directory
  /usr/local/lib/python3.6/site-packages

See: https://docs.brew.sh/Homebrew-and-Python.html
==> Summary
🍺  /usr/local/Cellar/python3/3.6.3: 7,973 files, 111.1MB, built in 3 minutes 57 seconds


はい!python3インストール完了!!




あとは、前回にやったpip3からのpyserialインストールをやるだけ。
参考こちら。

以下、備忘録・・・

brew link --overwrite python3

ターミナルでpython3実行するときは python3

ここで、pythonのモジュールを確認!★★★★


python3 -c "help('modules')"

これでpipや pyserialがあればオK

私の場合、pipはあったがpyserialはなかった。。なぜ??
というわけで以下を実行★★★★


python3 -m pip install -U pyserial


あ、入った!
Blenderで、上記コマンド実行後に表示されたPathをsysで読み込んだらimport serial通った!

・・・が結局うまくいかず!!


というわけで、力技にします。。。
フォルダのファイルをコピペで
MacPythonのpyserial →  BlenderPythonに丸々コピー

でMacのフォルダ構造がいまいちわからんかったけど、ようやく判明!

以下が、MacのPython保存場所
ここの奥底のsite-packageのpyserial(serialフォルダ)を丸々コピー


そして、BlenderのPython保存場所
ここの奥底のsite-packageにpyserial(serialフォルダ)を丸々ペースト

以上!

そして Blenderでimport serial すると・・・・

問題なく通った!!!

あとはその1のプロジェクトファイるをそのまま実行したら成功!
長かった・・・眠い。。。

ちなみに、これでもエラーでBlenderが泊まるときは以下の点を確認

・Arduinoが接続されているか
・Arduinoのポート名が正しいか
・Arduinoのシリアルがbusyではないか(シリアルモニターは閉じる!)

など

あー疲れた、けどこれでようやくいろいr試せる^^

ArduinoとBlenderGameをSerialでリアルタイム通信 その2


前回のその1
pyserialのインストール不具合で失敗しました。。

その後もなかなかうまくいかなかったけど、
ようやくうまく言ったので、まとめマス!!!

タイトルは
ArduinoとBlenderGameをSerial通信、ですが

厳密には

Blenderでpyserialを使えるようにする @Mac、です

そもそも、つまづいた部分を、順を追って確認。
1)  Pythonでシリアル通信するには、pyserilのアドオン追加。
2)  Blenderにpyserial追加する方法がわからないので、MacのPythonにpyserial追加。
  ※方法の詳細はあとで説明
3)  BlenderのPythonで、Macに入れたpyserialのpathを追加 ←うまくいかない!><;


というわけで、色々試して次の通りしたらうまく言った。

上記の(1)から順に説明します。
Macのターミナルで以下を実行



easy_install pip

sudo pip3 install pyserial


これでMacのPythonにpyserialが追加されました。
さてどこに保存されているか、そのPathは?



上記コマンドを実行した後に表示されたpath!
…と思っていたら違った(;;)

本当は


python

import serial

serial

<module 'serial' from '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/__init__.pyc'>


で実行して、最後の青塗りの2行に注目!!
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

この部分が有効なpyseiralのPath!
これに気づくのに時間かかった〜。。。


というわけで、BlenderのPython consoleでpyserialのpath追加!

>>>imoprt sys
>>>sys.path.append("/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages")




はい!
無事追加されました!


というわけで、Arduinoとのシリアル通信してみた。

・・・が、うまくいかない!?




やっぱり、そうでしたか・・・

[Python version]
Mac     2.7
Blender 3.5

import sys
sys.version

で確認できます。

というわけで・・・・・

MacのPythonを3にする方法は次回!





2017年11月2日木曜日

ArduinoとBlenderGameをSerialでリアルタイム通信 その1


iPhone -> OSC(iPhoneアプリ) ->   Blender(PC) の通信は成功。


iPhoneではなく
物理インターフェースと Blenderを接続するのにSerial
で試す。

ここで、以前やって見た
Arduino ->  Serial -> Blender の記事はこちら(2016年4月)
ちなみに、前回はArduinoの入力インターフェースでBlender制御。
今回やってみるのは逆の流れで、
Blender内の変化をArduinoにつなげたLEDに反映してみる。


ちなみに、OSCの方が他の機器との汎用性ありそうなので、
OSC on Arduino をやりたいが、イーサネットシールドが必要…持ってない。。

どうせPCと合わせてArduino使うんだからPCのネットワーク機能使えばいいじゃん!
つまりArduinoの信号をProcessingでOSCに変換して実現したい…この辺かな


Arduino -> OSC (Processing) ->  Blender 
はまた今度!

今回は

Blender ->  Serial ->  Arduino LED

の確認。
ちなみに以前の記事で

Arduino ->  Serial ->  Blender

も実現してるのでどうぞ。
特にBlender内のPythonで pyserial をimportするところでつまづいたので
参考にすると良いかもです。

なお今回は、基本的にこちらを参照しました!

細かいトラブルシューティング


◆MacでシリアルポートがCOMじゃない!
→/dev/cu.usbmodem1411
 Arduinoのツールか、macのターミナルから確認できる
 
◆BlenderGameのロジックでpythonを使用する
その場で作るpython か pythonファイルを参照

◆Blender 2.79 はPython3.5!
→MacにPython3.5インストール


.
.
.

BlenderのPythonで serial が読み込まれない
続きはまた





続きはその2で!
BlenderのPythonにpyserialを追加する方法もアルよ。




2017年6月10日土曜日

EeVee‼︎‼︎‼︎‼︎‼︎ 待ってた!リアルタイム高品質レンダラ


これです、これ!
待ってましたよ、高品質なリアルタイムレンダラー
これさえあれば、DCCツールの強みであるモデリング、セットアップ、アニメーションなどを活かしつつ、BGEでインタラクティブなシステムにシームレスに移行できて、かつ高品質なコンテンツ制作、のパイプラインが完結するじゃないですか!

待ってました!(ってまだ正式公開じゃないけど。こちらからDL

EeVee(イーヴィー)




…3ヶ月前?から出てたけど、今日知ったのは内緒。。


とにかく、cyclesは高品質だけどBGEの完全なリアルタイムに対応してるかは…正直微妙だと感じてました。
が、このEeVeeは違うと思われます。
まだ英語の説明を熟読してないけど、そんな感じがするいろんな人のコメント!
興奮冷めやらない最速レビューをどーぞ!


レビューサイトはこちら


blender  でいろいろやってみたいぞ。
さて何からしようかな。


●やってみたいことリスト
・eeveeでフォトリアルなリアルタイム
・EXRのマルチパスコンポ→BGEにもある?
・カメラトラッキングと実写合成コンポ
・リジットボディ、水、布、FX!


BGEでAR!


そろそろ確立したいこと
・キャラクターセットアップ
・kinect連動 with NI MATE


※Blenderの日本語解説サイト !これで勉強しよう
http://blender-cg.net/

2017年4月14日金曜日

BGE いろいろやりたい参考サイトまとめ


気になったBlender Game EngineのTipsやTutorialのサイトまとめです。
やりたい機能ばかり。。。



◆チェーンにボールが当たる、シミュレーション





◆煙もくもく




◆体力ゲージなどのHUD





◆惑星箱庭とかに、球体重力





◆ソフトボディ







2017年4月7日金曜日

Motioncapture with Kinect for BGE ~下調べ編


【Realtime MotionCapture with Kinect for BlendeGameEngine]】第1弾 下調べ編 

はい!

KinectでBlender




◆BlenderでKinectを認識する設定(NI MATE)
https://youtu.be/pgMBz-IXWkw

◆モーションキャプチャを記録する方法
最新版 https://youtu.be/Hx0q_6immxg

データの流れとしては・・
Kinect からのデータを NI MATEで一旦処理。 ←NI MATE本体
それをBlenderにリアルタイムに流す。 ←NI MATE addon for Blender

つまり、NIMATE本体のインストールと
Blenderのプラグインのインストール必要

2017年3月30日木曜日

BGEでRealtimeのPBR  〜お勉強編


仕事でも未だにスペキュラマップとか使ってるので、そろそろPBR始めなきゃと思います。
どうせやるならリアルタイムで、しかもゲームエンジンでやりたい!!


さて、BGEでは「GLSL」に設定すればできるみたいですね。
というか、PBRはマップ(テクスチャファイル)がちゃんと用意されていればできる!
(※PBRとはなんぞ?今までのマテリアルとの違い ←とてもわかりやすい丁寧な説明!!)

BGEでPBRのマテリアル設定チュートリアル

こりゃすごい、透明度とか屈折とかないとかなり早いな。
さて、PBRに使うテクスチャーの種類について
参考になる画像がたくさんあるサイトをいくつか紹介。

◼︎モンスターボール
Color, Metalness, Normal(tangent), AO, Roughness 〜4つ

◼︎単純マテリアル
Albedo、Metalnes、Roughness 〜3つ

◼︎リアルカメラ
Albedo、Microsurface(Roughness?) 細かい傷、Reflectivity、Fresnel、AmbientOcclusion、Cavity(Curvature) エッジの鋭さ 〜7つ ※下図は4つ



と、まあしようテクスチャについては使い方や呼び方いろいろあるみたいですね。
ちなみに冒頭に紹介したBlenderGameEngineのPBRでは、次の6つを使用

Albedo ……反射能、どれだけ光を反射するか (≠Diffuse…拡散反射、色)
Normal ……凹凸
AmbientOcculusion ……隙間 →立体感増す
Metalness(Reflectivity、Metalic) ……反射率、鏡
Roughness(Glossiness、Shiness) ……ざらつき
Cavity(Curvature) ……曲率マップ、凹凸エッジ

おそらく私が制作しようとする体験型コンテンツでは、
リアルタイム、そこそこフォトリアル、ただ超細部が必要ではないと思うので

①Albedo ④Metalness ⑤Roughness
3つだけでも良さそう



キャラクターとか形状がやや複雑なものになったら、②③の形状補完は必要かも。
さらにハードサーフェス系で質感をリッチにしたい時は、⑥で角の擦れ具合UPに。

さて、時間作ってBGEで実際にマテリアル触ってみて試してみよう。

今回の内容というわけではないが、Blenderの情報まとめてある良いサイトありました。

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はインターフェースが見やすいなぁ。
何より触るのが楽しい!無料もサイコーですね〜








2017年3月24日金曜日

初めてのBGE その1


やりたいことはいっぱいあるけど、とにかくBlenderGameEngineなるものを触ってみないと何も始まらない。
そもそも僕は、Blenderでのモデリングすらまともにできない。
というか、Blenderはサンプルファイル開くだけしかできない!笑

というわけで、Blenderの使い方、を
『BGEで超シンプルなゲームを作ってみる』チュートリアルを一通りやって学ぶことにした。
いつものように、親切な方が無料でアップしてくれてるので見ながら進めていきます。


キーボード操作で「箱」を移動、コインを集めるゲーム
※BGE基本操作、物理法則(重力)、音(SE)、ゲームの完結までできる入門者最適チュートリアル!!!
ステップ1
BGEで、キーボード押したら箱が動くアクション作成
(ゲームのStart、3大項目 [Sensor, Controller, Actuator] )
ステップ2
物理法則(重力)の適用とジャンプアクション。
衝突判定。
デバッグプロパティの表示。
ステップ3
オブジェクトの影、ライティング。
ポインントカウンターのテキストデザイン。
コインをすべて取ったら次のステージに切り替わる。
ステップ4 
コインとった時の効果音。
メニュー画面と、メニューボタン作成。
Finishシーンとボタンの作成。
ステップ5 
障害物オブジェクトの作成。
トリガースイッチオブジェクトと、トリガーアクション。


今日は『その1』ということで、できるとこまでやってみた。

と、その前にBlender 2.78をダウンロードして、
解凍したフォルダをMacbookProのアプリケーションフォルダに移動(=インストール)。
この時間、ものの10分!サイズも460MBで重すぎないしBlenderって本当に手軽に始められて好き😄

< ステップ1 >
それではチュートリアルを始めていきます。
まずはBGEの操作方法。
Blender開いて、上の「BlenderGameEngine」を選択。
これだけでゲームエンジンモード!感動しませんか!?😭簡単すぎる
そして、操作画面は「GameLogic」にするだけ。
まだまだ簡単!ノード接続の基本的な操作なのでまだ大丈夫。
キーボードのWを押すとY軸方向に進む、という超基礎。わかりやすい簡単。
同様な作業で、上下左右に移動する4つのアクション作成。
ちなみに、右下の「Start」でゲームが始まる!うおー簡単すぎる!!
ステップ1はここまで。


< ステップ2 >
物理法則の選択。Caracterにしとけばリジッドボディに。
CollisionBounceはつまりBoundingBoxでの衝突判定?これは今回BOXで。
無限に落ちないように床オブジェクトを作成。
Actuator新規作成でMotion、Jumpにチェック。
キーボードのSpaceに↑で作ったJumpを適用。うわ!めちゃ簡単なにこれ??



とりあえず、ステップ2の途中ですが、今日はここまで。。
これだけもBlenderとBGEの可能性が見えました!
あと、やっぱり今の僕にぴったりのツールと再認識。
モデリングからできて、ゲームエンジンにシームレスにつながる、作業できるストレスフリーは凄すぎる!!
配布するとした時のGPLライセンス関係がネックですが・・・しばらく考えずに作品作ります!

すごー