2023年8月19日

機械系3DCAD入門 : Fusion 360 vs Onshape vs SOLIDWORKS

 

機械系3DCADを試してみました。

今回テストしたのは以下3製品。(と、おまけ2つ)
いずれもヒストリーベースの機械系3DCADです。
かつ、無料あるいは超低価格で、素人が手を出せるローレンジ3DCADです。
ごく浅いところまでですが同じモデルを作ってみて概要を把握しました。
  1. Fusion 360 
  2. Onshape
  3. SOLIDWORKS for Makers




2022年3月1日

Rhinoceros 7 SubD

 
今さらだけどRhinoceros7のサブディビジョンサーフェスモデリングを試してみました。


Mayaや3ds maxと何が違うの?

基本的にはCG系ポリゴンモデラーのそれと同じです。ただ、CG系のそれに慣れていると細かい部分で機能不足を感じます。

というか、CG系モデラーに慣れているとついつい作りすぎてしまうからそう感じるんですよね...。

そもそもRhinocerosの場合、あくまでコンセプトモデリングとか初期サーフェースを貼るとかの想定でしょうから、SubDモデルに過剰にディテールをつけなくていいはず。

用途が違うんですよね。



Organic Shape Modeling

SubDは簡単に自由曲面を作れるので、とにかくヌメッとした曲面が欲しいだけならとても便利です。ただし、慣れないとなかなか思い通りに作れませんけどね...。

とはいえ、有機的で彫刻的な造形をしたい場合は重宝すると思います。アクセサリーデザインとか彫刻的な家具とかオブジェとか?

なにより、Rhinocerosに慣れている人にとってはひとつのソフトで出来るというのが素晴らしいのではないでしょうか?









CG系ポリゴンモデラー → Rhinoceros

他のCGソフトで作ったメッシュを互換してRhinocerosでSubDにすることもできます。

面の再分割手法がCatmull–Clarkなら同じようなSubD形状になるはずです。ただし、Rhinoceros上ではできないことがあるので、あくまでシンプルに作っておく必要がありますけどね。たとえばEdgeのCreaseの重み付けを値で指定したりはできません。

もっとも、ビジュアライゼーションだけならCGソフトだけで完結するわけですが、いろんなソフトを使い分けるのって結構大変ですよね...。

Blenderでレンダリングしたもの




2022年1月11日

2020年3月28日

Python3 ! for 3ds max 2021

ようやく、Python3 が3ds maxでも使えるようになるようです。
CG系のツールは、長らくPython2系が使われてきたので、これは大きな一歩ですね。

あとは、同じオートデスク製品である、Mayaの次期バージョンがどうなるのか楽しみですね。


2019年3月22日

IoTデビュー : obniz

今、流行りのIoTデビューしました!

obniz

はじめてのIoTなので、Raspberry PiでもArduinoでもなく、obniz
他の2つに比べてちょっと高価なのですが、とても敷居が低いので初心者向きです。
Wifiさえつながれば、その場でobnizのサイトにログインしてobniz cloudからプログラムを実行出来ます。

ペットフィーダー

実はウチの猫が毎朝4時半に「ご飯ください」と起こしに来るので困っていました。
少しご飯をあげれば大人しくなるのですが、そんな時間に毎日起きるのがしんどい...。
そこで以前から興味があった電子工作で自動給餌機でも作ってみようと思い、今回の導入に至りました。
当初、市販のペットフィーダーでも買おうかとも考えたのですが、どれもダサくてイマイチ購入意欲が湧かない...逆に良さげなのは高いし...。
そもそも、早朝に少しだけご飯をあげられればいいだけなので、大仰なペットフィーダーは要らないということで電子工作になりました。
なにより、こちらのほうが面白そうだし。

サーボモーター

"サーボモーターで蓋を開ける"というシンプルなものを作りました。
obnizのボードは、電源をMicroUSBポートからIOポートまで給電しているので、サーボモーターを接続するだけでクラウド経由で動く機械が作れます。

今回はサーボモーターのコネクタをIOポートに直結です。
ただし、ブレッドボード経由じゃないので、そのままだとメス-メス。
普通のピンヘッダを挟んでみると、片方が短いのでやっぱりうまく付きません。
仕方ないので、ピンヘッダを2組用意してケツ合わせでハンダ付けしました。
ほんとは両端ロングピンのピンヘッダがあるといいんですけどね。

そしてゴミを組合わせて1号機完成。
"サーボモーターを動かす"だけの数行のプログラムを、obniz cloudのイベント機能で、時間をトリガーにして自動実行すれば自動給餌機の完成です。

結果

1日目で蓋を壊されました...。食べすぎて吐き戻して廊下がゲロまみれ。
2日目は蓋を強固に固定した後、猫がいじらないようにちょっと高い位置にある水のポットに引っ掛けておきました。早朝、このポットごと引き倒されて、どんがらがっしゃーん、盛大に水浸しに...。
3日目、4時半の給餌は無事クリアした模様。でも6時前に起こしに来られて、もうちょっと寝たい時間帯に邪魔されるという...カリカリの量が足りなかったようです。

感想

カリカリの粒が出てくる機構を工夫しないと、一度に理想的な量をあげるのが難しいです。ペットボトルみたいな漏斗状の入れ物は、出口のサイズとカリカリの粒のサイズの関係で、出過ぎたり詰まったりで、なかなか難しいです...。
こんなシンプルなものでも、解決しないといけない問題が結構あって楽しめます。
ものづくり、面白いです。

あと、2匹以上の場合、それぞれの子が食べる量を管理出来ないので、こういう単純なペットフィーダーって微妙ですよね...。

将来的には、猫の顔を判定して、ご飯の量をコントロール出来るようにする必要がありますね。








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を使えば、面基準のファミリに変換することはできるかもしれません。ただ、それだけです。今のところ、その他の変換はできません。

結局、

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




2017年11月12日

スクリプトを使って作業を効率化!



「 スクリプト(マクロ)を使って作業を効率化 !」
ネットでよく見かける文言ですが、実際、実務に取り入れている人はどれほどいるのでしょうか?


最近、新人教育的なことをやっているのですが、「日頃の作業で困っていることない?」って訊いても、何も返ってこない...。
何か作業していて、面倒だなぁとか、もっと簡単な方法ないかなぁ?とか思わないのだろうかと。


そんなに漫然と仕事しているのかとも思ってしまいますが、どうも、そういうことではないらしいです。
彼らは彼らなりに一生懸命仕事しているのです。
ただ、そんなことが出来るって、"知らない"だけらしいのです。


知らなければ、そんなもんだと思って作業するだけですよね。
スクリプトに限ったことではなく、日頃使っているソフトでも、知らない機能って使わないものです。


「こんなツールがあるよ」って、教えるより先に、基本的なカスタマイズの知識を教えたほうがよいかもと思い始めています。
多少でも知識があれば、出来るか出来ないかくらいには、気付けるようになるかもしれません。


気づけば、質問してくれるようになるかもしれませんよね。

2017年10月17日

formZ8.6 WIP

やっぱりv9は今年中には出ないですね...。
今頃8.6出るようじゃ。

2017年10月16日

Revit Macro : Purge ImportInstances

やっと出来ました。
分かってしまえば簡単なんですが、そこまでが大変。

ファミリをモデリングする時に取り込んだCADを一括削除するマクロです。






2017年10月2日

Revit Macro : マクロで最初に生成したオブジェクトを消すと、次からエラー

ヘルプのサンプルコードをコピペして柱状体を作ってみました。

最初は成功します。
ただし、一番最初に作ったオブジェクトを削除してしまうと、次からエラーになります。
2番目、3番目に作ったオブジェクトは削除しても大丈夫ですが、最初に作ったものはデリートしたらダメです。
なぜそうなるのか不明なんですが、どなたかわかる方いませんか?...。


2017年8月10日

Rhinocerosでバッチ処理

複数のファイルを一括処理

先日、そういう案件があって、AutoCADのScriptと一緒だと思って、
やってみたら少しハマったのでメモ的に残しておきます。

RhinocerosではMacroと呼びます。
書き方自体はAutoCADと一緒です。
ダイアログが出ないようにハイフン付きのコマンドを使います。
http://docs.mcneel.com/rhino/5/help/ja-jp/information/rhino_scripting.htm

ファイルのパスは_SetWorkingDirectoryコマンドで作業フォルダを指定します。
あるいはフルパスで指定したほうがよいです。
実行はマクロエディタからが簡単です。

下のマクロは
テンプレートを開いてpdfをインポート、25%にスケールして、全体を起こして、dwgとして保存して、全体ズーム、3dm保存。スクリーンキャプチャを撮る(ログとして)













2017年7月30日

Maya2014 : Linear Workflow with MentalRay

自分はモデラーなので、正直、レンダリング関連のことには疎いです。
でも先日、レンダリングの担当者が居なかったので仕方なくMaya2014でマテリアルのアサインをやりました。
普段も"仮の"マテリアルアサインくらいはやるのですが、きちんとレンダリングするためには結構煩雑で難しい設定が必要です。
改めていろいろ勉強し直さなければなりませんでした。


一番わかりにくいのは、"正しい色"をどのように出すかということです。


Mayaに初めて触る人は、まあ、まともな出力を得ることは出来ません。
ポチッとレンダーボタンを押したらMentalRayでキレいな絵が出てくるということはないので...。


リニアワークフロー

そもそもウチのプロダクションはリニアワークフローを導入しているので更に煩雑です。
ビューポート上でも、まともな色を表示しないので大変わかりにくいです。


スタッフ全員がリニアワークフローをちゃんと理解していないのもほんとはちょっと問題ですね...。
大手プロダクションのように自動でそういうややこしいことをやってくれるスクリプトも無いし、後工程の人は色々チェックしないといけないことが多いはずです。
頭が下がります...。


リニアワークフローについてはちょっと検索すればたくさん情報が出てきます。
今回はMaya2014の話しで、新しいMayaではちょっと違うので、
考慮しないといけないポイントだけ挙げてみます。


  • レンダリング設定
    • Color Managementを使う
    • 出力はOpenEXR(ポスプロでGamma補正する)
    • QualityタブのFrame bufferのDataTypeをRGBA(Float)4x32 Bit
  • カメラのレンズシェーダーのガンマ設定
    • Color Managementを使うなら1.0
  • マテリアルのガンマ補正
    • 色だけのシェーダーにはGammaCorrectノードで0.4545(=1÷2.2)
    • 色味だけのスペキュラはガンマ補正
  • テクスチャのファイルノードのカラープロファイル設定
    • DiffuseのテクスチャはUse Default Input Profile
    • Bumpのようなら大きさを表す画像は入力をsRGBに
    • HDRは元からリニア
  • ViewPort2.0のガンマ設定
    • マテリアルをリニアにしているなら、2.2に補正すると正しい色になる
    • テクスチャはGammaCorrectを挟まないと補正できない
  • レンダービューの表示設定
    • 表示用はsRGB








2017年7月3日

MayaでShapeファイルを読み込む

Shapeファイル(ESRI Shapefile)を直接mayaに読み込めれば、
DEMから作ったメッシュの位置合わせが簡単になるかもと思ったので、PyMelでやってみました。

調べてみるとpyshpというモジュールが公開されていて、非常に簡単にShapeファイルをパースできます。
https://pypi.python.org/pypi/pyshp
compatible with Python 2.4-3.x.と書いてありますがmayapy(2.7.x)でも動きました。

Map3DやCivil3Dが無くてもとりあえずなんとかなりそうですね。



2017年6月23日

Weed Polylines (Simplify Polylines)



頂点が非常に多いポリラインをなんとか軽く出来ないか?
"無駄な頂点を削除しつつ、形状特徴を残す"

きれいな等高線が欲しい時にこういう機能が使いたいわけですが、簡単そうでなかなか難しいです。
なのでちょっと調べてみました。


AutoCAD

検索してみると標準のAutoCADにはこの作業に使えるコマンドが無く、
Map3DやCivil3Dに"Weed Polylines"(ポリラインを間引き)というコマンドがあります。
標準のAutoCADでやるにはAutolispなどでスクリプトを書くしか無いわけですが、書いている人いました。
https://superuser.com/questions/263669/how-to-simplify-a-polyline-in-autocad



formZ

formZv6.xのReduceMeshコマンドを使うと簡単に頂点を間引きできます。
ただし指定できるパラメーターは "角度" のみです。

formZv8.5ではPolgonizeコマンドで頂点の間引きができます。
指定できるパラメーターは "頂点数" といくつかのチェック項目のみです。
これだとベクトルライン(ポリライン)の元々の頂点数を考慮しないと適切な処理が出来ないので一括処理は難しいです...。

formZ場合、コマンドがあるだけマシなのですが、問題はデータが重いと非常に時間がかかるということです。
何十MBもあるCADデータだったりするとほとんどフリーズしてしまいます。




Rhinoceros

Rebuild Curveコマンドで行けるのですが、これも個々のCurveの頂点数を考慮しなければいけません。
一括処理するためにはスクリプトを書く必要があります。
検索してみると、forumに同じことを質問しているスレがあり、ユーザーがスクリプトをアップしていました。
https://discourse.mcneel.com/t/simplify-polyline/38560/14

こちらのスクリプトの場合3次のカーブになってしまいますが、それで良い場合は問題ないと思います。

RhinoScript.orgにもスクリプトありました。
http://www.rhinoscript.org/scripts/114
でも一括処理が出来ないようで...残念。



RhinoPython

自分もPythonで書いてみたのですが理想的な間引きをするのがなかなか難しくてまだ改良が必要です。

参考にしているのはAutoCADのWeed Polylinesコマンドです。
https://knowledge.autodesk.com/support/autocad-map-3d/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/MAP3D-Use/files/GUID-E04B543E-29E7-4545-A4FA-DDDF861E4960-htm.html
大変シンプルなアイデアなのですが、これだけでは自分の思ってる感じにならないようで...。今後の課題です。


2017年6月5日

Grasshopper : Ladybug Tools



てんとう虫、ミツバチ、蝶...いったいなんのこっちゃ?って感じですが、
これを使うとRhinoceros+Grasshopper上で様々な環境シミュレーションができます。
Ladybug Tools

ちょっとだけ試してみました。
ソーラーパネルに見立てた傾斜のあるBrep面にどのように太陽光が反射するかを見てみました。

時刻や何月というのをスライダーで変えられるのですが、重い!
ソーラーパネルのBrepの数が多いとほとんどフリーズしたようになってしまいます。
メガソーラーとかだと簡単にシミュレーションするのは難しいかもしれませんね。