【Shader Forge】斬撃エフェクト
斬撃エフェクトを作成しました。
前回の「【Shader Forge】斬撃エフェクト(軌跡のみ) - tara.log」 に、エフェクトを追加したものです。
(エフェクト自体はたったの0.2秒ほどで終わってしまうのに、時間にして丸3日かけて作成しました。エフェクトとはそういうもの…)
テーマは「煙を纏う剣閃」です。
気持ちよさ、重さ、華麗な尾を引く表現… の欲張りセットを目指して作成しました。色んな斬撃エフェクトを参考にして、比較的納得のいく出来になったかなぁと思います。
エフェクトを実際の振りより1フレーム遅らせることでやや重みが出せます。
エフェクト階層
おおよそ名前の通りです。斬撃部分と、ヒット部分でエフェクトの塊を分けて作成しています。シェーダーは合計で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 でプレハブ化して作ってみたい。