Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
本当に無駄な仕事をしたくない
人のための
Houdini
プロシージャル入門
@JYOURYUUSUI
自己紹介
◆「魔法の蒸留水」で同人活動
◆Houdini本書きました
◆土日Houdinist
@jyouryuusui
話す事
Houdiniを使う事のメリットは何か?
無駄な仕事を減らすにはどうすべきか。
について話します
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
エフェクトのソフト?
Houdiniってどんなソフト?
■ノードベース
■プロシージャル
な3Dソフト (SideFX社製)
ノードベース NodeBase
ある作業を完成するまでの手順 簡単に言うと“自動生成”
プロシージャル Procedual
ノードに1つ1つ機能が格納されている
Houdiniでダイナミクスを始めるぞ!
Houdini学習1日目の人→
まずはSOP
を覚えましょう
Surface OPerators
モデリングやアトリビュートの編集
先生
SOP?そんなことより爆発だ!
多すぎるノード結果…
挫折
なんで車が
動くんだろう
適当に繋げば
動くだろう
あまりに無謀・・・!
▼ SOPを理解しないままDynamicsをやるという事
上流(SOP)を制御せよ!
発生源はSOP
地面もSOP
自然現象は人間の
手に余る(予測不能)
【制御例】上流の差し替え
【制御例】Attributeの編集
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
〇最重要➡
この値をDOP
に渡そう
このノードを
繋げよう!
You are Houdinist.
SOPでAttributeをどう扱えばよいか理解す
れば明るい未来が待っている!
Houdini = 生産性が高い は本当か?
全然できない・・・
1日中やって何も
進まなかった
Houdini最高!
凄く生産性高い!
日本語情報少な
すぎてわからん
学習コストと
保守料割にあわ
ない
1日でこんなの作って
みました(凄い作品)
何が本当なのか・・・
明るい未来が待っているのは分かった、しかし・・・
と考えるなら、自動化
(プロシージャル)の出番
ではないだろうか?
では、
無駄な仕事とは何か。
生産性が高い≒無駄な仕事をしない
無駄な仕事
◆単純な繰り返しの作業
◆納期直前での手戻り
締め切りまで1日しかないけど
もう一度テーマを考え直そう。
(昨日は正解だと思っていた
けど、やっぱり違っていた。)
モデルを100種類用意しろ
無駄な仕事 = 不必要な手作業
【例】手作業を減らすには
◆単純な繰り返しの作業
◆納期直前での手戻り
◆回転寿司店の背景作り
◆寿司は数十種類×数形状×
遠景用・近景用=数百種類
◆レーンは後で変更
法則と無駄な仕事を最初に見つける
法則 懸念される無駄な仕事
レーン 半円状のベルトコンベア レイアウト変更による手戻り
寿司 寿司=ネタ+シャリ+皿 組み合わせの爆発
【法則】どうやってレーンを作る?
実物を観察しよう!
レイアウト変更に強いプロシージャル
【法則】どうやって寿司を握る?
Traceで画像から自動モデリング
重力にまかせて落下
trace FEM
【課題】組み合わせの爆発
◆新しい形状の度に何度も作業が発生する。
◆上流で何を変化させれば良いか考える。
◆上流のバリエーション
Switch や ノードをまるごとコピー?
上流のボトルネック
値入力
無限の可能性を秘める
究極のアセット
手作業がボトルネック
湧き上がるアイデア
色々値を試してみたけど
1回目のパラメータ何だっけ・・・
大きさ シード値
1回目の入力 1 20
2回目の入力 2 53087
3回目の入力 3 8787
・・・
何かいい感じの結果だった
事だけは覚えている。
Take
パラメータをレイヤーの
ように管理する
Take
バリエーションを持ちたい
値をTakeにインクルード
面倒ならAuto Mode
で指定する。
レンダリング時にTake選択可能
シミュレーション繰り返し
trace FEM
この処理をネタを変えて繰り返したい
・・・etc
Wedge
Output Driverが5回実行される。その間
${WEDGENUM} は0~4の値を持つ
以上、上流の手作業削減手法紹介でした。
NEXT 閑話:Houdini Engine
Houdini Engine
インストール時にチェックを入れると
Houdini Engineのファイルも追加される。
Side Effects Softwareフォルダ内にengineフォルダ
Unityはパッケージを読み込み
Unreal Engineの場合UE_4.15EnginePluginsRuntimeフォル
ダに、HoudiniEngineフォルダを貼り付け。
インポートからotlを読み込みます
Houdini Engine
ApprenticeバージョンではHoudini
Engineは利用できません。
Houdini Indie以上のライセンスが
必要です。
Houdini Engine
Load Houdini Assetからhdaを読み込み
インスペクタで値を変更します
閑話:Houdini Engine
Houdini Engine
NEXT Houdini=生産性が高い は本当か?
Houdini=生産性が高い は本当か?
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
7月3日 7月10日 7月17日 7月24日 7月31日 8月7日
タスクの進捗率
Houdini MAYA,MAX
逆転は鍛錬が必要
Houdiniスキル上昇
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
7月3日 7月10日 7月17日 7月24日 7月31日 8月7日
タスクの進捗率
Houdini MAYA,MAX
過去の資産を利用することで
ここから急上昇する事も可能
Houdini=生産性が高い は本当か?
習熟度・目的・過去のアセット
再利用・工夫による
型にはまれば本当
Houdiniの罠
◆VEX・Python・C++ プログラミング
便利な反面 保守が大変になるかも
◆プロシージャルが全てではない
時には、一時ファイルに出力して非破壊な
フローを壊すことで作業時間が減ることも
学習方法
理論と実践で学ぶ
Houdini -SOP&VEX編-
株式会社ボーンデジタル
Entagma
Houdiniではじめる
3Dビジュアルエフェクト
I・O BOOKS
Houdini Forum
Houdini実践ハンドブック
Wrangle×Python
od|force Forum
Houdini - cgwiki
cmiVFXなど有料動画
Houdini Master Class動画
nomoreretake
Houdini学習循環
3DCGを楽しもう!
ご清聴ありがとうございました
まとめ

More Related Content

本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門

Editor's Notes

  • #4: SOPの重要性を理解していただいたところで本日話す内容を紹介します エフェクトを目当てに、いきなり爆発や破壊に手を出すと挫折する可能性が高いです。 なぜ挫折するのか パラメータが多すぎる ノードが多すぎるのに それぞれの関係性が理解できない 言い換えると、車の構造を理解していないのにエンジンを修理しようとしているようなものです http://sidefx.jp/index.php?option=com_content&view=article&id=4&Itemid=474
  • #6: エフェクトを目当てに、いきなり爆発や破壊に手を出すと挫折する可能性が高いです。 なぜ挫折するのか パラメータが多すぎる ノードが多すぎるのに それぞれの関係性が理解できない 言い換えると、車の構造を理解していないのにエンジンを修理しようとしているようなものです http://sidefx.jp/index.php?option=com_content&view=article&id=4&Itemid=474
  • #7: ノードベース&プロシージャルなソフト 
  • #8: ノードベース&プロシージャルなソフト  日本語では「手続き型」「手続き的」などと訳される。
  • #9: エフェクトを目当てに、いきなり爆発や破壊に手を出すと挫折する可能性が高いです。 なぜ挫折するのか パラメータが多すぎる ノードが多すぎるのに それぞれの関係性が理解できない 言い換えると、車の構造を理解していないのにエンジンを修理しようとしているようなものです http://sidefx.jp/index.php?option=com_content&view=article&id=4&Itemid=474
  • #11: SOPの重要性を理解していただいたところで本日話す内容を紹介します エフェクトを目当てに、いきなり爆発や破壊に手を出すと挫折する可能性が高いです。 なぜ挫折するのか パラメータが多すぎる ノードが多すぎるのに それぞれの関係性が理解できない 言い換えると、車の構造を理解していないのにエンジンを修理しようとしているようなものです http://sidefx.jp/index.php?option=com_content&view=article&id=4&Itemid=474
  • #20: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #21: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #24: プロシージャル ワークフロー プロシージャル (手続き型) ネットワークとは、ある作業を完成するまでの手順を表す、相互接続されたノードの集合のことです。Houdiniでは、全てがプロシージャルになっていて、モデリング、キャラクタリギング、ライティング、レンダリング、特殊効果、これら全ての作業が恩恵を享受しています。特殊効果アーティストは、従来より、プロシージャルワークフローがパーティクルや物理シミュレーションによる効果制作に最適なため、Houdiniに惹かれてきていました。制作パイプラインの他の場所においても、プロシージャル手法は、生産性の向上を目指すスタジオにも創作手法を巧く制御したい個人アーティストにも、多くの利点をもたらします。
  • #25: まず作業を進める前に順序だてて流れを考える必要があります。
  • #26: Houdiniでは上流を変化させて、様々な出力結果から最適な答えを見つけ出します。 しかし、その上流で値を入れた結果、どのような差が生じたか、確認しなければ、せっかく 自動化した意味がありません。 ノードを全部コピーして貼り付けという手段も無くはないですが あまりスマートではありません。 そこで、2つの機能を利用します。TakeとWedgeです。 Takeとは何か、 Wedgeについても そのために 今回RopDependencyを
  • #28: Houdiniでは上流を変化させて、様々な出力結果から最適な答えを見つけ出します。 しかし、その上流で値を入れた結果、どのような差が生じたか、確認しなければ、せっかく 自動化した意味がありません。 ノードを全部コピーして貼り付けという手段も無くはないですが あまりスマートではありません。 にぎっとらんやんけという意見もあるかもしれませんが、、方法はなんでもよいのです。 そこで、2つの機能を利用します。TakeとWedgeです。 Takeとは何か、 Wedgeについても そのために 今回RopDependencyを
  • #29: Houdiniでは上流を変化させて、様々な出力結果から最適な答えを見つけ出します。 しかし、その上流で値を入れた結果、どのような差が生じたか、確認しなければ、せっかく 自動化した意味がありません。 ノードを全部コピーして貼り付けという手段も無くはないですが あまりスマートではありません。 そこで、2つの機能を利用します。TakeとWedgeです。 Takeとは何か、 Wedgeについても そのために 今回RopDependencyを
  • #31: ■Switch or ノードコピー? プロシージャルは いかに手で作らないかを考える と最初に言いました。そしてSOPの重要性も理解して Attributeを扱いプロシージャルで物をつくるところまでもできました。 しかし、まだやり残したことがあります。 それは上流の自動化です。 例えば、特定の値を与える事で、1万種類の出力が可能な アセットを作ったとします。しかし、上流の入力エリアは 1つしかありません。 1万種類が出力可能なのに 入力エリアが手動なので、まあできて3~4つぐらいの パラメータを入れて、終了となるでしょう。同じエリアで 100パターンの値を入力して、やっぱり20番目に入れた 値のときが一番良かった なんてなかなかできません。 そもそも覚えてられません。 これは、社内ツールを作って 超便利になったのに 自分しか使っていない事に似ています。 そこで上流を制御する手法を2つご紹介します。 まず、Takeです。これはパラメータにレイヤー構造を 持たせることができます。基本となるmainの他にパラメータを 複数入れる事が可能になります。これで、上手くいったパラメータを mainに保存しておいて、ちょっと別の値で実験したい場合に 別のTakeで値を入力するといったことが可能です。 次はちょっと難しい方法。Wedgeです。これはROP OutputDriverもしくは  ROPDependency と組み合わせて利用すると効果を発揮します。 先ほどのTakeは値が切り替わるだけで実際に出力を行う場合は手動になるのですが その一連の出力すら自動にしようというのがWedgeです。 たとえばボックスの大きさ123の3パターンを出力したいとします。 Wedgeで1~3の値をパラメータに入力させます。WEDGENUMを利用するとさらに  汎用的に 値を利用できます。  最終的にテクスチャさえ準備できれば 100種類の出力を1分で行う事ができました。 寿司のTraceで利用する番号をWEDGENUMで利用してます。 takeで遠景近景の切り替えもできます。 今回はネタがバラバラだったのでPhotoshopでしたがサブスタンスデザイナーで 出力できるようなマテリアルを利用すると、さらに高い効果が期待できます。 デジタルアセット UnityEngineでは Houdiniで作成したノード群を HoudiniDigitalAssetにして保存する必要があります。
  • #33: ■Takeから説明していきます。 Takeのタブはデフォルトでは出ていないので +マークから追加する必要があります。 例えば、1つのオブジェクトで10個のアニメーションを試したいとします。しかしタイムスライダーは1つしか ありません。そこでTakeでパラメータごとにオーバーライドします。 そうすることで、レンダリング時にどのTakeを利用するかを選択する事が出来ます。 ビューポートで確認したい場合は右上のプルダウンメニューからTakeを選択します。
  • #34: ■Takeから説明していきます。 Takeのタブはデフォルトでは出ていないので +マークから追加する必要があります。 例えば、1つのオブジェクトで10個のアニメーションを試したいとします。しかしタイムスライダーは1つしか ありません。そこでTakeでパラメータごとにオーバーライドします。 そうすることで、レンダリング時にどのTakeを利用するかを選択する事が出来ます。 ビューポートで確認したい場合は右上のプルダウンメニューからTakeを選択します。
  • #36: ■次にWedgeの説明です。 Wedgeについては 1つのTake内で手動でなく自動で値を設定したい場合に利用します。 主に変数$WEDGEとして利用する方法と、数値のみの、WEDGENUMを利用する方法があります。 シミュレーションを組み合わせる場合はROPDependencyを利用します。 例えば0,1,2と連番の設定を上流で指定してシミュレーションが終わり次第出力する設定を行っておけば WedgeノードのWedgeボタンを押すだけで、本来なら10回行っていた作業をボタン1つで完了させることができます。 レンダリング時に出力したい場合に利用します。
  • #40: HoudiniからUnityへの出力に関しては、モデルとして一度出力した後に読み込む方法と、HoudiniEngineを利用してUnityからAPIを叩きにいく方法があります。 HoudiniEngineIndieは無料ですが、Core、FXの通常ライセンスのEngineでは年間の料金が必要です。 HoudiniEngineを利用すると、例えばMAYA、Unity、UE4からHoudiniDigitalAsetを利用する事ができるようになります。 モデルとしての出力はHoudiniからはwavefrontのobjファイル、fbxファイル、alembicファイルが可能です。どの形式にもUVは保持させることができますが、 テクスチャが付いていく形式はfbxしかありません。加えてfbxはAperanticeバージョンでは出力させることができません。Fbxの出力はIndie以上のライセンスが必要です。 ライセンスに関する壁はもう一つあります。HoudiniEngineもまた、Indie以上のライセンスが必要です。Aperanticeでは、読み込んだモデルがロゴマークに限定されます。 よってApreranticeから出力する場合は、objで出力して、手動でマテリアルの設定を行う必要があります。 Fbxでの出力についても、シーン全体での出力となってしまうため、望ましくありません。 そこで、HADに対してどのテクスチャを利用するかExtraFilesで指定します。すると、Unity側で自動的にテクスチャが読み込まれます。 チャンネルには次のように指定 opdef:..?画像.png
  • #42: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #43: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #44: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #45: 本当か、様々な意見があります。 どんな状況化でも生産性が高い。と一概に言い切ることは難しいです。 いうなれば、ある条件に合致した場合、型にハマったら信じられない生産性が生まれる。ということです。
  • #46: 基本的にはノードの繋がりだけでできますが、プログラミングが出来る方はぜひWrangleやPythonを利用してみてください。 いろいろ試していく内に最終的にはソフトを立ち上げることなく、処理を行うことができるようになります。 HoudiniFXで作ったHDAをHoudiniCoreで利用することも可能です。高いライセンスなので、そこは上手く やりくりしましょう。
  • #47: 昔は日本語書籍はなかったのですが、今はいろいろ発売されています
  • #48: 最後に、これからHoudiniを勉強していく人のお勧め学習プランを紹介します。 このソフトにはHoudini学習曲線という単語があり、最初はろくなものができず挫折しやすいです。 これを乗り越える手段をお教えします。 まず、書籍。 一番最初の初学者には「Houdiniを利用した」をお勧めします。 この本を一通りやった後、何か1つテーマを決めて、自分が考えた方法で つくってみてください。テーマがきまらなければEntagmaの中から1つ 自分がいいなとおもったものを選んで、挑戦してみてください。 重要なのは、一度最後まで作るというところです。 最初は苦戦すると思いますが、出来あがったとき その苦労した分の 喜びが沸き上がってきます。「よっしゃー俺は天才だ!」と そのその感情を持ったままループを継続させて下さい。 これを Houdini学習ループと僕は呼んでいます。 ここで思い出して下さい。このソフトを作った会社はSideFX。日本語訳すると副作用です。 物騒な会社名ですが、これこそが重要です。毎日毎日禁断症状になるくらいやり続ける 事が、上達への最短ルートとなるのです。  3Dって楽しいですよね。その気持ちを大事にしてみんなで遊んでいきましょう。 そしてWebにこんな手法があるよと自慢してください。その自慢がみんなの力となります。 以上となります。 ご清聴ありがとうございました。
  • #49: Houdiniは難しいです。まぐれで上手くいくことはほとんどありません。 3Dの知識を正しく理解したとき、初めて上手く動作します。だから楽しいのです。