Up:[[Tutorial]] Previous:[[実世界のロボットの取り込み]] ---- #contents *123D Catchを用いて実世界のオブジェクトの3Dモデルを得る [#mb90b98b] **123D Catchのインストール [#y44ce740] [[123D Catch>http://www.123dapp.com/catch]]を用いて実世界のオブジェクトの3Dモデルを得ます。 -[[こちらのページ>http://www.123dapp.com/catch#download]]から「PC Download」をクリックして123D Catchをパソコンにインストールします。 -123D Catchは、カメラで様々な方向から撮像した画像を用いてオブジェクト3Dモデルを構成します。 - パソコンに接続したカメラも利用できますが、iPhoneを利用する事も可能です。 - iPhoneを利用する場合は、「Download on the App Store」をクリックして123D Catchのアプリケーションをインストールします。 **123D Catchによるオブジェクトの撮像 [#ecabb868] ここでは、人の腕と手の部分をiPhoneのアプリとカメラを使って撮像して、3Dモデルを得る場合について説明していきます。 - まず、対象を全方向から撮像できる空間を下図のように確保します。 このとき、対象の下に3Dモデルを構成するための基準となるものを敷くと欠損のない3Dモデルを得やすくなります。 ここでは、テクスチャのあるタオルを敷いています。 &ref(WS100.jpg); - 次に、対象の周囲360度から数十枚程度の写真を撮ります。 - 最後に、3Dモデルを構成するため、サーバーに写真を送信します。 **123D Catchによる3Dモデルの構築とエクスポート [#h816556e] ここからは、パソコンにインストールした123D Catchによる作業です。 - まず、サーバーから構成された3Dモデルをロードします。以下のように周囲の環境を含む3Dモデルが得られます。 &ref(WS101.jpg); - 次に、ツールを使って以下のように対象以外の領域を取り除いていきます。 &ref(WS102.jpg); - 以下のように対象以外の領域を取り除いたら、「File」→「Export Capture As」→「OBJ(obj)」で出力します。 &ref(WS103.jpg); - この場合、3次元形状の「arm.obj」、それに貼り付ける画像の「arm_tex_0.jpg」、「arm_tex_1.jpg」、「arm_tex_2.jpg」、対応関係を記述したファイル「arm_tex.mtl」が出力されました。このとき、貼り付ける画像の枚数は、撮像環境によって異なります。 *テクスチャ有りの.objファイルからSIGVerse用の.x3dファイルを作成する [#m96295ae] blender(2.73)を使って,SIGViewerに表示するアバターの表面にテクスチャを貼る方法を説明します. 前提などは次の通り. -[[123D Catch>http://www.123dapp.com/catch]]で.objが作成されていること --例えば3次元形状の「arm.obj」と,それに貼り付ける画像の「arm_tex_0.jpg」,「arm_tex_1.jpg」,「arm_tex_2.jpg」などが手元にあること -[[blender>http://blender.jp/modules/docs/index.php?content_id=2]]がインストールされていること(日本語化してあるとなお良い) -blenderの基本的な操作方法(オブジェクトの表示倍率変更や視点の移動など)は把握していること -できあがる.x3dファイルは関節を無視したもの **.objファイルのインポート [#ad562e25] blenderを起動して,ファイル->インポート->Wavefront .obj)をクリック. &ref(WS000000.JPG); ↓ &ref(WS001.JPG); 読み込む.objファイルを指定してインポートすると次のような画面になります. &ref(WS002.JPG); この腕にテクスチャを貼っていきます. **ポリゴン数の削減 [#p231b24a] -お使いのPCの描画性能が高い場合,この作業は不要かもしれません. -一般的に123D Catchが生成する.objファイルは非常に高精細であるため,SIGViewerの描画に時間がかかりすぎるというデメリットがあります. -そこで,まずはポリゴン数を削減して描画への負担を軽くします. 読み込んだオブジェクト上で右クリックして, 画面右側にある &ref(WS003.JPG); を &ref(WS004.JPG); にします. スパナのマーク(モディファイアー)をクリックして「ポリゴン数削減」をクリックします. &ref(WS005.JPG); 比率: 1.0000 となっているところをクリックすると数値を入力できるので,削減後のポリゴン数の比率を入力します. &ref(WS006.JPG); 今回の例では比率を0.2000にします. &ref(WS007.JPG); 「面数」のところに削減後の面数が表示されます. オブジェクトも,表面の凹凸が粗くなったことがわかると思います. 「適用」ボタンをクリックします. **テクスチャの貼り付け(準備) [#aff61e3b] オブジェクトの対話モードを「オブジェクトモード」から「編集モード」にします.&br; オブジェクトの全点が選択され,オレンジ色の辺が描画されます. &ref(WS008.JPG); blender画面の右上の方にある画面の分割ボタン(?) &ref(WS010.JPG); をドラッグして2画面にします. &ref(WS011.JPG); 右画面の「エディタータイプ」(下の方にあります)を「UV/画像エディター」にします. &ref(WS012.JPG); すると,画面が下のようになります. &ref(WS013.JPG); 下部の「画像」->「画像を開く」をクリックして,テクスチャ用の画像を読み込みます.&br; 画像サイズが大きいと,右画面が画像のどアップになってしまって見づらいので,マウスのホイールをぐりぐりしてちょうどいい表示倍率にしてください. &ref(WS014.JPG); 今回の例では,3枚の画像「arm_tex_0.jpg」,「arm_tex_1.jpg」,「arm_tex_2.jpg」を読み込みました.&br; 表示される画像は,画面の下の方で変更できます. &ref(WS015.JPG); 画面の下部にある「UVと編集モードでのメッシュの選択を同期」をクリックします. &ref(WS016.JPG); その後,先ほどクリックした箇所の右隣の三つのボタンのうち,一番右側にある「面選択」ボタンをクリックします. &ref(WS017.JPG); 画面の中央付近にマウスを移動させたのち,キーボードの「a」を押下して全点選択を解除します. &ref(WS018.JPG); 左画面の下部から「3Dビュー上におけるオブジェクトの陰影処理(シェーディング)」を「テクスチャ」にします.&br; &ref(WS019.JPG); オブジェクトの対話モードを「編集モード」から「オブジェクトモード」に切り替え,左画面でテクスチャマッピングの状態を確認します. &ref(WS020.JPG); 3Dビュー上でテクスチャマッピングの状態を見てみると,今回の例では半分くらいはうまくテクスチャが貼り付けられていないようです. **テクスチャの貼り付け(本番) [#r7c2cf18] ひとまず,手のひらにテクスチャを正しく貼り付けていきます. オブジェクトの対話モードを「オブジェクトモード」から「編集モード」に切り替えます. &ref(WS021.JPG); 右画面にマウスを持っていき,キーボードで「c」を押下します.&br; すると,この図&ref(WS022.JPG);のようにマウスポインタの周りに点線で円が描かれて点の選択ができるようになるので,手のひらあたり(と思われる)点を選択していきます. &ref(WS023.JPG); キーボードで「ESC」を押して点の選択モードを解除します.&br; 表示する画像を,選択している点に合う画像に変更します.この例では「arm_tex_2.jpg」に画像を変更しました. &ref(WS024.JPG); → &ref(WS025.JPG); 点の選択を解除(blender画面の何もないところで右クリック)すると,オブジェクトのテクスチャマッピングの状態が変更されていることがわかります. &ref(WS026.JPG); 以上のように, +右画面で点(面)を選択 +選択した点(面)に合う画像を選択 +点(面)の選択の解除 を繰り返すことで,すべての点(面)に張り付ける画像(テクスチャ)を選択します. すべての点(面)に張り付けた結果が下の画像になります. &ref(WS027.JPG); **.x3dファイルの保存 [#le7b517d] 以降は作成中...