2018年7月28日

Modo to 3ds max

久しぶりのModo。
今回はModoデータを3ds maxへ互換したかっただけなのですが、
どうしてもマテリアル情報がちゃんと互換されません...ビューポートには表示されているのに...。

原因は元がVrayマテリアルだからじゃないかと疑っています。(※Advanced Materialが一つも出てこないので。)
3ds maxにはFBX互換ですが、とにかく、テクスチャファイル名が出てこないのが痛いです。救いなのは、マテリアル名がちゃんと互換されていること。


そこで、テクスチャだけでも、Modoのスクリプティングでなんとかしようと、ちょっと勉強してみました。
正直、初めてでよくわからかったのですが、なんとか、マテリアル名とテクスチャノードらしきものの名前のリストを出力できました。
テクスチャファイル自体のパスには辿り着けなかったのですが、このテクスチャノードの名前は、画像ファイル名と一緒らしいので、これは使えそうです。







あとは、3ds max側でMAXScriptを使ってなんとかすれば、マテリアルにテクスチャノードを付けるくらいは出来るはずです。
最悪、うまくスクリプトを作れなくても、一覧があるので、手動でなんとか出来ます。


2018年7月7日

"色が違う!"



色の修正指示は、正直、つらいです。
最近は写真のごとくキレイなCGが作れるわけですが、それでも「指定した色と違う!」といったフィードバックを貰うことがあります。
そりゃそうです。CGなんですから


でも、これがお客様には理解しにくい...。


たとえ、現物を写真に撮ったって '指定色' になんかなりませんし、RGB値を指定したって、同じ色にはなりません。
CGや写真をやる人には常識でも、クライアントにはなかなかご理解頂けないことがあります。


写真に撮ると

そもそも、3D空間に配置されたモノを撮ると、その空間にある様々な要素の影響を受けて '見た目' の色が違ってきます。

照明、床、壁、天井などの周囲の環境や物、外光、陰影などに加えて、カメラの露出設定、ホワイトバランス、カメラアングルなど様々なものが影響を与えます。
これはCGのカメラでも基本的に同じです。

CGの場合は、空間の影響を模倣するのにHDRIライティングという手法を使うことがありますが、これもまた非常に大きく影響を与えます。

光源の色

見た目の色は光源次第でどんな色にでも寄ります。
白いものを '白い' と認識するのは人間の脳です。でも実際は白くないです。
大抵は光源の影響を受けるからです。


表面材質

大抵の素材には '反射' があります。
これもモノの見た目に大きく影響を与えます。
拡散反射が強ければ白っぽくなるし、鏡面反射が強ければ、周囲が映り込んで違う色に見えてきます。
金属など特殊な反射をするものでは、さらに違った見え方をします。
表面の仕上げの差も大きく影響します。
粗い表面仕上げなのか、ツルツルの鏡面仕上げなのか等。


カラーブリーディング

3D空間にある物体は、互いに表面の拡散反射光を受けて、その色味を帯びます。
たとえば、明るいフローリングの部屋の、白い塗装の天井がオレンジがかって見えたりします。
白は、特に影響を受けやすいです。


露出調整

最近のレンダラーは、高精度のシミュレーションを実現するために、人間の目で認識できる範囲を遥かに超えた領域を含めて演算を行なっています。その結果として、いわゆるHDRという画像を生成します。(スマホのカメラでも撮れるアレです。)
これを普通の絵として出力するには、普通のディスプレイで表示できる適切な露出範囲に収まるように補正することになります。(トーンマッピングと言います。)この時、どの程度の明るさに出すかは、作業者の感覚でしかないので、画像の明度に影響を与えます。




そもそも、正しい色を見ているか?

ディスプレイ

'見ている色' が違うという場合もあります。
クライアントと、我々が使っているディスプレイが違うからです。
ディスプレイというものは、メーカーや個々の製品で出力される色が違います。

また、液晶ディスプレイの場合、ディスプレイを見ている角度がちょっと違っただけでも、大きく色が違って見えます。
ノートPCなど輝度が低いディスプレイだと、かなり暗く見えたりもします。
そんな状況でクライアントと色の話しをしても混乱するだけです。

印刷

プリントアウトしたものにチェックを入れてくれるクライアントもいます。
一般的に、ディスプレイ以上に違った色になってしまいます。
正直、オフィスの複合機で出した印刷物を見て、色の話をされても困ります...。


カラープロファイル

より厳密な色管理が必要な現場では、'カラープロファイル' という仕組みを使って、制作工程の上流から下流まで一貫した色を使えるようにします。
環境に左右されない色管理ができるようにするためです。

ただし、カラープロファイルに基づいて正しく表示できる環境がなければ、正しい色を見ることは出来ません。
正しくカラーキャリブレーションされたディスプレイで、ちゃんとした画像処理ソフトで開いている人だけが見ることができます。


ただ、そもそも、街場の建築CG屋で、そこまで徹底してやってるところはほとんどないと思いますが...。



CMYK変換

デジタル画像というのは、使用される分野によって、色空間をどのように定義するかが異なります。
大きく、RGBとCMYKの2つに分かれます。(*Red, Green, Blue) (*Cyan, Magenta, Yellow, Black)

CGなど映像業界ではRGBが使われますが、
出版物などインクを使う媒体ではCMYKを使うのが一般的です。
さらに、各業界で異なるカラープロファイルが使われたりします。

CGを出版物に使う場合は、必ずCMYKに変換することになります。
このCMYK変換をすると、色空間の違いから、色味が変わってしまいます。
これをイメージ通りの色に近づけるのは印刷屋さんの仕事です。











じゃあ、どうやってCG作ってんだよ?
ってことになると思います...。


雰囲気です。


正直、最終的に 'い雰囲気の絵' に仕上がれば良しと思っています。
そもそも、CGなんて、空間を見るのとは印象が違うし、所詮、ただのグラフィック。
CG屋の納品としては、クライアントが納得するような 'いい感じの絵' が出来ればそれでよいと思っています。


もちろん、準備の段階では、出来るだけ指定色や資料に近づくように注意を払います。
日塗工で指定されれば、RGB値を検索しますし、
画像が提供されれば、それからテクスチャを作ります。
現物サンプルがあれば、スキャンしたりします。
でも、どの方法でマテリアルを準備しても、様々な理由で完璧な再現は難しいです。


逆に、レンダリングされた画像を、サンプルチップの色味に近づけようと強引にマテリアルを調整してみたことがあるのですが、正直、'不自然な感じ' に仕上がりました。周囲の影響を無視して色味だけ合わせたからです。


結局、雰囲気だけ信じたほうがいい感じに仕上がります。









2018年7月3日

どのくらい端折るべきか?

モデリングをしていると、ついつい、作り込みすぎてしまうことがあります。
特に家具とか造作なんかはハマりやすいです。
無駄に細かく作ってしまいがちです...。


でも、それがレンダリングされるときには、1ピクセルにも満たないディテールだった
り、動画の中でほんのコンマ数秒見えるだけだったりします。
冷静に考えれば、不要なディテールです。無駄にデータを重くしても、何もいいことはありません。やり過ぎは、ただの時間の無駄使い。労力的にもレンダリング時間的にも無駄です。

つまり、モデラーのスキルとして、"いかに作らないか" もまた、重要なのです。
不要なディテールを端折って、手早くモデリングすることが出来るようになれば一人前です。



LOD(Level of Details

建築の場合、マクロ的視点とミクロ的視点が同時に必要です。
鳥瞰や外観と同時に、内観パースも必要なときは、カメラから非常に近いこともありえます。そういう場合は、ある程度のディテールが必要だったりします。

設計上も、"ここのディテールが見たい!" といった要望があるかもしれません。
営業的にも、”ここをお施主様に見せたい” ということもあるでしょう。
ついでに、制作コスト的なことも...。


建築CGモデラーは、こうした諸々の事情を踏まえ、どのくらいの精度で作るべきかを判断しなければなりません。


とはいえ、経験が浅いと、この判断がなかなか難しいんですよね...。
新人を指導するときに、もっとも難しいポイントの一つです。













2018年4月4日

ポリゴンモデルをプロダクト系で使えるか?


ウチの会社は建築だけじゃなく、少しですがプロダクト系のモデリングもします。
基本的にビジュアライゼーション用のモデルなので、Mayaや3ds maxで作ったポリゴンモデルです。
一方、プロダクト系ではNURBSやSOLID(Brep)といった、製造系のCADと相性がいいモデル表現形式が使われます。ParasolidとかACISといったソリッドモデリングカーネルを使ったCAD製品が多いと思います。


稀に、ウチで作ったポリゴンモデルをIGESかSTEPに変換して欲しいと依頼されることがあります。
新製品の開発や、金型制作に活かしたいとのことなのですが...。


結論から言って、一般的には、ポリゴンモデルは使えないと思います。




金型

一般的に、ポリゴンメッシュを金型製作に使うなんて無謀です。
ポリゴンメッシュのジオメリは、'カクカクの立体' です。一見、滑らかな曲面に見えても、それはスムーズシェーディングがかかって、そう見えているだけです。3Dプリンティングならまだしも、工作機に渡して出力できるようなものではないと思います。


リバースエンジニアリング

’現物の3Dスキャンから点群データを取得し、三角形パッチを生成してポリゴンメッシュにする。
そこにNURBSサーフェースを張って機械系3DCADでも扱えるデータとして書き出す。’
このようなリバースエンジニアリングの手法の一部を用いれば、ポリゴンモデルを機械系3DCADでも使えるように出来ます。
ただし、扱いやすい構成のサーフェースパッチが自動で出来あがるわけではないので、その後がなかなか大変だと思います。
そもそも、CG屋が作ったポリゴンモデルなんて大した精度じゃないので、それを元に作ったモデルを、'使える' と言えるのかどうか...。


サブディビジョンモデリング

Autodesk SpeedFormをご存知でしょうか?
ローポリのサブディビジョンモデリングみたいにNURBS曲面を作ることが出来きます。
元々、RhinocerosのアドオンだったT-Splineを取り込んだものですが、非常に自由度の高い曲面モデリングが可能です。
このような製品の中には、ポリゴンメッシュを取り込んでNURBSやBREPに変換出来きるものがあります。
この工程を経れば金型製作などの製造工程へデータを互換出来るかもしれません。
ただし、これも前述の理由で、精度的にはどうなのか?というものです。


Mesh to T-Spline

そもそも、ポリゴンメッシュの状態によっては、ちゃんと変換できません。
たとえば、レンダリング用のハイポリモデルとか、三角形や多角形のポリゴンをたくさん含むとか、そういうメッシュの変換は無理だと思います。というか、ツールの仕様上、あまり意味が無いです。
まず、適度なローポリでないと、その後の修正がほとんど出来ません。
さらに、整ったエッジフローでないと、形状が大きく崩れてしまいます。
新製品開発に使おうと考えるなら、メッシュの構成はとても重要です。

Quad

大変相性のいい形状です。
つまり、タテ・ヨコの格子状に編まれたようなメッシュの状態です。

Tri

意図した形状にならない場合があります。

N-Gon

意図した形状にならない場合があります。



メッシュをT-Splineに変換したもの


パラメトリックじゃない

なんとか変換したとしても、パラメトリックでもない3次元曲面のモデルで、どうやって寸法変更等の修正に対応するのか?と考えると、悩んでしまうかもしれません。せいぜいスケールギズモで伸縮するくらいだと思います。


リトポロジー

そのままでは使えないということなら、メッシュを下絵に、3DCADのネイティブツールでトレースすることになります。
CG業界では 'リトポ' と呼びます。
形状にもよると思いますが、これはなかなか面倒な作業です。
それなら、最初からきっちり寸法拘束を付けならがらモデリングしたほうが、結局、早いのでは?と思ってしまいます。


BREPに変換すると、変なパッチになっている



以上の理由から、ポリゴンモデルがあるからと言って、単純にそれを設計・製造で使えるわけではないのです。

2018年3月9日

3ds max 2017

ここのところ、ずーと3ds max 2017で仕事をしていました。
おかげで、だいぶ慣れました。
プラグインのせいなのか、Mayaに比べて不安定なのがイラッとしますが、まあ悪くないです。色々便利なところもあります。
MayaのようにMELに頼らなくても出来ることが多いし、なんせ色々簡単です。

アプリとしては、何か、後付機能山盛りで、まとまってなくて美しくない感じがします。
ただ、強力なツールであることには違いありません。

CAD

比較的、CADとの相性がいいので設計向きなんでしょうね。
Revitファイルなんか驚くほど簡単に取り込めます。
日本語のレイヤ名も問題ないので、日本語の入ったCADデータの取り込みも煩わしくないです。
DWGも結構うまく取り込めます。ただ、今回ちょっと気になったのは、円弧を含むポリラインが崩れたりする点です。取り込み前に分解しておくといいですね。

MAXScript

いくら便利機能の多い3ds maxといえども、仕事となると、いろいろ特定の作業用のツールが欲しくなります。
今の3ds maxでは、スクリプティングにPythonも使えるわけですが、もっぱら、MAXScriptです。
ネットに大量にあるコードの断片のおかげでスクリプティングが捗ります。ホント助かりますね。

Iray Plugin

今回の仕事ではレンダラーにIrayを使いました。
やっぱ、GPUレンダラーは早くて、簡単でキレイで最高です!
MentalRayなんてやってられません...。
とは言え、VCA様様です。
VCAは超強力な"モンスターGPUマシン"で、ノイズの無い美しいレンダリング画像が数分で出ます!



2018年1月6日

Revit : ファミリテンプレートの選択

ファミリを作るとき、大事なのがファミリテンプレートの選択です。
Revitのテンプレートは、ファミリの振る舞いを決めるとても重要なものです。
ここで注意しなければいけないのが、後から簡単に変えられないということです。
先日、このことでちょっと失敗したので、書いておきます。


ホスト

例えば壁基準のテンプレートを使えば、壁に吸い付き、壁の上を移動しながら位置決め出来るファミリが出来ます。
これを、壁を"ホスト"とするファミリといいます。
これはホストである壁が無いと配置できません。

天井基準の テンプレートから作ったファミリは、天井をホストとし、天井にだけ配置出来ます。
床基準のテンプレートから作ったファミリは、床をホストとし、床の上にだけ配置出来ます。
そして、ホストを持たないタイプのテンプレートを使えば、どこにでも配置出来る代わりに、面の上を動かして位置決めするなどといった、スマートな振る舞いが出来ません。


置換

プロジェクト上でファミリを置き換えたい時、プロパティのプルダウンメニューから置換先のファミリを選択する方法があります。
置換先のファミリがそのプロジェクトにすでに読み込まれてさえいれば、一番簡単で早い方法だと思います。

でもこの方法で置換出来ない場合があります。
それは、ホストの違うテンプレートで作られたファミリ同士の置換です。
また、ホストが同じでも、カテゴリが違う場合の置換もできません。

たとえば、家具を作るときはどのテンプレートを選択すべきか?
テーブルや椅子なら、大抵、床に置かれるわけだから、床基準でよくないか?とも思いますが、設計上は、さまざまなシチュエーションが考えられます。
床に置かない場合だってありえます。棚に椅子を飾って展示するインテリアショップだってあります。
ステップフロアーだったりすると、床基準のほうが配置しやすいかもしれません。( ※ステップフロアーを"床"で作った場合)

Revitの使い方次第なのですが、置換を多用するようなら、ファミリテンプレートを統一しておかないといけません。


テンプレートを変更したい場合

じゃあ、間違えてしまったので、後から変更したいという場合、どうしたらよいのか?
最初に書いたように、後からは簡単に修正できません。
カテゴリは修正できますが、ホストは変えられません。
プロパティで簡単に変更出来たらいいのですが、今のところそれは出来ません。

検索してみると、ジオメトリだけでも変換してしまおうとする例が見つかりましたが、ファミリパラメータは保持されないし、工程もちょっと面倒。基本的に変換はできないと思ったほうがいいです。

Revit APIを使えば、面基準のファミリに変換することはできるかもしれません。ただ、それだけです。今のところ、その他の変換はできません。

結局、

手動でコピペするのが一番早いようです。
たとえば、床基準のファミリを、ホスト無しの一般テンプレートにしたい場合は、
モデルを新規に作ったファミリファイルにコピペ、位置修正した後、パラメーターの修正、関連付けなどを手動でやる必要があります。