Modeling

Tips

modoのエッジウェイトをFBXに出力する方法

modoのエッジウェイトをFBXに出力する方法について書いてみたいと思います。

FBXファイルはメッシュやモーフ、スケルトン、アニメーションの他にも、頂点法線、選択セット、画像、コンストレイントなど3DCGに必要な様々なデータを格納することができるようになっており、サブディビジョンサーフェースの「エッジウェイト」の保存にも対応しています。

 

エッジウェイトとは

エッジウェイトサブディビジョンサーフェイスに重みづけし、鋭角なエッジを設定する機能です。例えばiPhoneのように曲線と直線で構成される機械的なモデルで、直線的なエッジを立てるときに便利です。MayaやMaxでは折り目(クリース)と呼ばれています。

modoには2種類のサブディビジョンサーフェイスが搭載されていますが、FBXにエッジウェイトを保存する場合はキャットマルクラークを使用します。

 

FBXファイルの出力結果

modoでエッジウェイトを設定したデータをFBX形式で保存してMayaとMaxで読み込むテストをしてみました。

テストに使用したエッジウェイトの画像です。キャットマルクラークは「頂点」「エッジ」2種類のウェイトを設定することができます。画像ではキューブ左側に頂点ウェイト、右側にエッジウェイトを設定しました。

左からウェイト値を-100、-50、0、10、20、30、40、50、100、200に設定しています。

modoはエッジウェイトとして-1000や1000のように好きな値を設定してFBXに保存/読み込みできますが、MayaとMaxではマイナス値に対応してないためファイル読み込み時にマイナスは無いものとして扱われます。

 

Maya

FBXファイルを開くと「折り目」の設定が読み込まれます。

polyCreaseでエッジや頂点の折り目の値が正しく読み込まれてるのが確認できます。

 

 

3ds Max

FBXファイルを開くと「折り目」の設定が読み込まれます。

エッジプロパティで「折り目」の値が正しく読み込まれてるのが確認できます。

 

 

エッジウェイトの検証はここまで、以降はキャットマルクラークのちょっとした解説です。

 

Catmull–Clark subdivisionとは

キャットマルクラーク(細分割曲面)は1978年に開発された歴史のあるサブディビジョンサーフェイスです。以前はアルゴリズムが特許で守られていたため、3Dソフトは独自にサブディビジョンサーフェイス機能を開発していました。このため使用する3Dソフトごとにサブディビジョンサーフェイスの結果が異なっていました。

2012年「OpenSubDiv」としてオープンソースライブラリとして公開され、Mayaや3ds Maxなど多くの3Dソフトが「OpenSubDiv」を追加しました。これによりどの3Dソフトを使用しても同じ見た目になるサブディビジョンサーフェイスを使用できるようになりました。

他の3Dソフトでモデルを読み込むときはFBXを使うことが多いと思いますが、キャットマルクラークを使用すればエッジウェイトの情報も受け渡し可能なので、modoでモデリングした状態と他の3Dに読み込んだ状態が一致するのが最大のメリットです。

 

そもそもエッジウェイトを使うのか問題

昔は3Dソフトごとに独自のサブディビジョンサーフェイス機能を開発していた経緯から、ソフトをまたぐ場合はエッジウェイトを使用する代わりに、エッジ付近にループスライスを追加して鋭角なエッジを立てることが多かったです。
ループスライスを追加するとエッジウェイトに比べてポリゴンは多くなりますが、エッジがラウンドされた感じが出るのでレンダリングしたとき好ましい場合があります。

ループスライスを使用してエッジを立てる例。

エッジウェイトを使用してエッジを立てる例。

 

サブディビジョンレベルによってエッジのRが変わる問題

キャットマルクラークは様々なソフトで採用されていますが、エッジウェイトに関しては使いやすいアルゴリズムだとは感じません。エッジウェイトがサブディビジョンレベルの影響を受けるため、ウェイト設定後にサブディビジョンレベルを変えるとエッジのRが変わってしまいます。

3Dソフトが独自に開発したサブディビジョンサーフェイスでは、このような問題が発生しにくいアルゴリズムになってたりします。古い時代に開発されたキャットマルクラークにはこのような問題もありますが、機械的な形状で便利に使えるしソフト間でエッジウェイトをやり取りできるので必要に応じて使うといいと思います。

 

参考

CG News

UV-Packer 3 Free リリース

3d-ioが3ds Max用のUVパッキングプラグインUV-Packer 3をリリースしました。以前は有料プラグインでしたが、バージョン3のリリースから無料になりました。
https://www.uv-packer.com/

 

速い。正確。自由。

UV-Packerは、UVクラスターの自動パッキングのための無料の高速で正確なツールです。これはラップされていないポリゴンをソートしてUVシートに圧縮するという面倒な作業に対するワンクリックの答えです。

 

自動化されたワークフロー

UV-Packerは、3Dアーティスト、ゲームスタジオ、アーチビズ、写真測量、業界および3D製品デザイナーのニーズに対応しています。

 

妥協のないパフォーマンスと品質

UV-Packerは、大規模なジオメトリ構造をシングルクリックで取得し、最適なパックされたUV結果にすばやく変換します。

 

UV-Packerの主な利点

写真測量に最適なUVパッカー、高速かつ正確なUVパッキング現代的なデザインに最適化されています。

2020以上のワークフローと市場の要件に合わせて最適化されています。極端なハイポリゴンアセットと数千のUVクラスターを簡単に処理できます。

迅速なパッキング手順

「それは速いです!」数千のポリゴンの重いシーンを数千のUVクラスタでパッキングする場合、他のどの方法よりも高速です。

 

最小限のUV空間オフカット

主な目的は、すべての3Dテクスチャリングワークフローの中核となる問題を解決することです。

「テクスチャの品質を即座に向上させるにはどうすればよいですか?」UVシートの無駄を最小限に抑えることがすべてです。UV-Packerには未使用のUVスペースを最適に利用するための新しい洗練された方法が付属しています。

 

効果的なUVツールを提供するという10年の長い伝統

UV-Packerは、世界中の生産における10年以上の経験を利用しています。何百万もの資産でストレステストが行​​われ、重い生産環境で磨かれました。

参考資料

メッシュ位置を一致させるmodoスクリプト

ソースメッシュをターゲットメッシュに一致させるmodo用のスクリプトが公開されています。

https://gist.github.com/Eterea/a028ce392a8fd41f46922d505406614f

ソースで3頂点を選択し、ターゲットで3頂点を選択して一致させます。スクリプトには3つ引数があります。

  • @etr_match_posrot_smart.py relative
  • @etr_match_posrot_smart.py targeted
  • @etr_match_posrot_smart.py original

 

CG News

3dsMax用のクロスブラシプラグイン「PolyCloth」

3dsMax用のクロスブラシプラグイン「PolyCloth」がリリースれました。価格は$ 59.00です。

https://www.cgtrader.com/3d-models/scripts-plugins/modelling/polycloth

概要

PolyCloth はPolyDesign が開発したマルチスレッドと C++ の物理ベースの 3dsMax 用クロス ブラシ プラグインです。物理ベースの PolyCloth を使用すると、以下のことが可能になります。

  • パワフルなブラシを使用して、メッシュにしわや折り目を追加します。
  • メッシュを布のように動かし、布の挙動をシミュレートします。
  • シュリンクブラシで布の表面を挟む
  • ブラシを使用して布の表面積を増加させ、しわを追加するために展開します。
  • スムースブラシを使用して布のシワを滑らかにする
  • 数秒でクールな布のディテールを素早く追加
  • アーティストの創造性に応じて、さらに多くのことが可能です。
 動作環境
  • 3dsMax 2016
  • 3dsMax 2017
  • 3dsMax 2018
  • 3dsMax 2019
  • 3dsMax 2020
  • 3dsMax 2021

参考資料

KitBash3DがUnreal、Unity、Houdini対応

KitBash3Dが販売する販売するキットバッシュ用の素材集がUnreal、Unity、Houdiniファイルに対応したようです。
https://kitbash3d.com/

KitBash3DはUnrealおよびUnityファイルでゲームエンジン対応しました。

Kits4.0 'Game Engine Ready'リリースには、UnrealとUnityのネイティブファイルのほか、Houdiniと、Blender、C4D、Maya、3ds Maxの多数の大規模なアップグレードが含まれています。

  • PBRマテリアル:メタル/ラフネスワークフローを導入し、3.0レガシーキット用にオプションのSpec/Glossyワークフローを追加しました。全てのテクスチャは8bit 4k PNGに再編集され、16bitのハイトマップが付属しているので、より忠実度が高くなっています。
  • 論理的なパーツ:ジオメトリはよりモジュール化された方法で設定され、これまで以上にキットのカスタマイズが容易になりました。
  • 標準化された相対テクスチャパス:これにより、パスの命名やグループ化に時間を費やす必要がありません。テクスチャセットは各3Dファイルに可能な限り最適なものになるように特別に調整されています。Unreal の ARM テクスチャと Unity の MAD テクスチャがその代表例です。
  • UV:何時間もの繰り返し作業をなくす、重ならないUVを導入しています。
  • UVのセカンドチャンネル:リアルタイムゲームエンジンのベイクライティングに特化したUVのセカンドチャンネルを追加しました。
  • すべてのピースに標準化されたピボット
  • すべてのジオメトリをクリーンアップパス:NGONやコプレーナーフェースなどを除去。
    最も人気のあるキットの中には、現在のキット規格に合わせて一から改造されているものもありますので、お気に入りのキットで作業を続けることができます。
Tips

modoとZBrushを併用する場合の注意点

modoとZBrushを併用する場合の注意点について書いてみます。

ZBrushは他の3Dソフトに比べて独自の制限や動作があります。全てZBrush内で作業が完結するのであれば問題ないかも知れませんが、modoで作成したモデルをZBrushに読み込んで使用すると高確率で制限につまずいてしまいます。基本的な仕様について書いておきます。

 

三角、四角ポリゴン以外は使用しない

ZBrushは三角、四角ポリゴンで構成されるポリメッシュのみ使用可能です。五角形以上のいわゆるN-gonはGoZしても面が生成されることがなく、穴が開いた状態になります。modoのカーブもN-gon扱いになるようです。

 

三角、四角しか使えないのはやや不便に感じますが、メモリ使用量を少なくし処理速度を早くするための仕様ではないか?ということらしいです。

 

UV座標の0.0、1.0上に頂点を配置してはいけない

ZBrushは0.0、1.0上の頂点を結合してしまい、正常なマップが作成できなくなります。3DソフトのプリミティブはUV空間を広く使うように展開されていますが、プリミティブをZBrushに持ち込んで使用する場合は注意が必要です。

 

UVを少し小さくスケールすると、UVを正しく使用することができます。

 

 

マルチUVに対応してない

ZBrushはマルチUV、複数のUVデータの読みこみに対応していません。modo、3dsMax、Mayaなど多くの3Dソフトは1つのメッシュに複数のUVマップを作成することができますが、ZBrushでは読み込めるUVマップは1つに制限されています。

  • modoから複数のUVマップを持ったデータをGoZした場合は、どれか1マップ転送されます。メッシュの一部にしかUVがない場合、UVは転送されません。
  • MayaからGoZした場合は「既定のUVセット」のみ転送されます。
  • 3ds MaxからGoZした場合は「マップチャンネル 1」を転送します。

ZBrushでマルチUVを使用したい場合にはUDIMのように、1つのUVマップにメッシュを配置して使用します。

 

 

久々にZBrush使おうとすると毎回基本的なところを忘れてしまうので、忘れないようにメモしておこうと思いました。

CG News

ZBrush 2021リリース

ZBrush 2021がリリースされました。クロスダイナミクスが搭載されて、リアルな布を手軽にスカルプトできるようになりました。動作も軽くて楽しいです。

https://pixologic.com/features/

 

ZBrush 2021

ZBrush 2021では、制御されたクロススカルプティングやダイナミックサブディビジョン機能の再検討に加えて、ダイナミクスシステムが導入されています。
また、ZModelerに新機能を追加したほか、ZBrushにiMage 3Dサポートを導入し、ZBrushCoreMiniで作成したネイティブフォーマットのファイルを開くことができるようになりました。

ZBrushエンジン自体も強化され、全体的にパフォーマンスを向上させる方法を見つけました。ZBrush 2021では、よりスムーズなスカルプトが可能になり、DynaMeshなどの他の操作にかかる時間も短縮されています。

ダイナミクスの紹介

 

ダイナミクスシステムを使って、あらゆるサーフェスを収縮、拡張、膨らませたり、重力でドレープさせたりすることができ、スカルプティングを強化できます。
マスキングを使ってメッシュの一部をピンで固定して注目点を作ったり、マスクを使って独自のインタラクションを作成して、表面を自分で転がすことができます。低解像度の平面でも、リアルな布の折り目を作成できます。

メッシュを配置し、コリジョンボリュームと任意のコントロールをオンにしてから、ZBrushが他の見えているメッシュの上に布メッシュをドレープしていく様子を見てみましょう。

 

制御された布スカルプト

 

ダイナミクスエンジンを使用した特別なブラシが導入され、布の表面と対話するためのユニークな機能が提供されています。

例えば、折り目の位置を選択したり、ジオメトリを掴んでワークスペース内で自由に動かし、リアルタイムで折り目を作成したりすることができます。
クロスツイスターブラシは、ねじれた布をシミュレートします。
クロスウィンドは、方向性のある動きを可能にします。
クロスピンチトレイルは、ブラシのストロークがサーフェス上のどこにあっても、布を挟んで縫い目を作ります。

 

ダイナミックサブディビジョンの再表示

ダイナミックサブディビジョンでは、ベースとなるポリゴン数を増やすことなくサブディビジョンレベルをプレビューすることができます。

この機能は平面ジオメトリの任意の単一ピースに調整可能な厚さを追加することができるようになり、さらに一歩進んだものとなりました。

ジオメトリの一部を完全にインタラクティブなインスタンスとして各ポリゴンに追加することもできます。
プリセットのライブラリから選択して、表面をキャンバスやデニムジーンズのように見せることができます。
鎧の一部を選択して、繰り返し使用できるチェーンメールを作成することもできます。

 

パフォーマンス

ZBrush には、さらに多くのパフォーマンス強化が追加されました。他の多くの人気のある機能とともに、スカルプトブラシの背後にあるシステムを再検討しました。
高ポリゴンモデルでのレスポンスタイムの高速化、DynaMeshの速度向上など、すべてのセクターで速度が向上しました。
さらにマルチスレッドをスマートに管理するための新しいOptimalオプションは、最高のパフォーマンスを実現するために、お使いのシステムでZBrushが必要とする適切な量のスレッドを常に維持します。

 

ZModelerがアップグレード

すでに強力なZModelerブラシシステムに新機能が追加されました。

エッジの押し出し

想像通りの平面を構築したり、既存のスカルプトにフィットする全く新しいジオメトリを構築したりするのが、これまでになく簡単になりました。

新しいエッジ押し出し機能では、1つのエッジ、複数のエッジ、完全なエッジループやポリループを使って、インタラクティブなエッジスナップを使ってビルドすることができます。エッジを押し出して隣接する面にスナップするだけでなく、SnapToSurfaceを有効にして、新しいエッジを下地のサーフェスにスナップできるようにすることもできます。

 

等間隔インセット

等距離インセットを使用すると、単一のポリゴンまたはポリゴンの領域をインセットすることができ、新しく作成されたすべてのトポロジーは既存のトポロジーから等距離になります。その結果、完璧なポリゴンの新しいセットができあがります。

 

よく見ると

モデルの基礎となるジオメトリが表示されます。

 

ナノメッシュの改造

ZBrush 2021ではNanoMeshの強力なインスタンスシステムをさらに拡張し、シーン内でインスタンスメッシュを編集できるようになりました。スプリットスクリーンとNanoMeshを組み合わせることで、面倒な数のポリゴンを追加することなく、作成や調整が可能になります。

 

iMage3DのGIFとPNGフォーマット

iMage 3Dフォーマットは、あなたの作品のイメージと3Dモデルの両方を、1つのGIFまたはPNGファイルにまとめて他の人と共有するユニークな方法を提供します。このファイルは、通常の2Dイメージとして表示され、ZBrushで開くと、すべてのサブツールで完全なモデルを編集する準備ができているウェブサイトに掲載することができます。

 

リリースノート

  • 可変カーソルサイズ調整
  • ファイル拡張子 Collada (DAE) と Alembic (ABC) のインポート/エクスポート機能
  • ポリゴンオプションに ZModeler Set Camera Perpendicular オプションが追加されました。
  • ZModelerの追加で一時的に白いポリグループを塗るようにしました。(ZModelerのポリゴンモードでALTキーを押しながら)
  • ファイル拡張子 Collada (DAE)、Alembic (ABC) と 3MF のインポート/エクスポート機能
  • 最適なパフォーマンスの強化が追加されました
  • ギズモ精密ムーブメント追加
  • 3DSMAX 2021に向けてGoZアップデート
  • いくつかのマクロの追加
  • Spotlight Snapshot 3Dはポリグループ化としてカラーを処理するようになりました。
  • ストロークの追加
    • ジッター機能により、アルファがストロークのパスに沿って跳ね返るようになります。
    • 不完全性機能は、ストロークにサーフェスノイズを適用します。
Tips

Oculus Questでmodo VR使ってみた

Oculus QuestとOculus Linkを使用してmodo VR使ってみた。使用方法は簡単です。Oculus Linkを使用してPCにQuestを接続した状態でmodoを起動し、VRタブをクリックするとQuestにmodoのビューポートが表示されます。

グラフィックボードがGeForce RTX 2060で画面解像度3840×2160で表示すると描画が崩れてしまうため、2560×1440表示で使用して画面キャプチャしました。

VRを使用した感想は没入感があって思いのほか楽しいです。modoVRはツールUIがVR専用のため、ツールパレットを覚え直しになるのが面倒でVRをモデリングに使用したいとは思いませんでしたが、モデル確認に使用するのはアリだと思いました。

 

教室

Webのホームに使用してるモデルです。未調整ですが意外といい感じに見えました。

 

キャラクターモデル

現在モデリングしてるオリジナルキャラです。サブディビを使用したポリゴン数の多いモデルのためか、モデルに接近したときに描画遅延が発生しました。影やポリゴン描画の精度が落ちるようです。

フィギュアを見るようにモデルを確認できるのが楽しい。

 

modo VRの練習

画面の回転やズームは一般的なVR操作なので普通に使えます。モデルの編集は難しいですが、モデルビューワと割り切って使うには十分楽しめそう。

 

Oculus Questのディスプレイは2,880×1,600 (片目1,440×1,600) なので、もう少し低い解像度で表示してもよかったかもしれません。modo起動したままPCの画面解像度を変更したらPCがフリーズしたので細かなテストはしませんでした。

VRゴーグルがあるなら一度試してみると楽しいかもしれません。

Tips

modoでUDIMを使う方法

modoのUDIMの使い方について書いてみます。AfterEffectsやPremiereなどの動画編集ソフトでは連番画像を1つの素材として扱いますが、UDIMを使用すると複数のテクスチャ画像を1つの画像レイヤーとして扱うことができるので便利です。

 

UDIMとは

UDIM (U-Dimensionの略称)は、UV空間の整数ブロックに番号を割り振って管理する方法です。UVブロックと画像は1001、1002、1003...のような4桁の番号を使用してペアとして扱い管理されます。

UDIMは既存のUV作業工程と大きく変わりません。一般的なUVは0~1の範囲にメッシュを配置していましたが、UDIMでは0~1の外側の領域も使用します。UV空間の0~1の範囲を1001、1~2の範囲を1002のように番号で管理します。画像も同様にUV範囲に対応した番号をファイル名に含めることでUVとペアとして管理する仕組みです。

 

UVブロック

 

画像のファイル名称

 

UDIMの歴史は思いのほか古く、Weta Digitalが2002年公開の映画「ロード・オブ・ザ・リング/二つの塔」制作時に開発しました。その後Weta DigitalのインハウスツールだったMARIMudboxが一般販売されたことから、広く使用されることになります。

 

UDIMのメリット

UDIMのメリットは大きく2つあります。

  • 高解像度の画像を1枚だけ使う代わりに、複数の画像を使用できる
  • 単一の画像レイヤーとして管理できる

 

複数の画像を使用して高解像度化

高解像度の画像を1枚だけ使う代わりに、そこそこの大きさの画像をいくつも並べて、結果的に解像度の高いテクスチャにすることができます。
PhotoShop等で画像を編集するときも高解像度の画像1枚より、そこそこの大きさの画像複数枚のほうが取り回しが楽です。

 

1枚の画像レイヤーとして管理

複数のUVマップを使用する方法だと、画像レイヤーが複数必要でした。または、画像ごとにマテリアルを分ける必要がありました。UDIMを使用すると1レイヤーで済むようになり管理が楽になります。

 

複数のUVマップを使用した例(従来のUV設定方法)

1つのメッシュ内で複数のUVマップを使用した場合、シェーダーツリーではUVマップと同じ数の画像レイヤーが必要になります。画像レイヤーでは1枚ごとに使用するUVマップを指定する必要があり、画像枚数が多いと設定するのが手間です。

 

UDIMを使用した例

UDIMを使用した場合、シェーダーツリーは画像レイヤー1枚ですみます。下の画像ではディフューズ色のみの設定ですが、スペキュラー、ディスプレイスメント、法線など複数種類のマップを使用する場合は、UDIMを使用した方が管理が楽になります。

UDIMは元々は高解像度で大量のテクスチャを使用するWetaのインハウスツールに適した仕様として考えられたのだと思いますが、ゲームエンジンでもテクスチャのストリーミング等でメモリ使用量を少なくできるなどのメリットがあるようです。

 

modoでUDIM画像を読み込む方法

UDIM画像の読み込みには「新規UDMIの読み込み」を使用します。

  1. シェーダーツリー の「レイヤー追加」から「新規UDMIの読み込み」をクリックしします。
  2. ファイルオープンダイアログから、使用する画像を選択して「開く」をクリックします。
    開いた画像は自動的にフォルダにまとめられ「ファイル名称からUDIM番号を設定」が実行されます。
    画像レイヤーでは「画像」にフォルダが設定されることにより、UDIMとして動作するようになります。

 

UDIMはZBrushのように複数のUVマップに対応していないソフトでも使用できるので覚えておくと便利です。

ゲームではUDIMが使われることは少ないようですが、先日Substance PainterがUDIMに対応したので今後ゲームでの利用も増えたりするかもしれません。

 

参考

UDIMワークフロー
https://learn.foundry.com/modo/14.0/content/help/pages/uving/udim_workflow.html

Tips

GoZ for Modoのインストール方法と使用方法

たまにしかインストールしないので、GoZ for Modoのインストール方法をメモしときます。今回はmodo 14.0とZBrush 2020.1を使用しました。

 

GoZ for Modoのインストール方法

GoZ for Modoとは

GoZはmodoとZBrush間でメッシュやテクスチャをワンクリックで転送できる便利ツールです。901以前はPixologicがmodo用のGoZを開発していましたが、10.1以降はFoundryがGoZを開発しています。

modo 10.1以降用のインストーラー

http://modogroup.jp/modo/free_kits/goz

modo 901 用のインストーラー

http://download.pixologic01.com/download.php?f=Plugins/ZBrush4R7-WIN/GoZ_for_MODO901SP1_Installer_WIN.exe

 

GoZ for Modo インストール手順

インストールの流れは以下の通りです。

  1. ZBrushのインストール
  2. GoZ for Modoのインストール
  3. GoZで使用するmodoのパスを設定

 

1. ZBrushのインストール

GoZを使用するにはZBrushとmodoがインストールされている必要があります。

 

2. GoZ for Modoのインストール

GoZ_win.exeを使用してGoZ for Modoをインストールします。

 

3. GoZで使用するmodoのパスを設定

ZBrushを起動して「環境設定」で「Path to Modo(New)」をクリックし、一覧から使用するmodo バージョンを選択します。

ZBrushを再起動すればGoZが使用できるようになります。

 

GoZ for Modoがインストールされていない場合は、「Path to Modo(New)」は表示されません。ZBrushを起動した状態でGoZ for Modoをインストールした場合は、ZBrushを再起動する必要があります。

Mayaや3dsMaxはmodoと異なり、ZBrushのパス設定ボタンからGoZインストーラを起動することができます。

 

 

GoZ for Modoの使用方法

modoからZBrush

GoZ for ModoがmodoのKitパスにインストールされている場合、「modoツールバー」の右端にあるキットボタン内にGoZが表示されます。

 

適当にTeapotを作成してGoZボタンを押すと、ZBrushにTeapotを転送することができます。

 

 

ZBrushからmodo

ZBrushからmodoへデータを転送するにはGoZボタンを押せばいいのですが、せっかくなのでmodoから転送したTeapotを「ディバイド」して適当にスカルプトしてみます。

 

スカルプトが完了したら「SubDiv」を1にして「ディスプレイスメントマップ作製」を実行します。

 

「ツール」のGoZボタン押すと、modoにTeapotとディスプレイスメントマップが転送されます。modoのデフォルトのレンダリング設定では「マイクロポリゴンディスプレイスメント」の評価間隔が荒いので、小さな値を設定します。

 

新規シーンにGoZした場合、アイテムとマテリアルは「Teapot_GoZ」のようなグループにまとめられます。

 

GoZの保存先のディレクトリ

GoZで使用されるマップやメッシュのデータは以下のディレクトリに保存されています。

C:\Users\Public\Pixologic\GoZProjects\Default

 

 

GoZをインストールしておくとメッシュとマップを転送することができるので便利です。

Tips

modoで糸を編む表現

modoで糸やバスケットを編む表現を作ってみた。

 

サンプルファイル

スケマティックはこんな感じです。

Spiral Curveでカーブを1本作って、TransformやTwistでアニメーションさせます。そのカーブをMerge Meshesを使って別メッシュにコピー、Radial Arrayを使ってカーブのアニメーションを複製します。

レンダリングは「カーブをレンダリング」を使用します。カーブをレンダリングしてる関係で糸のバンプがずれて動いてしまってます。
オプションの「カーブをポリゴンとしてレンダー」を使うとUV指定でズレないように設定できるのですが、プロシージャルのノイズを使ったのが原因なのかUVの切れ目が目立ったので今回はずれを気にしないことにしました。

 

バスケット

サンプルファイル

スケマティックはこんな感じです。

バスケットの編み目の形状のカーブを1つ作りArrayで面状に複製しています。編み目がランダムに伸びて見えるようにカーブのDeleteにLinear FalloffとTexture Falloffを使用しました。そのカーブを元にCurve Sweepで面を作成し、Thickenで押し出します。

バスケットは思い通りに作れませんでした。プロシージャルモデリングでランダムな速度で一方向に伸び続けるという設定が上手く作れなくて、単純にノイズで切り抜いたようになってしまいました。

プロシージャルリボンの作り方」のようにパーティクルを使ってカーブを生成したほうが、イメージした動きが作れそうです。

 

ニットパターンも作ったのですが、モディファイヤ依存ループエラーが多発するシーンになってしまい調整を断念しました。

以前も同じ問題に遭遇したのですが、Texture Falloffに接続したテクスチャにFalloffを設定していると、何かのタイミングでループするというエラーが出てしまいノードが動作しなくなってしまいます。テクスチャを削除すれば一時的に改善することもあるのですが、何か問題が潜んでる気がします。

 

参考

Tips

modoでプロシージャルリボンの作り方

modoでプロシージャルリボンの作り方について書いてみます。

リボンのような形状を作る場合は「プロシージャルロープの作り方」と同じようにCurve Sweepを使う方法や、スプラインデフォーマを使う方法が定番だと思います。
今回は違うアプローチとしてパーティクルを使う方法を紹介してみたいと思います。パーティクルを使用しているので、フォースを使用して動きを制御することができます。

サンプルファイル

スケマティックはこんな感じです。

 

  1.  パーティクルエミッターを使用して文字の軌跡を作成します。
    今回はエミッターに直接アニメーションを設定していますが、文字形状のパスを作ってエミッターをパスコンストレイントしてアニメーションする方が動きが綺麗になるかもしれません。
  2. Particles to Array と Create Polygons を使ってパーティクルシミュレーションからカーブを作成します。
  3. カーブを Polygon Extrude を使って押し出し帯状にします。

リボンの小さな揺れはTransform Effector と Texture Falloff を使ってます。リボンが浮き上がる動きは、Linear Force と Turbulence Force を使い、Linear Falloff でタイミングを調節してます。

リボンに縁取りを設定するためプロシージャルUVを使用してみましたが、メッシュが縦長になると展開方向が回転してしまいました。平面投影してるはずなのに、どうして回転するのか謎です。

 

プロシージャルメッシュを直接ソフトボディとして使用することができれば、もっとリアルなリボンの動きを設定できると思います。modo 14.0ではプロシージャルメッシュをソフトボディで使うことができないのが残念です。将来的に対応してくれると嬉しいですね。

 

参考

Tips

modoでカーブから面を作成する方法

modoでカーブから面を押し出す方法について書いてみます。

 

Illustratorで作成したパスや、パーティクルで生成したカーブから面を押し出したいことがあります。
そんなときはPolygon Extrudeを使用します。Curve Rebuildを使用すると、押し出す面の細かさを制御することができます。

 

面を作成してから押し出したい場合はFreezeを使用します。

 

たまにカーブから面を立ち上げたい時があるのですが、エッジの拡張だっけ?ベベルだっけ?と毎回忘れるので記事にして残しておこうと思いました。

以前作ったプロシージャル等高線のカーブを押し出してみた。

Tips

modoのプロシージャルモデリングをダイレクトモデリングツールで編集する方法

modoのプロシージャルモデリングを使用して作成したメッシュを、ダイレクトモデリングツールで編集する方法についてみます。

 

modoにはメッシュを直接編集する「ダイレクトモデリング」と、手続き的に編集する「プロシージャルモデリング」の2種類のモデリング手法があります。

プロシージャルモデリングは後からベベルの幅などを再編集できて便利ですが、ダイレクトモデリング用のツールで編集しようとすると「従来のモデリングツールで編集することはできません」という警告が表示され編集することができません。

 

プロシージャルモデリングをダイレクトモデリング用のツールで編集したい場合は、ポリゴンを選択してコピー(Ctrl+C)、ペースト(trl+V)を使うと便利です。

 

アイテムリストから右クリックメニューで「メッシュオペレーションをフリーズ」から「フリーズ」しましょうと紹介されることが多い気がしますが、メニューから「フリーズ」コマンドを探して実行するのが少し面倒に感じます。

コピーペーストであればショートカットで頻繁に使うので、より直感的にプロシージャルからダイレクトモデリングに移行できるのでお勧めです。

 

メッシュがコピーできることを知ってれば、Merge Meshesを使用してReplicatorで複製したメッシュをコピーするような使い方もできるので便利だと思います。

 

参考

参考資料

PIFuHD:高解像度3D人間のデジタル化のためのマルチレベルピクセルアライン暗黙関数

「PIFuHD」はディープラーニングを使用して、1枚の画像から高解像度の3Dモデルを生成する技術だそうです。
ディープラーニング形の画像生成は解像度が低い物が多かったですが、高解像度の画像を活用できるところが有望な感じしますね。githubでソースが公開されてるようです。
https://github.com/facebookresearch/pifuhd
https://shunsukesaito.github.io/PIFuHD/

後処理なしで元の入力のディテールを保持しながら、これまでにないほど高い1k画像解像度でピクセル配置方法で、衣服を着た人間の3Dジオメトリを推測するマルチレベルフレームワークを紹介します。

 

概要

画像ベースの3D人間の形状推定における最近の進歩は、ディープニューラルネットワークによって提供される表現力の大幅な改善によって推進されてきました。現在のアプローチは現実世界の設定で可能性を実証していますが、入力画像にしばしば存在する詳細レベルで再構成を生成することはできません。

この制限は主に2つの相反する要件を形成していると私たちは主張します。正確な予測には大きなコンテキストが必要ですが、正確な予測には高解像度が必要です。現在のハードウェアのメモリ制限により、以前のアプローチでは、入力として低解像度の画像を使用して大きな空間コンテキストをカバーし、結果として精度の低い(または低解像度の)3D推定を生成する傾向があります。エンドツーエンドのトレーニングが可能なマルチレベルアーキテクチャを策定することにより、この制限に対処します。

粗いレベルでは画像全体を低い解像度で観察し、全体論的な推論に焦点を当てます。これは、より高解像度の画像を観察することによって非常に詳細なジオメトリを推定する細かいレベルにコンテキストを提供します。私たちのアプローチは、1k解像度の入力画像を完全に活用することにより、単一画像の人間の形状の再構成に関する既存の最先端技術を大幅に上回っていることを示しています。