[Houdini] プロダクションで使う際の問題などをとりとめもなく考えつつ書いてみただけのポストなので何も得るものはないですたぶん

土曜日に友人と母校で特別講義ということでCG科の授業で喋ってきました。
僕は分業プロダクションでのワークフローをざっくりと、友人は小規模のそれと自主制作に関してのあれこれを。
午後からはなんか頭がぼーっとしちゃってよくとちってしまいました。すみません、、
学生の皆さんの参考になることが言えてたら良いんですが。

その際Houdini学生がいて、僕もHoudiniで仕事したいです!って感じだったんですが、
実際に仕事でそのままHoudini使えちゃうケースって多分だいぶ少ないんですよね。
なので思わず厳しいこと言っちゃいました。サーセン:P

でもまぁ実際にそうだからこそ言ったんですけどね。
会社がライセンス持ってるからそのまま使えるかというと間違いなくそうではなくて。

実際僕自身が今会社でHoudini使いたいHoudini使いたいと毎日ぶつぶつ言ってうるさがられてますw
何でライセンスを持っているのに使えないのか、良い機会なのであれこれ考えてみました。
 

例えば会社のワークフローがMayaベースで構築されている場合、
Mayaでも出来ることをHoudiniでやるのは単にタイムロスになる場合が多いので認められません。
認められませんというのは費用対効果の観点からの話です。
なので、タイムロスを考えても結果がよくなるというのならばもちろん話は別です。
(エフェクトだけはMax、という会社もちらほらあるようですが、Maxの場合タイムロスしても結果が圧倒的に良いとの理由からMaxを使っているようです。
確かに速いし良いもの。Fumeとか。)

他にはデータは効率的に作成できるものの、レンダリングが難しい場合というのもあります。
ただレンダリングするならもちろんMantraで出来ますけどね、Mantraをメインのレンダラとして使うことはまずないので、他のレンダラと質感を合わせないとだめなわけです。

その場合方法は2つ。
1つ目はMantraでシェーダの設定を追い込んで同じ結果が出るようにする。
これをやるにはそもそも時間がかかりますので、時間に余裕が無いときにはやれません。
そしてそこそこ上手く行った場合でもマスクずれなどの問題は少なからず生じてしまいます。
まぁ気にならないかもしれませんけどね。。

もう1つはMantraを使わずにそのレンダラでレンダリングすること。
これをやるにはHoudiniからデータをトランスレートするか、Mayaなどのアプリケーションにデータを戻して、そこを通してレンダリングするか、です。

僕が前にやった仕事で、地面をぶっ壊してその破片が吹き飛ぶというのがあったのですが、
Mayaとmental rayがメインの仕事でした。
それはベースシーンをMayaで作り、Houdiniであれこれ足し、Mayaにデータをトランスレートしてレンダリングという形をとりました。
それが最速かつ最善と判断したためです。
が、やはりデータの受け渡しはあれこれ複雑で、だいぶ時間がかかってしまいました。。。
まぁあの時はMayaで使えるデータの最善の形を考えて、あえて茨の道を歩んだというのもあるんですが:P

というふうに、何にせよやはり時間がかかることには間違いありません。
なのでどうやってレンダリングをするかはしっかり考えてから作業スタートしないとドツボにはまってしまいますね。。

当時はどうやってもmental rayで出さねば死ぬ!!と思ってたのですが、
今冷静に考えると簡単なジオメトリならMantra使えばOKかもしれません。
まぁアレは割と画面ドンと占めるメインのオブジェクトだったのでしんどかったと思いますが。

あとは最近ではAlembicとかGTOとかbgeoとか、ツールをまたいで使えるシーケンシャルなジオメトリフォーマットやプラグインがあれこれ出て来ているので、
そう言うのを利用するのも効果的だと思います。
その場合でもUVだとかマテリアルの作り方だとかあれこれ問題にはなりそうですし、Alembicとかはまだほぼ使い物になるか危ういという噂もありますけどね:P

あとはそもそもどうやってHoudiniにデータを持っていくか。
1からHoudiniでつくる場合は気にしなくていいですが、そんなことはほぼ無いですからね。

基本的にはFBXでのやりとりが可能なので、まずはそれ使う感じでしょうか。
でもFBXってインポートにめっちゃ時間かかるしメモリ食うんですよね。。
僕が以前インポートしたのは確かにそこそこ重いくて、オブジェクトがめっちゃ分かれてる厄介なジオメトリではあったんですが。

それにMayaなどのデータをそのままHoudiniに持ってくると、あまりHoudiniフレンドリーではないというか、
SubnetにSubnetを重ねた階層構造が出来るので、ちょっとというかだいぶ使いづらいです。
他に方法があるかと言われるとあまりいいのが思い浮かばないので正しいのかも知れないんですけど、
少なくとも僕的Houdini理想データとは違います(ぇ

キャラ持ってくならFBXのGeometryCacheをONにしてそのまま持ってけば大体OKぽいですが、
詳しく検証してないので全部行くかはわかりません。
あとは複雑なジオメトリになるとどうしてもエラーおおくなりがちなので、どんなもんか気になります。。

と話それましたが、何にしてもデータは軽くてオブジェクト数が少ないほうが楽、ということです。
でも実際のデータはそう甘くはなく、、、
適宜自分で最適だと思われるデータに直して持っていく必要があるわけです。
これに関してはジオメトリキャッシュで持っていく場合でもFBX使う場合でも何でも一緒かなと思います。

なのでやっぱりそこをどうにかするためのパイプライン、もしくはそこまでたいそうな感じじゃなくても、
自分なり、自社なりの方法論が必要かなーと思います。
この辺は会社によって使い方違うと思いますし、一概には言えないのかなと。

 
と、あれこれ考えてみて思ったのは、HoudiniはRealFlowとかと同じように、
特定用途に関してのみ使うソフトと思うと問題点分かりやすいんじゃないかなー、です。

RealFlowはレンダリングができないのでどこかのソフトとのやりとりが必要になります。
なのでBin Loaderとかがメーカー標準で用意されているわけです。
Houdiniもそこがマズイと思ったからこそのFBXサポートなんでしょうけどね、
Houdiniで使いたいデータを考えるとそれだけでは十分とは言えません。

今後のサポートにも期待はしたいところですが、前述の通り自分でもあれこれ方法は考えるべきだなとは思います。
じゃないと問題起きたときに対応出来ませんし。
 

ちなみにウチで一番問題になっているのは、レンダリングに関する部分です。
データのやりとりはGTO使ってなんとかなっていますが、
レンダリングに関しては諸々問題があり、Mayaなりに戻してレンダリングしていますが、完全ではありません。

自分がもうちょいMantraの習熟度上げればまた話は別なんでしょうけども、、
それでもMantraはVolumeとかレンダリングしようとするとだいぶ重いです。
この辺は自分に依存するポイントとして、しばらくMantra周りの強化頑張ってみます・・・。

となるとどういう場合にHoudni使ってるの?となるんですが、
大変難しい問題ですこれは。

ほぼ使ってません!!が正しいかもしれません・・・
ただジオメトリをもにゃもにゃするとか、とにかくシミュレーションの絡まないジオメトリ操作に関してはだいぶアドバンテージがあると思います。
Houdini屋さんがみんなこぞってSOP最高!というのはすごく良くわかります:)

何とか問題を克服してHoudini使っていきたいなーと思っています。

それにしても最近、前ほどHoudini導入しました話を聞かないなーと思うのですが、
Houdini使いたい人はライセンス持ってる会社にまとまっちゃった感じなんですかね?

今海外の潮流を見ていると間違いなくエフェクト的に一番のトレンドはHoudiniです。
海外でエフェクトやりたい人は間違いなくやっておくべきツールNo.1です。
次がMaya、さらに次いでMax、ですかね。

最近で言うとILMとPixarがHoudini全面導入に舵を切ったと聞いています。
今は経験のあるHoudini使いが引く手あまたでウハウハだそうで。

というところでHoudiniはじめてみんなでノウハウ共有しましょう:)

僕も家でしばらくApprenticeで遊んでいたのですが、レンダリングのSD縛りがしんどいので12が出たらHD買おうと思っています:)
さて、2週間後のSiggraphが楽しみ。

 
長々意味もなくだらだらと書いてしまってサーセン。

うちはこういう風に解決してるよーというご意見などお待ちしております。

コメントを残す

メールアドレスが公開されることはありません。