blog

2020/11/17

Houdini Arnoldメモ

記事が無限に増えていく…何か情報纏める手段を考えないと。。

ひとまずArnold関連のメモ置き場。


ユーザーデータをRGBに渡す。

https://docs.arnoldrenderer.com/display/A5AFHUG/User+Data


範囲選択でアクティブになっていく破片のマスクを取りたかったので、simの終わりにcolorSOPを繋いで、その上で上記のヘルプの参考のようにUserDataでCdを拾ってFlatに繋いでレンダリング。geoノードのArnoldタブ、PointAttrの値にもCdって指定してあげる必要がある。

2020/11/08

Houdini ハカイ

破壊系チュートリアル、メモ。

自分が使いそうなものを集めで順次こなしていく。 

標準の"RBD Material Fracture"で割って"RBD Bullet Solver"で破壊sim。

https://www.sidefx.com/ja/docs/houdini/nodes/sop/rbdmaterialfracture.html 

https://houdinifx.jp/blog/rbd-material-fracture-sop-%E3%81%9D%E3%81%AE1%EF%BC%88concrete%E7%B7%A8%EF%BC%89/ 

https://www.sidefx.com/ja/docs/houdini/nodes/sop/rbdbulletsolver.html

ボロノイのほうが当然軽いから実用的には使い分けが必要だけど、こちらのほうが便利オプション初めから付いてるので、基本のチュートリアルだけでもやってて楽しいしhoudiniでは何が出来るのかっていうのが感覚的に馴染みやすくなる気がする。

 

ガイドシミュレーションのチュートリアル。

https://www.sidefx.com/ja/docs/houdini/destruction/guidedsims.html 

ねじれるBOXをガイドにして崩す感じ。さっくり出来て実用性もある。

 

分割ポイントをスキャッターポイントから拾う。単純だけど忘れそうなので。

https://www.youtube.com/watch?v=YxAp9QNjxzo

他のソフトだとメニューとして独立してたり別機能になったりしそうな部分がチェック入れるか入れないかだけで変わることが多いので、よく使うノードはちゃんと調べておく必要がある。仕事だと数ヶ月単位でソフト行ったり来たりするからこういうの忘れやすい。自分用に検索できるように書き留めておく方法を探さねば。。

 

徐々に崩壊するとか、指定の範囲でactiveのON,OFFコントロールするためのチュートリアル。違う方法も出てくるけど、これが一番シンプル。ただしシェルフから作るのは余計なノードとかついて来て理解の妨げになったので、自分でDOP組んだほうが良い。

https://www.youtube.com/watch?v=ShXZ00oXxHw 

https://www.youtube.com/watch?v=_51xtpdQKU8 

 

ある程度シンプルなものなら上記の方法が良い気がするけど、深く追い込むにはちょっと時間も掛かりそう。ということでこちらの記事を参考にRBD Bullet Solverで任意のオブジェクトの範囲内がアクティブになるように工夫。

http://sugi-iggy.blogspot.com/2016/12/blog-post.html 

chopはすぐ忘れそうなのでsolver sopの方を。アクティブにするだけなので記事内のin_frame周りは使わない。

solver sop使わずにwrangleだけだと、volumeの範囲で通り過ぎたところをON(1)にして、そのままだと通り過ぎるとOFF(0)になってしまう。

そこでsolver sopの中で@inとインプットをmax関数で比べて、それをactiveアトリビュートに代入。で、それをそのままRBD Bullet Solverに渡す。

 

アニメーションの途中からsimに。

https://houdinifx.jp/blog/anim_to_sim/ 

https://www.youtube.com/watch?v=jjx-clI_AgU

 でかい破片は手付けで途中から細かく砕きたい時は意外と多い。

 

明らかにスキルの見合ってないチュートリアルだけど、一度試しておきたい。

https://www.youtube.com/watch?v=s9DjkDt-6Js&feature=emb_rel_end

 

 hipファイルアップしてくれているので後で見て見るメモ

http://nicholas-taylor.com/assorted-bullet

2020/11/07

Photoshop タブレット設定

PhotoshopでwintabをOFFた時、筆圧が効かなくなる毎度忘れるのでメモ。

https://helpx.adobe.com/jp/photoshop/kb/tablet-support-faq-photoshop.html

C:\Users\<ユーザー名>¥AppData\Roaming\Adobe\Adobe Photoshop CC<バージョン>\Adobe Photoshop CC <バージョン> Settings\

ここに「PSUserConfig.txt」を作成。

中身を、

# Use WinTab
UseSystemStylus 0

そして保存。

こうすればwindows inkのチェック外しても筆圧が有効になる。

window inkのチェックはずさないと、chromeとかブラウザでペン先でのドラッグができなくなるので地味に不便。

2020/11/04

Houdini リュータイ

流体系チュートリアル、メモ。

自分が使いそうなものを集めで順次こなしていく。 

 

 

フルイドにテクスチャ

https://www.youtube.com/watch?v=7ho2S5u7NV0

2020/11/02

Houdini 追加機能とか

配布してたりする追加ツールセットとかのメモ欄。


SideFX Labsのインストール。

https://www.sidefx.com/ja/tutorials/sidefx-labs-installation/

mayaで言うボーナスツール的存在か、それ以上に多彩なツール群。

RSMBとかで使うベクター画像の出力はこのツールの中のを使うのが一番簡単そう。

2020/10/29

Houdini カメラマップ

Houdiniのカメラマップのメモ。

Mantraは遅すぎるので基本的にArnoldのお話。

 

■Shader設定

・standerd surfaceのbase,specularを0に。emissionを1に。

・テクスチャはemission color、アルファチャンネルはopacityに。

・ビューポートでテクスチャ表示させるには組む必要有り。下記の動画を参考に。

https://www.youtube.com/watch?v=BFRObIxFZEk&feature=youtu.be

カメラマップが目的であれば一つ設定すれば済むので一度やってしまえば問題ない。

動画が削除されたときのためのメモ

・arnoldマテリアルノードで右クリック>VEX/VOP opsions>Edit Parameter Interface

・真ん中がrootしか無いと思うので、そこに左の欄から"Folder"をドラッグして持ってきてOpenGLとか適当に名前つけておく。

・そのフォルダ内にToggleとFile imageをドラッグ。それぞれのパラメータ(右側の欄)の

tagにBuild-in Tagsでタグ追加。ToggleにはDiffuse Texture LayerのUse DiffusMap、File imageにはTexture。TagNameの末尾がどちらも#になっているので、その部分だけ1に書き換える。

似たようなやり方で、OpenGL表示のカスタマイズが出来、かつ内部のパラメーターとリンクさせておくと便利。ノーマルやディスプレイスの場合はToggleじゃなくてFlortでパラメータリンクさせれば良いとのこと。一度作ってしまえばノードを使い回せる。

補足:matとshop何がどう違うかわまだよくわからないけど、matのほうが新しい機能とのことなのでmatで作ったほうが良いのではないかと。

■テクスチャをOUT_materialにそのまま繋ぐと、ポリゴンの裏面評価が無いから通過した後ろにダブるのを回避できる。物量増やす目的なら裏にも適当に何か貼ってあったほうが良かったりするのでケースバイケース。通常のカメラマップならこっちのほうがバレるリスク回避できるから良い気もする。

 

■txテクスチャだとアルファ境界が白く残る。

・ROPのArnoldノード項目>Textures>Auto-generate TX Textuers をOFF

・念の為その下のUse Existing TX TextuersもOFFに

 

■よく出る追加素材

AOVで書き出せば基本的には問題ないけど、そこまで素材数が多くない場合や、AEでのexrが扱いにくいなどの理由で個別に出すときのためのメモ。ていうかAOVを個別に書き出すのって出来ないのかな。出来る気がするけど調査不足。

・ZDepth

state_float--range--null(あってもなくても)--output

stateFloatはRayLength、rangeはInput,OutputともにMinは0に、Maxは距離に応じて結構大きな値を入れてあげる必要がある。

Softimageの時のようにシーン上においたnull間のデプスを取るように改良したい。

 

・ノーマル

Utilityシェーダーでn+Flatで出力


・2Dモーションベクター

 SideFX Labs ToolsのMotion Vectors ROPを使うのが良さそう。

https://www.sidefx.com/ja/tutorials/create-motion-vectors-for-time-warping-image-sequences/


■カメラのコーン表示

カメラの中にvdbノード作ってマージ。

from cameraにしてカメラしてい、NearFarはカメラのパラメータそのまま持ってくる。

2020/09/22

カメラマップ、カメラ設定

カメラマップはアニメのお仕事だと特にどのソフトでも結構な頻度で使うけどその時使ってるソフト以外のことをすぐ忘れる。伴ってカメラの設定を合わせるためのメモも。

前提として、水平画角(Horizontal)で合わせてある。アンリアルだったかユニティだったかは対角とか聞いたことがあるけど今の所使う予定もないのでスルー。

houdiniとmayaに関しては標準カメラでApertureとFocal Lengthを合わせればOK。

フィルムオフセットも前回の記事で解決。

http://lazycg.blogspot.com/2020/09/mayahoudinifilm-offset.html

maxに関しては標準カメラだとApertureが操作できないので他ソフトとのカメラ合わせという点では使えない。たぶん。

PhysCameraのFilm/SensorがHoudini、mayaでのApertureになっているので、こちらであれば合わせられる。また、以下2点気をつける。

・露出がカメラの設定で変わらないように環境設定で露出のコントロールをオフにする。

・カメラの設定"Focus"で標準でレンズ補正が掛かってしまっているので、LensBreathingを0にする。

ただ、フィルムオフセットはパラメータが"%"になっているので、合わせるには計算が必要。Focal LengthとFocal Lengthからの逆算になると思うけど超面倒くさい。

 

さてカメラマップ比較。

maya 

マッピングを貼り付けてジオメトリに編集する場合、 ベイクするしか手段がない。

ベイクは一度レンダリングしてテクスチャ化しているが、ソフトウェアレンダに縛られてどう頑張っても画質低下する。シェーダー周りでもトラブルが起きやすいのでツールは必須。そもそものベイク処理が重いので大変非効率。ということで良い所無し。

 

max

通常のマッピング、オブジェクトベースのマッピングがモディファイヤで別れているので利便性が良い。レンダラでアンチ等のフィルタオフに出来るので張った画像を 無劣化で貼り込み→出力ができる。

通常のマッピング、オブジェクトベースどちらでもuvを開く必要もなく進められるので作業速度、リテイク対応や差し替えにも強い。

仕様でカメラのアスペクト比がレンダリング解像度に依存しているので厄介だが、通常のマッピングに関しては2020辺りからOSLシェーダーでアスペクト比変えられるようになったので、この先はなんとかなりそう。前述のカメラの特性上フィルムオフセットを他と共有するのが面倒なので、そこが課題。

 

houdini

自由度が非常に高いので出来ることの範囲は一番広い。但し通常のオペレーションに関しては難がある上にビューポートが重かったりするのでワークフローの整備は必須か。マントラでも無劣化では書き出せなかった。

あとオブジェクトスペースで貼り込んだとき、maxよりメッシュの割り不足による歪みが強めな印象。

 

現状、張った美術を無劣化で書き出せるのはmaxのスキャンラインのみ。ただarnoldでフィルタをシャープに出せば許容範囲にはなるので、利便性等を含めると暫くはarnoldベースで考えるのが良さそう。

 

とりあえず今はここまで。

2020/09/11

max インポートしたジオメトリが重い時メモ

maxにて、インポートしたジオメトリが重い時の対処法。

http://cganimator.com/3dsmax-tips-3-how-to-make-tree-animation-15-times-faster/

翻訳ソフトで見たので細かいところはわからないけど、インポートしたジオメトリの問題は明示的な法線にあるっぽい。
明示的な法線を持っていると、3dsMaxは常に何かを計算しているようで、それのせいで重くなる。

ということでEditable PolyにはMesh Selectを適用、Editable MeshにはSmoothを適用して、レンダリング時にはoffにする。
こうすることでビューポートのみの明示的な法線を一掃して正常な状態にできる。

Normal modifierでは完全に法線を取り除けないので上記の方法が現状できるベストな解決策。ということらしい。


明示的な法線ってよく出てくるけどよく分かってない。単純にジオメトリに編集された法線情報がある状態って事かしら。。

2020/09/03

mayaからhoudiniにFilm Offset持ってくる

フィルムオフセット持ってくるメモ。

基本的にはこの記事の通り。

https://forums.odforce.net/topic/12187-maya-film-offset-vs-houdini-screen-window-xy/ 

houdiniのScreenWindow値 = mayaのオフセット値 / アパチャー値

ということでした。時と場合によるけど、小難しいことせずに自分的に分かりやすく。

カメラと一緒に出力する階層に"offset"ロケータを作る。その移動値x,yに、

offset.translateX = camAShape.horizontalFilmOffset / camAShape.horizontalFilmAperture

と 

offset.translateY = camAShape.verticalFilmOffset / camAShape.verticalFilmAperture

とそれぞれエクスプレッション作成しておく。 

 

んでfbxなり何なりでカメラとロケータ一緒に持ってく。

houdiniにて、ScreenWindow X/Yに

ch("../offset/tx")

ch("../offset/ty")

とエクスプレッション打ってあげればフィルムオフセットがピッタリ。 

※解像度は別途 合わせる必要あるけど、それはまた別のお話。

 

これで大判も怖くないし、mayaでなら自由にレイアウト切れる。

2DPANカメラと組み合わせればmaya、houdini、AE、nukeで大判カメラワークの共有できる。背景は1枚レンダリングして2Dカメラワーク、アニメーションとエフェクトは3D側のカメラでレンダリングすればレンダリングコストもいい具合。という妄想。


2020/05/10

max FFDのコントロール メモ

FFDのコントロール 調べたものメモ



https://forums.cgsociety.org/t/animation-ffd-points-linked-to-a-dummy/704555




とりあえず色々コピペして改造してなんとかしたい。

クリスタのショートカット

作画用にショートカット編集したので忘れないようにメモ。

Ctrl+Alt+N    新規タイムライン
Ctrl+K        フレームレート変更
home         先頭
end            最後
1            前フレーム
2            次フレーム
3            前セル選択
4            次セル選択
5            新規セル(新しいコマ)
6            フレーム削除
7            フレーム挿入
0          再生/停止
F5              オニオンスキン
Ctrl+F5       オニオンスキン設定
Shift+C       コピー
Shift+V       ペースト
Shift+X       切り取り


自分の作業用でLOラフ、ラフ原、エフェクトとかタッチの追加作画、とまぁこれくらいで、本格的な作画の仕事をするわけではないのでこれで十分。
CGで組んで自分で修正入れるのを繰り返す。

2020/04/24

3ds max マテリアルの整理整頓

不要なマテリアルやら画像をシーン内から消して、更にシーンマテリアルをサンプルスロットに並べたい。と思いネットを徘徊。

このスレッドのスクリプトと、
https://forums.cgsociety.org/t/how-do-you-remove-all-unused-materials-from-the-scene-in-max-2015-by-script/1734054/12

こちらの動画のスクリプトを合体させて、
https://www.youtube.com/watch?reload=9&v=MF7akYH00bg

(
with undo off
(
    for j = 1 to 24 do meditmaterials[j] = standard()
    
    for j = scenematerials.count to 1 by -1 do deleteitem scenematerials j
    
    for j = 1 to (sme.getnumviews()) do
    (
        view = sme.getview j
        view.selectall()
        view.deleteselection()
    )
    savenodes #() ""
)
    if scenematerials.count > 24 then oMtlcount = 24 else oMtlcount = scenematerials.count 

    for i=1 to oMtlcount do
    (
        meditMaterials[i] = scenematerials[i]
    )
)



こんな具合に。
世界の先輩たちの力で生かされている。感謝。
もしお会いしたらビールを奢らせていただきたい。