【フォトグラメトリ】3DFゼファーのモデル作成:使い方・解説

2020年8月13日

イラストや漫画を描くために3Dモデルがあると作画を行うための作業時間を大幅に短縮することが出来ます。

しかし、3Dのモデルを0(ゼロ)から作っていると時間がかかる。作りたい3Dモデルの形が複雑すぎて作るのが難しい。そもそも、3Dモデリングソフトを使用したことが無いので3Dモデル自体を作成することが出来ないといった場合があるのではないでしょうか?

そんな時に、写真から3Dモデルを作成することが出来る技術、フォトグラメトリを使用することで誰でも短時間である程度の3Dモデルを作成することが出来ます。

フォトグラメトリのソフトについてはメジャーな物が複数ありますが、今回は導入しやすく、使いやすい、3DF Zephyr(3DFゼファー)を用いてフォトグラメトリを行いたいと思います。

本記事の目的
  • 3DF Zephyr(3DFゼファー)でのモデル作成及び使用方法についての解説
  • 出来るだけ綺麗なモデル作成をするための写真撮影の方法解説
  • 3DF Zpehyrからモデルを出力する(CLIP STUDIOに読み込ませる)

3DF Zephyrについて

3DF Zephyrは3D FlOW社(日本では(株)オーピーティーが代理店)が開発をした、フォトグラメトリーソフトになります。

3DF Zephyrには「3DF Zephyr Lite」と「3DF Zephyr」の2種類のバージョンがあります。(本記事では「Lite」も「3DF Zephyr」として表記しています。)

「3DF Zephyr Lite」VRやゲームなどで使用をする小物などのオブジェクトを3Dモデリングをすることを想定したバージョンとなっています。あまり規模の大きくない物をモデリングすることを前提としているため、使用できる撮影の枚数には制限があり、最大で500枚です。デモ版だと50枚までとなっています。(本記事ではこちらを取り扱っています。)

3DF Zephyr Liteとデモ版の3DF Zephyr Freeのメニューにある機能を下図で比較して言います。主にツール関係の機能にデモ版だと制限が入っています。

「3DF Zephyr」は3Dの地図を作るための測量や、工業用の計測を行う機能が「3DF Zephyr Lite」に追加されたバージョンとなります。地図などを作るとなると、写真の枚数が膨大になるため、こちらは写真の枚数が無制限になっています。標準価格が約53万円、アカデミックで約24万円です。

製品の機能比較については(株)オーピーティーのサイトから確認をすることが出来ます。
http://www.opt-techno.com/opt-zephyr/product.html

フォトグラメトリで使用する機材

絶対に必要な機材
  • フォトグラメトリのソフト
  • カメラ
    携帯のカメラでもモデリングすることは可能ですが、出来るだけ高解像度、被写界深度の深い物(全体をくっきりさせる)、手ぶれ補正ありをオススメします。
  • パソコン
    処理速度(CPUおよびGPU)の速い物、メモリは積めるだけ積む(推奨は16GB以上)、画像の枚数が多くなってくると処理時間、メモリ使用量が増加します。
出来れば揃えたい
  • 三脚
    小物を撮影するならミニ三脚で撮影位置を固定する。手ぶれを抑える
  • 回転テーブル
    撮影対象を自動で回転させることが出来る。
  • 撮影ブース
    撮影対象に陰が出来るとモデリングの品質を下げる場合もあるため、陰が出来にくくする必要がある。

3DF Zephyrのインストール

3DF ZephyrについてはSteamより購入及びデモ版をダウンロードすることが出来ます。
ダウンロードにはSteamのアカウントを作成しておく必要があります。
https://store.steampowered.com/

1.
Steamのサイトにアクセスをしたら、検索ウィンドウに「3DF Zephyr」と打ち込むと有料版とデモ版の2種が検索結果として表示されます。両方とも同じページに飛ぶのでアクセスをするのはどちらでも問題ありません。

2.
3DF Zephyrのページが開きます。

3.
デモ版についてはページの右下にある「デモをダウンロード」からダウンロードをすることが可能です。有料版については上にある「カート」を入れるから購入をすることが出来ます。

4.
Steamのデスクトップアプリケーションがインストールされている場合は、「はい」をクリックすることでインストール準備が開始されます。

デスクトップアプリケーションをインストールしていない場合は、「いいえ」をクリックして、デスクトップアプリケーションをまずはインストールしてください。

5.
4.で「はい」をクリックするとブラウザ(上記画像はChrom)の上にデスクトップアプリケーションを起動してよいか確認をするポップアップが表示されるので「Stem Client Boostrapperを開く」をクリックします。

6.
3DF Zephyrのデモ版をインストールするためのウィンドウが開きます。デスクトップにショートカットを作成する場合はチェックを入れます。特に何も変更せずに「次へ」で問題ありません。

7.
利用規約について同意をする場合は「同意する」をクリックします。

8.
後はダウンロードとインストールが自動で開始されるため、暫くまっていると3DF Zephyrを使用することが出来るようになります。

9.
インストールがされると、Steamデスクトップアプリケーションに「3DF Zephyr Free Steam Edition」としてデモ版が表示されます。「プレイ」をクリックすることでソフトが起動します。

10.
起動時に「3DF Zephyr Free Steam Editionを起動」するか「3DF Masqueradeを起動」するか確認をされます。今回は「3DF Zephyr Free Steam Editionを起動」にチェックを入れて「起動」をクリックします。

3DF Masqueradeは3DF Zephyrで使用するマスクデータを作成するためのソフトになります。マスクデータを一切使わずに写真を取り込んだ場合、モデリングを行いたい、オブジェクト以外もモデリングをしていまいます。(3DF Zephyr内でも不要な部分を除去することは可能です。)

11.
起動開始をするとスプラッシュウィンドウが表示されます。起動に暫く時間を要します。

12.
3DF Zephyrが無事に起動しました。フォトグラメトリのソフトは無事にインストール出来ましたが、フォトグラメトリを行うための素材となる写真を用意する必要があります。

モデル作成のための写真撮影について

フォトグラメトリで一番重要なのがモデルを作成するための元になる写真撮影です。写真の質が低いと、どんなに良いソフトを用いても出来上がるモデルは低品質になってしまいます。

そのため、フォトグラメトリでは写真を高品質で撮影することが望ましいです。

フォトグラメトリでの写真に対する高品質とは

  • 対象物がボケて撮影されていないこと
  • 対象物の陰が少ないこと(陰に対象物が隠れないこと)
  • 対象の全体像を満遍なく撮影が出来ていること

を指しています。

写真でフォトグラメトリを行う場合の向き不向き

写真でフォトグラメトリを行う場合、写真に映っている物体の色や位置などを見てモデリングを行うため、カメラの特性上どうしてもモデリングに向いているところと向いていないとところが出てきます。

向いている対象物
  • 色のついた物体
  • 表面が粗いもの
  • 特徴的な形状や模様があるもの
向いていない対象物
  • 透明の物体
  • 白色または金属のように表面の光が反射しやすい物体
  • 同じ位置に静止をしていない物体・移動する物体
  • 形状が細かく、複雑すぎる物体

フォトグラメトリ用の写真を上手に撮影する方法

1.
写真を撮影してみます。撮影する対象物によっては細かな部分を再現するために出来るだけ大きく映るように撮影を行う必要があります。(今回はArduino unoを撮影しています。)

2.
撮影イメージ、出来るだけ大きく全体が映るように撮影を行います。撮影ブースなどが無い場合は陰が出来るだけ出ないように撮影します。あとは照明による反射にも注意が必要です。

3.
後は対象物を各方向から撮影を行い対象物の全体像を捉えることでモデルを作成するための素材を揃えることは出来ますが、カメラを移動させるのが面倒なのと、単純にカメラを移動させただけでは撮影した写真がフォトグラメトリソフトで上手に認識されない場合があります。

フォトグラメトリのソフトは写真からモデリングをするときに特徴なる部分を認識して、どの方向からカメラで撮影されたのかを認識します。

そのため対象物の周りに特徴がないと、カメラがどの方向から撮影されたのかを認識することが出来ません。

フォトグラメトリのソフトに読み込まれた写真は画面上に推定されたカメラの撮影方向として表示されます。読み込まれた写真の数だけ推定されたカメラの方向が表示されます。

4.
特徴のある部分が写真内に無い場合、フォトグラメトリソフトの認識率が低下する場合があります。

特徴的な台紙を何種類か作成してみました。上記の画像を印刷して、その上に対象物を置いてから撮影を行うと、3DF Zephyrでは写真の認識率が飛躍的に向上しました。(画像をクリックすると

同じように撮影をしても特徴の有る物の上に置いている時と置いていないときとではソフトでの認識率は大幅に違います。

(特徴のあるものがないと、先ほどの推定されたカメラの撮影方向という物が判らなくなるためソフトで認識してくれない可能性が高くなります。

台紙の中央付近に対象物を設置しておけば撮影に問題ありません。

4.
台紙の上に対象物を配置が出来たら、カメラの撮影位置を三脚などで固定しておきます。後は台紙ごと対象物を回転させることで、3.のようにカメラを各方向から撮影したときと同じ効果を得ることが出来ます。

台紙に特徴があるため、フォトグラメトリソフトがカメラが対象物の周りを回転したと認識してくれます。

この時に、回転テーブル(Amazon)があると手で台紙を回す必要がなくなるため、スムーズに撮影を行うことが出来ます。

5.
対象物に対しておよそ10~20°刻みくらいで撮影を行います。最終的に形状だけではなくテクスチャも貼り付けたりするので文字が読みやすい方向からの撮影を追加で必要になる場合があります。

撮影の方向や光の反射具合によってはオブジェクトの根元がモデリングをしたときに正確に出てこない場合があるので補完用の写真を撮影する必要があります。

いずれかの方向及び位置で撮影をした写真に近接した位置で撮影をするとフォトグラメトリソフトでの認識率が上がりやすいです。

1点だけ他の写真とは別の場所から撮影をしていると認識がされにくいため、フォトグラメトリとして使用できない写真になる可能性が高くなります。

これは平面に対しての話だけではなく、あらゆる方向や距離からの撮影にも関係します。必ず近接した位置で写真撮影を行うようにしましょう。

色調としては出来るだけ明るい写真が望ましいです。また、撮影した画像によって色調が大幅に変化するのは避けてください。

8.
後はひたすらボケの無い(少ない)写真を撮影していくだけです。

3DF Zephyrを使ってモデルを作成する

3DF Zephyrでのモデル作成動画

3DF Zephyrでのモデル作成手順(詳細)

無事に素材となる写真撮影も出来ていると思いますので「3DF Zephyr」を使用してモデルの作成を行っていきます。

1.
デフォルトの画面構成としては上記のようになっております。

2.
撮影した画像を3DF Zephyrに読み込ませる方法として、写真を3DF Zephyrの画面上にドラッグ&ドロップするのが一番簡単ですが、「ワークフロー」に沿っての解説をします。(画面上にドラッグ&ドロップをしてもワークフローの通りに作業しないといけないため)

3.
ウィンドウ左上にある「ワークフロー」から「新規プロジェクト」を選択します。

4.
プロジェクトウィザードというウィンドウが表示されます。通常はデフォルトのまま「次へ」をクリックします。マスク画像を生成している場合は「マスク画像」にチェックを入れ次へをクリックします。

今回はマスク画像を生成していないので、デフォルトのまま「次へ」をクリックします。

5.
写真の選択画面が表示されるので、ドラッグ&ドロップで写真を追加するか、左下にある「+(プラス)」マークをクリックして写真を選択します。写真の追加が終わったら「次へ」をクリックします。

デモ版では写真が51枚以上追加された状態で「次へ」をクリックすると上記のようなウィンドウが表示されます。選択した写真を50枚以下にするか、有料版の3DF Zephyrを使用する必要があります。

写真を除外する場合は、除外したい写真を選択した後に右クリックから「選択写真を削除」をクリックするか、または右下にある「ー(マイナス)」から写真を除外することが可能です。

6.
「オンラインの事前較正カメラチェック」にチェックを入れていた場合、選択した写真に関する情報を自動で較正します。(写真のゆがみなどを補正)品質を上げるためには較正しておくことをオススメします。

※自動で較正するためにはインターネットに接続しておく必要があります。

7.
モデリングをするためのカテゴリーとモデルのキーポイントを抽出するためのプリセットを設定します。

通常はデフォルトのままで問題ありません。小さい対象物を撮影した場合はカテゴリの「一般」をクリックすると「近接範囲」等に変更したりすることが出来ます。(プルダウンの矢印表示はありませんが、プルダウンから選択することが出来ます。)

設定が終わったら「次へ」をクリックします。

8.
モデル化を行うための最初の処理設定が終わりましたので、実行ボタンを押して処理を開始します。

9.
処理が開始されます。パソコンの性能や読み込んだ写真の枚数によって処理時間を要する場合があります。

10.
読み込まれた写真が正常にモデル化出来ている場合は、モデル化の欄に「YES」と表示されています。確認が出来たら「完了」をクリックしてください。

モデル化に失敗した写真については「NO」として表示されます。

12.
写真が読み込まれた段階ではまず、「低密度点群」という状態で表示されます。この状態で先ほど読み込まれた写真のカメラ推定方向が全方向から撮影されているのかを確認することが出来ます。

もし、一部の方向からのみになっている場合は、この先の処理を行っても、作成されるモデルの品質が悪い状態になっているため、低密度点群の状態で入力されたデータに問題がないのかを確認することが必要です。

写真の枚数が多くなったり、モデリングの精度を上げるために設定変更をすると数時間の処理時間を要するようになるため、最初の低密度点群でデータの品質を確認することは無駄な作業を行わないための重要な作業となります。

13.
「低密度点群」の段階で問題がなければ、「ワークフロー」⇒「高度な」⇒「高密度点群作成」を選択します。

14.
高密度点群作成ウィザードが起動します。デフォルトで「全てのカメラ」が選択されていますので特に変更せずに「次へ」をクリックします。

15.
高密度点群を作成するための条件を設定します。カテゴリーは低密度点群を作成したときと同じ物を選びましょう。

プリセットについては最初はデフォルトを選択します。最初から「高精細」を選択すると先ほどの低密度点群を作成するのよりも更に時間を要します。その代わり、デフォルトよりも更に密度の高い点群を作成することが出来ます。

16.
設定が終わったら実行ボタンをクリックします。高密度点群の作成を開始します。

17.
低密度点群の作成よりも、時間をかなり要します。気長に待ちましょう。

18.
高密度点群の作成が終了したので、完了をクリックして、高密度点群作成ウィザードを閉じます。

19.
先ほどの「低密度点群」から「高密度点群」になったことで撮影をした対象物の形がはっきりと判るようになってきたと思います。

しかし、マスク画像を用意していないと対象物以外のノイズ(ゴミ)も周りに表示されます。(上記画像は台紙の黒い部分がノイズとして表示されている。)

ノイズがあるとモデルを作成した場合に邪魔になるのと、ノイズ自体も処理の対象となってしまうため、先に行うメッシュの作成時に無駄な処理時間が発生してしまいます。そのため、高密度点群の段階でノイズを除去しておきます。

20.
画面の右端にある「編集」⇒「選択の手で」⇒「ポリライン」を選択します。後は、図のように対象物のある範囲を囲んでいきます。

選択をしているときに上下左右のいずれかの方向から確認をしたい場合は「シーン」⇒「カメラ」⇒「。。。からのビュー」⇒「各カメラの方向」から選択をすることが出来ます。

あと、デフォルトのカメラのショートカットキーは下記のように設定されています。画面自体を平行移動したい場合は「Ctrl+右クリックをドラッグ」で動かすことが出来ます

カメラのショートカットキー
  • トップビュー :「8」
  • ボトムビュー :「2」
  • 左ビュー   :「4」
  • 右ビュー   :「6」
  • フロントビュー:「7」
  • バックビュー :「1」

21.
選択されると、選択された範囲が赤く表示されます。

22.
選択をしている状態で「ツール」⇒「選択」⇒「選択を反転」を選択します。現在選択されている範囲を反転します。

23.
選択範囲が反転されたので後は、「選択」⇒「編集」⇒「削除」を選択して不要な範囲を全て削除します。

24.
範囲選択、削除を何度か繰り返して、不要なノイズを除去していくことが出来ます。

25.
対象物が傾いている場合は、「コマンド」⇒「オブジェクトのスケール/回転/平行移動」を選択します。オブジェクトの変形ウィンドウが表示されます。

オブジェクトの変形ウィンドウに直接数値を入力することも出来ますが、対象物の周りに回転軸と平行移動の軸が表示されるため、直接軸を触った方が直感的に動かすことが出来ます。

26.
高密度点群からメッシュを作成するため「ワークフロー」⇒「高度な」⇒「メッシュ抽出」を選択します。

27.
メッシュ作成ウィザードが表示されます。デフォルトのまま、「次へ」を選択します。

※高密度点群を複数作っている場合は「高密度点群」をプルダウンから選択することが出来ます。

28.
サーフェースをモデル化するための条件設定を行います。カテゴリーは高密度点群を作成するときと同じにします。プリセットについてはデフォルトのままで最初は設定をします。「次へ」をクリックします。

プリセットを高精細に変更するとサーフェース化に時間を要するため、最初はデフォルトで様子を見ます。

29.
「実行」をクリックして高密度点群からメッシュデータを作成します。

30.
高密度点群からメッシュデータを作成しています。

31.
メッシュが作成されましたので、完了をクリックします。

32.
点群からメッシュ(面)が作成されました。メッシュまで作成されると、モデルに不備があるのかを確認することが出来ます。

この段階でモデルに不備が無いようであれば高精細モデルを作成するのを検討しても良いかもしれません。不備があれば入力している写真の見直しや撮り直しが必要になってきます。

割と上手く写真撮影が出来ている場合でも、モデルに穴が空いていたり、隠れている場所が凹んでいたりします。

※隠れている場所で反射しやすいと余計に形状が正しく表示されない可能性があるので注意が必要です。

33.
最後に、作成をしたモデルにテクスチャを付けていきます。「ワークフロー」⇒「テクスチャ付きメッシュ作成」を選択します。

34.
テクスチャ付メッシュ作成ウィザードが表示されます。デフォルトのままで問題ないので「次へ」を選択します。

※メッシュを複数作成している場合は使用するメッシュを変更することが出来ます。

35.
テクスチャの作成条件を変更します。31.メッシュと同等の表示(3DF Zephyr内)したい場合はプリセットを高精細に変更することで表現出来ます。しかし、テクスチャが非常に重たくなるため、モデルのサイズも重たくなるため他のソフトで読み込むのが大変になるため注意が必要です。

設定が完了したら「次へ」をクリックします。

右上にある設定を「プリセット」⇒「アドバンスド」に変更をするとテクスチャの細かな設定を自分で設定をすることが可能です。この中にある、

最大頂点の数だけを変更してください。2~5万程度に設定をしておけば問題ありません。なお、高精細では最大頂点数を1億まで設定されています。

36.
設定が終わったら、「実行」をクリックして、テクスチャ付メッシュを作成します。

37.
テクスチャ付メッシュの最大頂点数によって処理時間が変わります。

38.
テクスチャ付メッシュの作成が完了したので「完了」をクリックします。

39.
テクスチャ付きのメッシュが作成されました。テクスチャの最大頂点数の設定によって表示されるテクスチャ付きメッシュの表示精度が変わります。

高精細にすると、モデルの精度は良くなりますが、ファイルが重たくなるため注意が必要です。

3DF Zephyrからモデルを出力する

写真から作成をしたモデルを他のソフトで読み込むことが出来るようにファイルとして出力を行います。

1.
テクスチャ付メッシュを出力するために「出力」⇒「テクスチャ付メッシュを出力」を選択します。

2.
テクスチャ付メッシュを出力するためのウィンドウが開きますので、出力フォーマットを「Obj/Mtl」に変更します。

出力するメッシュが複数ある場合は、出力するファイル(メッシュ)を選択します。出力するファイルが決まったら、「出力」をクリックします。

3.
任意の場所に任意の名前を付けてファイルを保存します。

4.
保存ボタンをクリックすると、ファイルの出力が始まります。ファイルの出力が完了するとウィンドウが閉じます。(ファイル出力が終わったとのウィンドウは出てきません。)ウィンドウが閉じると指定した保存先にファイルが保存されています。

5.
ObjファイルをCLIP STUDIO PAINTに読み込ませることも可能です。出力されたObjファイルをCLIP STUDIO PAINTにドラッグ&ドロップするだけで読み込ませることが出来ます。メッシュデータやテクスチャの精度によって、LT変換をしたときの出来具合が変わります。

以上が3DF Zephyrでのフォトグラメトリの使い方と解説になります。

まとめ

  • カメラは撮影したい対象物にあった物を使う。小さい物を撮影する場合はズームして撮影出来ると更に良い
  • 高解像度に対応しているカメラを用いる
  • 手ぶれが発生しない様に三脚を用いる
  • 写真が暗くならないようにする
  • 小さい小物の場合は出来れば回転テーブルを用いる

3DF Zephyrのデモ版で今回は試してみましたが、50枚だと全体を綺麗に撮影をしようと思うと枚数が足りない気がします。今回モデリングをしたArduino uno基板だと最低でも60枚程度の写真が必要かなと思いました。

フォトグラメトリは中々に難しいと感じました。

撮影に使用した機材

SONY DSC-RX100M2

created by Rinker
ソニー(SONY)

SLIK 三脚 ミニ II 2段

自作の台紙と段ボール箱

※性能の良いカメラについてはレンタルすることも出来るようなので、状況によってはレンタルから試してみるのも良いかもしれません。