tara.log

シェーダー備忘録

【Shader Forge】斬撃エフェクト

f:id:aitarai:20210624102548p:plain


f:id:aitarai:20210624102433g:plain
斬撃エフェクトを作成しました。
前回の「【Shader Forge】斬撃エフェクト(軌跡のみ) - tara.log」 に、エフェクトを追加したものです。
(エフェクト自体はたったの0.2秒ほどで終わってしまうのに、時間にして丸3日かけて作成しました。エフェクトとはそういうもの…)

テーマは「煙を纏う剣閃」です。
気持ちよさ、重さ、華麗な尾を引く表現… の欲張りセットを目指して作成しました。色んな斬撃エフェクトを参考にして、比較的納得のいく出来になったかなぁと思います。
エフェクトを実際の振りより1フレーム遅らせることでやや重みが出せます。

エフェクト階層

f:id:aitarai:20210624102733p:plain
おおよそ名前の通りです。斬撃部分と、ヒット部分でエフェクトの塊を分けて作成しています。シェーダーは合計で5つ作成しました。シェーダーの内約は、

  • 斬撃の軌跡(前回の記事)
  • 白の剣閃
  • 青い剣閃(フローマップで歪めた尾)
  • 振った後の煙(これもフローマップ)
  • ディストーション


Custom Data のカーブでアニメーションスピードや光るタイミングを制御している都合上、それぞれで専用のシェーダーを作らざるを得ませんでした。が、今になってみると、マルチマップ周りを含めてシンプルにプロパティ化できれば、全部同じ仕組みで作れそうな気がします。

  • プロパティ 固定値
    • テクスチャ1 RGB
    • テクスチャ2 フローマップ
    • color over life time
    • smooth step の幅(max)
    • flow map power(フローマップの強さ)
    • Trail length (剣閃の長さ add )
    • Trail strength (剣閃の強さ multiply )
  • Custom Data
    • アニメーション速度のカーブ(U、Vスクロール)
    • emission intensity のカーブ
    • smooth step の閾値のカーブ(min)

汎用シェーダーを作るならこのあたりでしょうか。
マルチマップのRGB要素別に、Rは剣閃、Gはサブ剣閃、のように指定してやれば、誰でも使うことができそうです。


ヒット部分のエフェクトは、全部既存の Particle System です。
剣閃のポリゴンは Maya で作成しましたが、今度は Houdini でプレハブ化して作ってみたい。

スローモーション

f:id:aitarai:20210624102437g:plain


f:id:aitarai:20210624103157p:plain
f:id:aitarai:20210624102702p:plain
止めても美しい。
見る角度によって、ディストーションがかかったりかからなかったりするのは、ソートを設定していないからです。

テクスチャ

f:id:aitarai:20210624102825p:plain
マルチマップテクスチャを2枚使用しました。



前回の記事
aitarai.hateblo.jp