Mikanixonableのブログ

toki pona li pona mute

Meshroomによるフォトグラメトリ入門

Meshroomでフォトグラメトリを始めたら躓くところがいくつかあったので書き残すことにした。ポイントは、写真のメタデータを消しておくことと、GPUがないと動かない計算工程をショートカットすること。

 

ダウンロードして起動する

https://alicevision.org/#meshroom

ウィンドウが2つ開く。cmdみたいな真っ黒なほうのウィンドウはエラーメッセージや計算の進捗を確認するやつで閉じてはいけない。

 

写真を最低20枚くらい用意する

少ない経験則で推奨されるものと苦手なものを列挙する。

 

推奨されるもの:

広い平面部を持つもの(本など)

ざらざらしていたり、表面に細かいパターンのあるもの(布、壁紙、本など)

形が単純なもの(本など)

物の全体が写っているもの←他のサイトでは言われているがあまり効果を感じない

 

苦手なもの:

つるつるしているもの(レゴなど)

細すぎるもの(花など)

凹凸が多く、少ない角度差によって見え方が大きく変わるもの(花、道具箱の中など)

角度によって写る色が変わるもの(ガラス、金属など)

 

悪いものは、完成品が荒いというレベルではなくそもそもほとんどメッシュができない。良いものでもぼやっとしてあまりうまくいかない。運だめしに近い。

 

 

前処理する

デジカメで撮った写真など、メタデータがついているものはエラーが出ることがあるのでRalphaというソフトで一括してメタデータを剥がす。この工程は飛ばしてエラーが出てみてからやってもいいかもしれない。ノートPCで撮った写真は大丈夫だった。

 

ドラッグアンドドロップで追加し

 

メタデータ設定を開き

 

こういう設定にして

 

元あったところと別に出力フォルダを設定する。こうしないと変換前の画像が混ざって面倒くさい。

 

変換を実行する(変換という名前だが元あったファイルは書き換えられず新しく作られる)

 

変換した写真を左のエリアにドラッグアンドドロップする

 

GPUがいる部分を消す

下のグラフエディターを拡大する。この部分は基準に対応するハイエンドなGPUがないとエラーを吐くのでDelで消して

こうショートカットする

(ちなみに消すのではなくグラフを付け替えるだけだと、使われなくなったノードがエラーを吐く)

 

保存する

スタートを押す

 

とセーブするように求められるので適当な名前を付けてセーブする

 

計算を始める
もう一度スタートを押す


プログレスバーとグラフエディターにこういう色がつく。緑が計算済み、オレンジが計算中、青が未計算。エラーが出ると計算中のところが赤に変わるので黒いウィンドウのほうでエラー文をコピペしてググる

 

44枚だと1時間半くらいしたら終わる。右の3Dビューアーには推定カメラ位置とドットのようなものができていて、かっこいい

 

 

Texturingノードをダブルクリックするとテクスチャが生成される。5分くらいかかる。

 

 

ほとんどのドットを無視してテクスチャができる。失敗!

 

メッシュデータは、テクスチャリングをした時点でプロジェクトを保存したフォルダの\MeshroomCache\Texturingのフォルダにテクスチャファイルとともにobjファイルとして保存されている




 

比較的うまくいったものhttps://twitter.com/Mikanixonable/status/1507873717019607041/photo/1

Image



このワールドに他の3D作品たちも置いてあるのでぜひ来てほしいです

https://vrchat.com/home/launch?worldId=wrld_639a4f21-aa67-4667-9a4a-d454c580cb3b



 

 



 

 

Blenderとクリスタを使って架空惑星を作る

 

やり方

Blenderをダウンロードしてきてインストールする。https://builder.blender.org/download/

 

f:id:Mikanixonable:20190706120540p:plain

起動する

 

Delで立方体を消し、Shift+A→メッシュ→UV球でUV球を作成する

f:id:Mikanixonable:20190706120740p:plain

 

f:id:Mikanixonable:20190706133301p:plain

セグメントを72くらいに増やし、UVを生成にチェック

f:id:Mikanixonable:20190706153453p:plain

シェーディングをスムーズにしてつるつるにする

f:id:Mikanixonable:20190706120939p:plain

右のメニューから赤い丸いマークをクリック、新規マテリアルを作る

f:id:Mikanixonable:20190706121251p:plain

一つ右の市松模様メニューから新規テクスチャを作る

 

 

 

テクスチャ作り

1:2の画像さえあればいいので面倒なら

https://pbs.twimg.com/media/D3i4DLqUUAAOmw_.jpg

https://pbs.twimg.com/media/D2mj1QHUkAAe6BD.jpg

https://pbs.twimg.com/media/D0AY8abV4AEkWDT.jpg

をダウンロードして使ってください

f:id:Mikanixonable:20190706121859p:plain

横に長い1:2の長方形でクリスタを立ち上げる

f:id:Mikanixonable:20190706122418p:plain

グレースケールで地形を描く。低地は暗く、高地は明るく描く。

f:id:Mikanixonable:20190706122546p:plain

レイヤーを右クリック、レイヤーの変換で画像素材レイヤーを選択、OKで変換する

f:id:Mikanixonable:20190706122725p:plain

レイヤープロパティの立方体を指し示すアイコンを押し

f:id:Mikanixonable:20190706122908p:plain

ツールプロパティのタイリングにチェックを入れ

f:id:Mikanixonable:20190706123012p:plain

シフトを押しながら横にスライドさせる。地図の経度変換ができる。再びラスターレイヤーに変換して、残ったところを描く

f:id:Mikanixonable:20190706125527p:plain

描き終わったところ

f:id:Mikanixonable:20190706125644p:plain

高緯度は実際には横に引き伸ばされるので、地図の上下端の部分は矩形選択の後、縦に圧縮する

f:id:Mikanixonable:20190706125841p:plain

f:id:Mikanixonable:20190706125929p:plain

極座標変換し

f:id:Mikanixonable:20190706130016p:plain

縦に2倍に引き伸ばし

f:id:Mikanixonable:20190706130504p:plain

極付近を描きこみ、逆の手順で直交座標まで戻す

f:id:Mikanixonable:20190706130743p:plain

描きにくい北極付近が埋まった

f:id:Mikanixonable:20190706131524p:plain

上下逆転して同じ手順で変換し南極付近も描きこむ

 

色を着ける

f:id:Mikanixonable:20190706131708p:plain

グラデーションマップを開き好みの色を付ける

f:id:Mikanixonable:20190706131854p:plain

例えばこのように明暗で色相を変えるとそれっぽくなる

f:id:Mikanixonable:20190706131959p:plain

金星に似ている

f:id:Mikanixonable:20190706132254p:plain

海を作っても映える。海岸線はグラデーション要素を限界まで近づけることで表現する

Blenderに戻って作成したテクスチャを開いて

f:id:Mikanixonable:20190706132750p:plain

シェーディングをマテリアルに変え

f:id:Mikanixonable:20190706133017p:plain

Nを押して表示されるメニューからシェーディングをGLSLに変え

f:id:Mikanixonable:20190706133548p:plain

マッピングをUV、UVMap、フラットに設定

f:id:Mikanixonable:20190706133714p:plain

これで一通りが完成。頂点ペイントかスカルプトモードにすると余計な表示が消え存分に鑑賞できる

 

見映えを良くする

f:id:Mikanixonable:20190706145019p:plain

昼と夜をはっきりさせるためオブジェクトモードに戻り、ディフューズをトゥーンにしサイズを1.57にする

f:id:Mikanixonable:20190706145329p:plain

右上のメニューからランプを選択して消し、かわりにShift+Aから無限遠光源であるサンを作成する

f:id:Mikanixonable:20190706145645p:plain

Nを押すと出るメニューのトランスフォームから回転をY-90にするとテクスチャの中央が昼になる

自転させる

f:id:Mikanixonable:20190706150013p:plain

左下隅の◣を上にずらすとウィンドウが分離する

f:id:Mikanixonable:20190706150303p:plain

分離したウィンドウを左下のメニューから時計アイコンのタイムラインに切り替えるとこのようになる

f:id:Mikanixonable:20190706151036p:plain

Iキーで現在の回転情報をキーフレームに固定する。トランスフォームメニューは黄色くなる

f:id:Mikanixonable:20190706151337p:plain

▶▶ボタンで最終フレームに移って回転を設定する。360かその倍数にすればループアニメーションにできる

 

最初のフレームに戻って再生ボタンを押すと自転する。この方法の他にも、照明オブジェクトを回転させる方法もある。

 

このままでは回転が正弦補完されて不自然なので、別ウィンドウを開いて等速回転に変える

f:id:Mikanixonable:20190706151737p:plain

左下メニューからグラフエディタ。Ctrlを押しながらスクロールホイールドラッグで縦横比を調節できる

f:id:Mikanixonable:20190706152007p:plain

f:id:Mikanixonable:20190706152037p:plain

右クリックで選択し、Ctrlを同時に押してこのように曲線部をなくす

f:id:Mikanixonable:20190706152247p:plain

両方を直線にしたところ。何本かのグラフが重複しているので、曲線部が消えないときは複数回クリックして目的のノードを選択する。

f:id:Mikanixonable:20190706153048g:plain

等速回転できた

 

Webから見れるようにする

f:id:Mikanixonable:20190706154423p:plain

Webから見れるようにするには、テクスチャをBlenderファイルに同梱させなければならない。ファイル→外部データ→「すべてBlenderにパック」を選択してから保存する。 

 

https://sketchfab.com/feedはWeb埋め込みで3Dモデルが見れるサービスである。右上からアップロードする

f:id:Mikanixonable:20190706155258p:plain

アップロードした作品のEmbledをクリックし

f:id:Mikanixonable:20190706155201p:plain

埋め込みHTMLをコピーしてきて張ると

 このように埋め込み表示できる。

 

より高度な技術

f:id:Mikanixonable:20190706155803p:plain

・太陽の方を傾ければ、簡単に地軸を表現できる。アニメーションで首を振るように往復運動させると季節を表現できる。

f:id:Mikanixonable:20190706160448p:plain

テクスチャ→影響→ジオメトリをオンにすれば地形の凹凸を表現できる。このとき、テクスチャ作成時に作った白黒標高図を別レイヤーで読み込ませそれのみジオメトリをオンにし、テクスチャ→影響→カラーをオフにし透明にすると、メインレイヤーの色とは別に高低差を表現できる。

また、海の領域をクリスタで二値化→色域選択して陸を透過させたpngとして保存し、別レイヤーで読み込ませ、それのみスペキュラー(光沢)を強くすれば海面の反射を表現できる。

 

f:id:Mikanixonable:20190706161724p:plain

f:id:Mikanixonable:20190706161947p:plain

f:id:Mikanixonable:20190706162002p:plain

f:id:Mikanixonable:20190706162018p:plain

細かいテクスチャを手描きするのは面倒なので、地面や植物の写真をフォトバッシュとして使ってもそれっぽくなる、その際、色域選択で特定の高度だけに重ねると、さらに自然にすることができる。レイヤーを半透明やソフトライトにすると手描き部分となじみやすい。

 

ギャラリー

 

f:id:Mikanixonable:20190706162343p:plain

f:id:Mikanixonable:20190706163709p:plain

f:id:Mikanixonable:20190706163816p:plain

f:id:Mikanixonable:20190706163840p:plain

f:id:Mikanixonable:20190706163912p:plain




地球型架空惑星
 

f:id:Mikanixonable:20190706162604p:plain

f:id:Mikanixonable:20190706163529p:plain

f:id:Mikanixonable:20190706162510p:plain

 

f:id:Mikanixonable:20190706165854p:plain

輪のある赤いガス惑星

 

ブログを始めた

Twitterばかりやっていると140字以上の文が書けなくなるので、ある程度テーマがまとまっているものは後から参照しやすいようなるべくここに投下していくという予定です。

実は初記事を「ブログを始めた」にするのも(凡庸すぎて)どうかと思って「文章の固定性について」という2000字弱の文章を書いたのですが、題名が偉そうな上に途中で恥ずかしくなったのと微妙に内容がまとまっていなくて止めました。まとまった文章を書く能力が欲しい。