3DCG屋さんの活動記録

PROFILE ★★こんな人です

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

2017年4月17日月曜日

Motioncapture with Kinect for BGE 〜キャラモデル編


【Realtime MotionCapture with Kinect for BlendeGameEngine】第3弾 キャラモデル編


前回、Kinectからモーションキャプチャの取得を実現して
自動で各ジョイントにオブジェクトが作成される方法を試しました。

今回は、DLしたヒト型キャラクターに
モーションキャプチャデータを送信します。
某赤い帽子の男性モデルを使用させていただきました

① NI MATE のSkelton名に合わせて、Blender でEmpty(ロケータ)作成。
② Kinect接続、NI MATE起動、OSCの有効化。
③ BlenderのNI MATEのAdd-onsからEmptyでStart。Emptyがついてくるのを確認。
https://youtu.be/8aFbTy5nDeo


④ モデルの取り込み(DL)ジョイント作成。
ここで、ジョイント作成&スキニング。
参考チュートリアル(骨入門)
参考チュートリアル2(骨超入門)⬅︎日本語でオススメ
 ・ Shift+A でArmature/Single Bone 骨作成。
 ・ 骨の位置修正。tab押してBone修正モードにして、先端を移動(長さ調整)
 ・ NUM KEY 1 で正面非パース画面。
 ・ 骨選択して、Wキー、subdivide ➡︎方向一致する子骨追加
 ・ 骨先端選択で、Eキー ➡︎インタラクティブな小骨追加
もしくは、ヒト型ジョイントセットの作成
 ・ UserPreference/ Add-ons/Rigify を有効に。
 ・ Shift+a / Armature / Human(Meta-rig) でジョイントセット作成。

EmplyにBoneをコンストレイン。

ジョイントをEmptyにコンストレイン。Startでジョイントが追随するのを確認
⑤ Mesh作成。スキニンング。StartでMeshが反映するのを確認

以上で、キャラクターがKinectでリアルタイムに動くのを確認。


※ Blender 小ネタメモ
◆Shift+A オブジェクト作成
◆骨の操作でTab押すと編集モード
◆上記状態で E :骨追加、 W:方向の一致する骨追加
◆応用技 E:骨追加したあと続けてX,Y,Z押すとその方向にのみ移動
◆プレビュー画面で N  Mayaのアトリビュートエディタ的画面(アイテム?)
◆3キーで横カメラ、1キーで正面カメラ、5キーでパースの有無
Shift+タッチパッド(ダブル)ドラッグでパン

◆Shift+R 直前の処理繰り返し
◆スキニングは簡単 メッシュ+骨選択 Ctrl+P からAutomaticWeight
◆ArmatureのPreservedはON。体積の維持でスキニングが綺麗になる
◆プレビュー画面でA  全選択
◆Alt + R リセット。ポーズのリセット





2017年4月14日金曜日

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


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



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





◆煙もくもく




◆体力ゲージなどのHUD





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





◆ソフトボディ







Motioncapture with Kinect for BGE ~導入編


【Realtime MotionCapture with Kinect for BlendeGameEngine】第2弾 導入編

まずは、BGEじゃなくて

単純に
BlenderでKinectのモーションキャプチャをリアルタイムに反映させる。

①まず、KinectをMacbookで認識、ジョイント確認まで。

NI MATEインストールして、起動。



そして、Kinect接続。


右上のアイコンから、Kinect認識されているのを確認。



















『Show output』でKinectの起動状況を表示。




簡単にジョイントまで認識してくれます!




ちなみに、表示タイプは7種類用意されています。
View上で右クリックするとプルダウンメニューが表示されます。





②ジョイントデータを外部に送る設定

まず右上から、Controle Interfaceで画面表示。




Skeleton tracking の OSCを有効にする。



この画面でもジョイント認識を確認します。





③そして、BlenderでKinectからのデータを認識させる。

NI MATEプラグイン for Blender をダウンロード
Blenderを起動。
File/UserPreferences(Ctrl+Alt+U)の起動。
Add-ons/InstallFromFile でダウンロードしたAddonファイルを指定。
※animation_delicode_ni_mate_tools.py(2017.4月現在のファイル名)

すると左にNI Mateのタブが出現!
図形タイプを球にして『 Start 』するとモーションキャプチャデータが反映され
リアルタイムにヒトが動く!




以上。
一通りやってみたらすごく簡単。
これは便利。
足を地面から上げたりする動作も、結構な精度で読み取ってくれる!


とりあえず、モーションキャプチャデータの保存や、
オリジナルキャラクターへのジョイント割り当てなど、
引き続き検証していきます。


ちなみに、NI MATE無料版の機能制限は以下の通り。

・Kinect同時起動は1台まで
・モーションキャプチャを記録できない
・OSC inputはできない

まぁ現状は特に問題なし!
モーションキャプチャの記録は、Blender側でやる(?)みたいだし。
大きなシステムにしようとしたら有料版買うかも。高くても年間2万とかみたいだし。

あとそのうちKinect v2欲しいな。




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のプラグインのインストール必要