ポリゴン選択
国土地理院のデータから地域の形状(輪郭線)を出し、それをメッシュ化した時に、複数の地域を結合して一つのメッシュにしたりします(ベースの形状の一部の地域だけが光るみたいなことをする時ですな)。その時、隣り合った地域の接するエッジが完全に重なるってことはないようで、たとえば Mesh→Clean up→Merge by Distance で近接するポイントを結合したりします。でもうまく繋がらない、繋げるためにDsitanceの値を上げていく、なんてことをやっているうちに、形状の輪郭線がどんどん崩れていくなんてことがあるわけですよ。
ということで輪郭線には影響を与えずに、内側のポイントだけを対象にするために、輪郭線を含んだポリゴン以外を選択してコマンド実行とかやりたくなったわけです。さて、どうやって選択するか。
とりあえず簡単な形状で試したところではこれで行けそうな予感って手法を記録しておきます。編集モードはエッジにしてます。
Select→Select All By Trait→Poles by CountでExclude Non Manifoldをチェック。
編集モードをポリゴンに変更
Poles by CountでのExclude Non Manifoldは非多様体を除くってオプションで、これにより輪郭線部分が選択から排除される、となります。線ポリゴンとか点ポリゴンとかそんな要素も選択から外されます。
選択に関するいろんなコマンドがあるからちゃんと理解せんとね。Select All By TraitでNon Manifoldってあるけど、それを実行すると不正になりやすい要素を選択できるわけで、便利そうです。
<追記>考えてみたら、上記目的だと結合したいのは輪郭線状態になってるとこの頂点だからこのやり方じゃダメじゃん。まあここから手動で大まかに内側をざっくり選択すればいけるか……</追記>
Bake Wranglerの設定自分メモ
カメラからの見た目をベイクしてそれなりに再現するための設定のメモ。(ベイクしたテクスチャをシーン内の環境に影響されないマテリアルに適用した時に、ベイクしたシーンの見た目を大体再現する設定のメモ)
これは、
- 複数のキューブを一つのUVにまとめ、それらキューブをCubesコレクションにまとめて
- それらキューブが乗っている床となるFloorオブジェクトが入ったFloorコレクションを作り
- 空間のライトはLightコレクションにまとめたシーンで、
- Bake WranglerのInput MeshのSourceにはベイクされるオブジェクトに影響を与えるオブジェクトが入ったコレクションを全部繋いで
- Sceneにはライトが入ったコレクションをつなぎ
- Mesh Settingノードの Bake Mods to Unmodedをオンにする
という設定をしたもの。
もちろん環境マップの設定とかしてたらPass SettingsのUse My Worldで指定をしておく。
Bake前 Cycles
Bake後 Eevee
まとめてベイクしたい
<追記>正直すまんかった。ちゃんと機能あるじゃないですか。
objectsノードを使えばよかったのですね。コレクションを指定できるし、オブジェクト単位では選択したオブジェクトをまとめて登録可能。なんてこった。
ということで、以下の内容は無知をひけらかしているものということになります。</追記>
BlenderでベイクするさいBake Wrangler [Blender Market]をまだ愛用しているのだけど、大量にものがある時、大変なのです。
キューブが15個あって、それの見た目を一個のテクスチャにベイクする時、Bake Wranglerではこんなふうになると思うのです。
オブジェクトが15個あるからInput Meshノードを15個用意して、それぞれにターゲットとなるメッシュオブジェクトを指定しなければならない。とても面倒です。
自分が昔買ったツールにBakeTool [Blender Market] があって、そいつだと選択した複数オブジェクトを一気にジョブに登録することができるのだけど、Combineな設定の時にfrom Cameraの設定ができないっぽい。おしぃって感じです。PBRの各要素を書き出す時にはとても使えそうだからそのうち積極的に使っていきましょう
と思いつつ、Cyclesのレンダリング結果の見た目を再現する目的での最適解が見つかっておりません。まあちゃんと探してないのだけど…。
ビューポート表示を軸に揃える
Blenderの3Dビューポートを投影状態で前、後、右、左、上、下からの方向に切り替えるショートカットを探ってました。コマンド的にはview_axisになるようで、キーマップをそれでフィルタリングして「?」って思うわけです。
あ、業界互換キーマップでのお話ね。
下の方のショートカットを操作するデバイス部分がNDOFとかなっております。NDOFなにそれ?って思うわけですが、3Dマウスと呼ばれるものみたいです。N 自由度(Degrees of freedom)。…持ってねぇよそんなデバイス、となります。
選択した面に対して正面、側面、上面みたいな感じでビューポートの内容を切り替えたいって用事がNDOFに割り当てられてて二進も三進もいかないので、ワールドの正面、側面、上面はvキーを押してパイメニューを呼び出したGUIから切り替える習慣を持っている私は、そのショートカットに割り振られているF1〜F3を、選択したものを基準にビューの表示を切り替えるところに割り振ったのでした。(「にっちもさっちも」って「二進も三進も」なんだ…)
よくこんな基本的なところで躓いてます(苦笑)
ちなみに3Dマウスが欲しければ、SpaceMouse[3Dconnexion JP] あたりになる模様。
EmberGenがmacOSにくる
Hot features: MacOS support, Sparse simulations, LiquiGen stability & viscosity, New white water rendering, and a whole lot more!
[x.com]
JangaFXってところが出しているツールにEmberGenとかLiquiGenとかGeoGenなんてのがありますけど、まあまあありがちなことにWindowsとLinuxのサポートしかなかったわけですが、次のバージョンでmacOSもサポートされますよってポスト。1/24のポストだけ見ると各製品でサポートされそうだけど、Product Roadmap[roadmap.jangafx.com]を見るとEmberGenだけかもしれません。が、個人的にはそれでも大変に喜ばしい。まあまともに動かすにはM4 Maxとか将来出るであろうM4 Ultraとかを要求するかもしれんけど、それでも喜ばしいです。
お値段は現行バージョンで初年度299.99ドルかかるけど(全部入りは449.99ドル。ちなみに保守料は2年目以降149.99ドルと224.99ドル)、かつてAutodeskのライセンスを払っていた頃に比べればこれぐらい…
Google Earthから画像を取得しよう
Google Earth Proでパノラマ風景を作ろうと思ったとき、視点を固定してパン方向に何枚か画像を取り出して、それらをマージしてあげればいいというのが基本的な考え方になりますか。
Google Earth ProのナビゲーションではCommandキーを押しながらのドラッグで視点中心でカメラを回すことができるので、それで頑張るといいわけです。けど、オペレーションミスると位置がちょっとずれて台無しにってことになりかねないから、なんとか数値入力でできないものかと思うわけですね。
AppleScriptでそれができるかなって思ったのだけど、AppleScriptのSetViewInfoで設定できる視点位置は、動作としてはまず指定した経緯度と(地面からの)高さに視点を移動させます。このとき視点は真下を向いています。次に指定した方位にカメラをロールさせて、最後に指定したチルトの角度分だけ視点が見ていた地面を中心に回転します。つまり、経緯度で指定した場所の上空にカメラを設定ってのが大変に困難です。その上水平方向を見るようにすると(チルトを90度にすると)ほぼ地面って高さに降りちゃうわけですね。
ということでAppleScriptでは無理と悟りました。
Google Earthでは任意の位置と視点の向きを記録させることができますけど、その機能を利用し、視点位置は固定で見ている方向違いをいくつか記録しましょうと考えました。
KMLを書くことになります。
KMLでは視点をLookAtタグかCameraタグで指定するそうです。AppleScriptで示した挙動はLookAtを使った場合に一致します。それじゃダメなのでCameraを使います。
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>富士山</name> <open>1</open> <Placemark> <name>Angle 1</name> <Camera> <longitude>138.731065 </longitude> <latitude> 35.362260 </latitude> <altitude>3790</altitude> <heading>0.0</heading> <tilt>90</tilt> <altitudeMode>absolute</altitudeMode> </Camera> </Placemark> <Placemark> <name>Angle 2</name> <Camera> <longitude>138.731065 </longitude> <latitude> 35.362260 </latitude> <altitude> 3790 </altitude> <heading>45.0</heading> <tilt>90</tilt> <altitudeMode>absolute</altitudeMode> </Camera> </Placemark> (省略) </Document> </kml>
上のようにPlacemarkタグで囲んだCameraの情報を書いてあげました。上の例は全てのPlacemarkの中は同じ富士山山頂の経緯度と高度を指定し、違うのはheadingタグの中身だけとなってます。45度ずつカメラを回転させて風景を撮影したのを後で繋ぎましょう作戦です。
上記kmlをGoogle Earth Proに読み込むと下図のようになります。
で、Angle 1〜8を順番にダブルクリックしてそれぞれに角度の絵を保存するという作業を繰り返します。ネットワークが遅いと絵が表示され切るまでに時間がかかるし、地道な作業です。
Photoshopのフォトマージの円筒法で合成するとこんな感じになるため、適当にトリミングしてシリンダーに貼り付けて完成です(左右方向はループするようにきちんとトリミングする必要があります)。
これぐらいならKMLは手書きでいいけど面倒すなあ。なんとか自動化できんものか(と言いつつこの作業の頻度は著しく少ないので、必要な時に手動でいいや、となります)
画像の形で切り抜く
そんな新しいプラグインを3D人さんのサイトで知りました。
Image Trace Generator - 2D画像をサクッと3Dメッシュに変換可能なBlender 4.2向け無料アドオンが登場![3dnchu.com]
Free Addon - Image Trace Generator - Convert Image to 3D Shapes -[ Blender Market]
これはいいのでは?と期待して入れてみました。
素材元[いらすとや]
ちょっと思ったのと違いました。まあでも、手軽にシルエットを立体化(厚みのついた平面)にするにはよさそうです。
素材元[SILHOUETTE ILLUST]
有料だけどImage 2 Mesh [Blender Market] が個人的には本命だなあ…
ベイク失敗
ハイポリからローポリに転写しようする時の注意。裏面は黒くなるぞ(正確には透過した先の色が拾われるぞ、か?)。
手前を奥の形状にベイクしてみたら、なんで黒い線が入るのって思うわけです。
しばし悩むのだけど、ワイヤーフレームを見るとまあまあ無理な変形で形状を作っているっぽいことがわかります。
Blenderのノードには面の裏か否かを取得する機能があるようで、それを利用して裏面を透明にする(アルファを0にする)とするとベイク後の結果が再現されました。
でもこれを無くしたいんじゃーって時はどうすんのかね。ダブルサイドのメッシュ状態を作るとか?
UV PackerはmacOS対応してたんだね
3ds max向けのUV編集のプラグインを作ってた3d-ioがUVをパッキングするツールPacker-IOってのをリリースしてて、その機能をBlenderから利用するアドオンも出していたけど、3ds max向けのツールを出していた会社だけにWindowsオンリーだったんですよね。でまあBlenderのパッキングも高度になってきたからまあいいやって掘り起こしていなかったのだけど、Blender 4.2のパッキング処理時、時々ポリゴンアイランドの形状がおかしくなる症状が出てたもんで、困ったなぁて時に、お、これmacOS対応してるじゃんって気づいたのです。
UV-Packer [uv-packer.com]
UV-Packer-BlenderっていうBlenderから利用されることが前提のアプリと、それをBlenderから利用するアドオンをダウンロードすることになります。Packer-IOはスタンドアロンのアプリ。
アドオンは普通のBlenderの作法で入れればよし。
UV-Packer-Blenderは起動しようとすると「“UV-Packer-Blender”は、開発元を検証できないため開けません。」という警告が出てゴミ箱に入れるなんて選択肢が出てきますが、そこはキャンセル。その上でシステム設定のプライバシーとセキュリティに「“UV-Packer-Blender”は開発元を確認できないため、使用がブロックされました。」って項目が現れているのでそこの「このまま開く」ボタンを押すとパスワードを聞いてきます。それに答えると開くかゴミ箱に入れるかキャンセルするかってダイアログが開くから、そこで開いてあげれば、このアプリは開いていい物だとmacOSが学習します。以上で使用準備完了。
無事に使えるようになって、めでたしめでたしなのです。
しかしこちらの会社、こんな素敵ツールを無料で配布してくれていいのでしょうか。この会社のmacOS対応品ってこれだけだと思うし、ありがたいけど、この会社は何で食ってんだろ?
Texture Imageのファイルパス
基本的なところなのだけど、意外と見つけられない人も多いので。