先にOctane2.0で3D(立体)Poser静止画作成を書いたが、今回は3D movie作成について述べる。最後の出力は、裸眼で立体視が可能なFujifilm Finepix real 3Dディスプレイを想定している。
投稿者: admin
Octane Render2.0で3D CG
Octane Render2.0になってPoser の出力を3Dの独立の画面として出力することができるようになった。こうして出力される2枚の画像をステレオフォトメーカーなどでステレオ化すれば、3Dテレビなどで3D画像を映すことが可能になる。
ここでは、3D画像を裸眼で手軽に見られるディスプレイとしてFujifilm Finepix Real3D Displayを利用することとし、さらにFujifilm Finepix Real3D W3Sの立体カメラで写した画像との重ね合わせを行うためのパラメータチューニングをしてみた。
まず基本は、本Displayに表示させるときにはOctane RenderをOff Axisモードにする。そして視差間隔を0.06(デフォルト0.02)程度にする。間隔を広げるとRender出力の立体感が増すがあまり広げると目が疲れる。
スペックによるとW3Sは標準で撮影して35mmカメラ相当からズームを行うと105mm相当の範囲でFocalが変化するようだ。35mmの標準で撮影した写真を背景にすると、Poser側もほぼ35mmのスペックでよさそうに見える。しかしよりリアリティを出すには、若干Poserで設定する距離を長めに、そしてFocalを大きめにしたほうがよさそうだ。10数回カット&トライを行ってみたが、Poserにおいてカメラから本当なら1.8mを想定しているときには、約倍の3.6mぐらいにオブジェクトとの距離を置き、代わりにfocalを35mmから60mm程度に広げ、オブジェクトを拡大させたほうが、よりリアルに映った。
今後さらにチューニングを進めたい。
Carraraでテキスト作成
Carraraで簡単にテキストを立体的に作成ができる。これをexportする場合、
1) Objでエキスポートすると、フォントの各箇所が別々の要素になる。色をまとめて変えようとすると都合が悪い。その代わり、表の字の部分のみ色を変えることもできる
2) 3dsでエキスポートするとひとまとめになる。このときは全体の色具合を変えることが割りと簡単にできる
Carrara->poser
Carraraで作ったオブジェクトをPoserに読み込むとき、これまでは.objで貼っていたが、どうもマテリアルがうまく移行できなかった。3dsフォーマットでエキスポート/インポートしたらうまくテクスチャも移行できた。
Octane renderで光沢を強調
衣服などで光沢を強調したい場合には、roughnessの値を0に近く持ってゆく。
たとえばこれでOpacityを下げてゆくと、丁度ぴかぴか光るビニールのようになる
引き続きArduino
ロボットをコントロールしようとしている。気を付けるべきことはUARTがしばしば失敗する。シリアルポートのFIFOバッファをDISABLEにする必要がありそう。それとプログラムによってはアップロードが巧く動かなさそう+3つめにArduino用の赤外線といって売られているものとボードの配線が同一でなかったことがわかった。これはかなり腰をいれてやらないと行けなさそうだ
Arduino でIR control
IRリモコンを入手してArduinoでコントロールしようとしている。このサイトをコンパイルした。42行目のdelayの値は調整するとよいみたい(今130->260にして
いる)。
KINECT->BVH->Poserへのpath(20140601)
KinectでのモーションキャプチャからBVHを吐かせて、最終的にposerに読み込ませて自分の好きなアバターで動かそうと思っていた。
参考にしたのは、このサイトだった。これで
うまくいきそうに思えたが、いかんせん2011年10月の記事でもうかなり古いし、加えてOpenNIもサイトをこの4月で閉じた。とりあえず今入手可能なドライバ/アプリケーションで表題に述べたことができるかどうか、試してみた。OSはWindows 7 64bit professional.
1.前準備
-
これはリンクにはったサイトとまったく同様、Microsoft Visual c++ 2010 Express、最新のDirectX
それからMicrosoft XNA Framework Redistributable 4.0とMicrosoft .NET Framework 4をインストールした。
PC環境をテストモードにするという項目もあったので、一応やったが、これが原因でうまくいったのかどうかは定かではない
2.Microsoft Kinect SDK & OpenNI2
昔のサイトで述べられたOpenNI for Win32bit 1.3.2.1 & Sensor-Win -5.0.3.3の組み合わせでうまく動作しなかったので、
ここでは、OpenNI-Windows-x64-2.2.0.33をインストール。そしてMicrosoftの開発環境を利用すべく、KinectSDK-v1.8-Setupならびに
KinectDeveloperToolkit-v1.8.0-Setupをインストールした。これでKinectを接続すると、デバイスマネージャには、PrimeSenseの配下に、Kinect for Windows Audio Array Control, Kinect for Windows Camera そして Kinect for Windows Security Controlが現れるようになった。
ここまでうまく行くと、Program Files/OpenNI2/Samples/Bin/simpleViewer.exeが動いてぼんやり自分の姿が映る。
3.NiTE2のインストール
NiTEも64bitベースのNiTE-Windows-x64-2.2をダウンロードしてインストール。ここまでできると、Program Files/PrimeSense/NiTE2/Samples/Bin/UserViewer.exeをたたくと、キャリブレーションの後、自分の姿がトレースされることに気づく。ここで注意すべきはKinectが認識するためには、センサから2,3m離れることが大事だ。そうでないといつまでたってもキャリブレーションから進まない。
4.LiveAnimationのインストール
bvhを吐かせるために、LiveAnimationをインストールする。このサイトからダウンロード。数々のバージョンがあり、以前の記述だと
46以前のバージョンでないとPoserが正しく読み込まないとあったが、Poser2014 Proに関しては最新のLiveAnimationでも問題なかった(今回は108をインストールした)。
5.キャプチャ&BVH出力
LiveAnimationを立ち上げたのち、アバターを一つ選んで出現させる。このあと左側の”キネクト”を選びその中からMotionCaptureを選ぶ。自分の姿も横に出てくるので、然るべくKinectにモーションを認識させる。そうするとアバターが同期して動き始めるのでゆっくり体を動かしてモーションデータをサンプルする。画面下にFPS(Frames per Second)の値があり、デフォルトは64となっているが30ぐらいで十分だろう。より少ないとPoserでうまく動かないようだ。取得できたらエクスポート/BVHでファイルに出力する。つま先をつけるなどのオプションは選択しない(poserで読めなくなる)
6.Poserからの読み込み
Poserを立ち上げ、Andy君を表示させ、これに先ほど出力したBVHを読み込ませる。うまくゆけばAndy君は先ほどの自分の動きと似通った動作をするはずだ。
以上です。Good Luck.
ubuntu 3.11 server + PukiWiki1.4.7ではまった
素直に動くものと思っていたら、画面が真っ白なままで全然動かない、
PHP Fatal error: Cannot redeclare hex2bin() in /(some where)/pukiwiki/lib/func.php on line 317
のメッセージ見て気が付いたが、ここに書かれている通り、hex2bin()が組み込み関数になってlib/func.phpの実装とぶつかっていた。リンクの指示の通り修正して動作を始めた。
Loopback
Youtubeなどの教材使って自分の英語の発音などを確かめたいときなど、自分のマイクの声がヘッドフォンにフィードバックして欲しいと思うことがあった。何のことはない。コントロールパネルでサウンドを使い、録音->マイク->聴くをクリックして、このデバイスを聴くを選ぶと、自分の声が聞こえてきた。これでOKだ
