すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

画像とHoudiniで作るアニメ風のFX

アニメ風FXをプロシージャルに生成する記事じゃないです。

手書きの画像からメッシュを生成してそれをHoudini上での配置などのコントロールを行う記事になります。

どんな画像でも基本的に応用できるので自分でそれっぽい絵が描ければかなり便利な手法なきがします。

youtu.be

youtu.be

hip file

0129_outline.zip - Google ドライブ

Houdini 19.0.498

記事で使用している手書き画像も入っています。

自由に使用可ですが、問題が起きてもこちらは責任を負いません。

画像の用意

f:id:godofsuama:20220130135456p:plain

f:id:godofsuama:20220130135511p:plain

こんな感じで見様見真似で画像を描きます。

iPad miniFlipaClipで描きました。

Callipeg(月¥100〜)と迷ったんですが、FlipaClipはプレミアム約1200円を買えば広告もなくなるのでコチラにしました。それでもpng連番書き出しのために約240円かかります。 ペンはCallipegのが種類多くて良かったですね。

ちなみにどちらもファイル名が"レイヤー名_####(FlipaClipは5桁).pngです。忌まわしきAE文化

メッシュ化

Traceで画像を読み込み、Edge Smoothでガタつきを軽減します。その後Divideでかなり細かく割ります。

TraceはHole Faceにチェックを入れておくと良いです。

f:id:godofsuama:20220130135837p:plain

Edgeだけにしたものを用意し、外周からの距離を計算します。

f:id:godofsuama:20220130135955p:plain

f:id:godofsuama:20220130140014p:plain

計算した距離を0-1にRemap

f:id:godofsuama:20220130140045p:plain

ちぎれた部分の押出距離を変えたい場合は画像のようにareaを測ってもOK

f:id:godofsuama:20220130140210p:plain

Displace Along Normalを使用して外周からの距離をベースに押し出します。

画像は炎なので上の方が押し出しが弱くなるようにBBOXでもmultiplyしています。

f:id:godofsuama:20220130140321p:plain

MirrorしてFuse等をしてRemeshし、きれいなメッシュにします。

f:id:godofsuama:20220130140445p:plain

ループ処理

アニメーションしているフレーム分キャッシュを取ります。(1-6frame)

そのキャッシュをPacked Disk Sequenceで読み込みます。

f:id:godofsuama:20220130140628p:plain

そうすると1-6frameでループするアニメーションになります。

それをさらに1-48fなどでDeformの処理をします。(前後左右に揺れたりする)

f:id:godofsuama:20220130140759p:plain

そして再度必要フレーム分キャッシュし、Packed Disk Sequenceで読み込みます。

配置

lineを用意し、id,N,up,rot,scaleなどを設定します。

f:id:godofsuama:20220130141022p:plain

Copy to Pointsをし、

f:id:godofsuama:20220130141059p:plain

Primitive WrangleでPacked Disk Sequenceのindex(フレーム番号)を操作します。

Seedを変えたり、2コマ打ちの処理などを行います。

f:id:godofsuama:20220130141200p:plain

稲妻

メッシュ化

基本は同じですが、外周からの距離を測る前に稲妻の伸びるアニメーションができるように処理を追加します。

straight skelton 2Dでメッシュの中心のラインを抽出し、Edge Transportで始点終点までのアトリビュートを作り、0-1にRemapします。

f:id:godofsuama:20220130141601p:plain

作成したアトリビュートをベースに、Deleteし、稲妻が伸びるっぽいアニメーションにします。

f:id:godofsuama:20220130141649p:plain

上記を5パターンの画像全部に行います。

f:id:godofsuama:20220130141719p:plain

キャッシュを取った後、Packed Disk Sequenceで読み込む際の設定のWrap ModeをStrictにします。これは1-6fの1回のみ再生する設定になります。

f:id:godofsuama:20220130142140p:plain

Copy to Pointsする際にバラバラに配置するためにVariantも作成します。

f:id:godofsuama:20220130141756p:plain

配置

筒を用意し、UVを作成します。

f:id:godofsuama:20220130141843p:plain

Scatterし、過去記事のようなUVベースでスクロールする処理を行います。

godofsuama.hatenablog.com

必要なアトリビュートを作成します。

f:id:godofsuama:20220130142019p:plain

Copy to Pointsしたのち、炎と違い1回しか再生されないので、indexをずらして必要なフレームから1回だけ再生されるようにします。

(10fから始めたかったので-10)

f:id:godofsuama:20220130142328p:plain

f:id:godofsuama:20220130142354p:plain