だらだら続いてますがそろそろけりをつけたい。
WarFXに必要な表現が入ってるので調査します
1.発砲
2.被弾
3.爆発
デス
色々パラメータはありますが、必要そうな所のみ抜粋します。
というわけで、小さく分解調査
MuzzleFlashes
銃口より表示されるガス、光です。向き : z 方面
時間 : 1s loop
Emission Rate : 10
LifeTime : 0.05
ということは、10発 / 1s のループってことね
■素材
発砲光 (Glow + Light + 発砲光 + 発砲光 + 発砲光 + ガス) /* 親 (子 + 子 + ・・・) */
親1
a1. 基本的な銃口よりの発砲光
Mesh : Plane 1x1 にテクスチャを張ったもの
Shader : WFX/ Addutuve Alpha8
Texture : 256x256 png File rgba(モノクロに見える) なんで、全チャンネル使うかね(もったいない
子6
b1.Glow 銃口周辺部の明るさのフェイク
Mesh : Billboard
Shader : WFX/ Addutuve Alpha8
Texture : 256x256 png File rgba(モノクロに見える)
b2.Light C#でスクリプト制御
0.05f 発光しろっていう制御 IEnmurator とかよくわからん前置が出てきた。
参考 > リンク 正直Unity用語かもしらん、まったく自信が無い
b3.Plane a1の複製 角度対応のための複製 45度 づつ
b4.Plane a1の複製 角度対応のための複製
b5.Plane a1の複製 角度対応のための複製
b6.Sparks 銃口、砲身側面よりでる、ガス
Mesh : Plane 1x1 にテクスチャを張ったもの
Shader : WFX/ Addutuve Alpha8
Texture : 256x256 png File rgba(モノクロに見える)
まとめ
1.複数のパーティクルを使用。親子付けしてあるだけである
謎がひとつ解けた。
SubEmiterでどう処理をしているかと思ったが、使ってない
異なるパーティクルシステムの塊だった罠 orz
親が再生状態に入ると、子も、再生に入る
2.謎
一つのMeshでやったらどうだろう。
たとえばa1,b3,b4,b5,b6を一つのMeshで作る。
問題点
・汎用性が乏しくなる
・ソートがおかしくなる
などの弊害はありそうだ。
3.スクリプトの発光が肝
被弾 1
破片が飛び散る。跡は無し■素材
要素は3つ、煙 ( 破片 + 煙 )
親
a1 Smoke1、着弾後に上がる煙
子
b1.Debris 飛び散る破片(今回はコンクリート)
LifeTime 0.5 - 2.0
Speed 2-6
Size 0.004 -0.11
Emission : 20
Shape : Cone
Color Over LifeTime : 最後は透明に
Size Over LifeTime : 中 > 大 > 小
Collision :
Texture Sheat Animation : X3, y3, WhileSeet, 0, 9, Random, 1
Rnderer : Billboard
Shader : Particles / Alpha blended
Texture : 256x256 png File rgba(モノクロに見える)
b2.Smoke 、着弾後勢い良く上がる煙コンクリートの粉末
被弾 2 (弾痕)
被弾後に破壊された跡。時間制限で消える要素は一つ増える 煙 ( 破片 + 煙 + 弾痕 )
(略 被弾1 に追加要素
Bullet Hole 弾痕の表示ポリ
Type : Mesh : Plane1x1
Mesh Renderer : CastShadow, ReceiveShadow・・・。
Shader : WFX / TransParentDiffuse
+Scriptで制御
//スクリプトの中身//
・UVを付ける 4分割でランダムで表示
・寿命を設定 10fとする
・フェードアウトのパーセンテージを設定 80%
・フェードアウト時間をすぎるとマテリアルのアルファ値を上げ、
最終的には見えなくする
イテレーターとか使ってるんで注意な( :p
だんだん消えるMesh!!! これだ!!!
爆発
中規模の爆発 元は地雷を想定火花:線(火花:粉 + 火花 : 粉大 + 火花 : マルチ + 爆発1 + 爆発2 + 火花 : 線3 + 煙)
多いな orz
SubEmitter使って無い
a1 : 火花(線) 重力ありの線上の火花
Renderer : Stretched Billboard
Shader : WFX/Additive Alpha8
Texture: 横長の棒 128x128 RGB (グレーとして使用)
Script : WFX_Auto Destruct Shuriken (スクリプト) 処理後削除する
b1 : 火花(粉) 火花の粉 セットで使用
Renderer : Billboard
Shader : WFX/Additive Alpha8
Texture: 粉5個 128x128 RGB (グレーとして使用)
b2 : 火花(粉大)重力あり 玉状
Renderer : Stretched Billboard
Shader : WFX/Additive Alpha8
Texture: 粉の玉 64x64 RGB (グレーとして使用)
b3 : 火花(マルチ) 火花の粉 セットで使用
Renderer : Stretched Billboard
Shader : WFX/Multiply Alpha8
Texture: 粉5個 128x128 RGB (グレーとして使用) b1 燃焼済み 灰として使用
b4 : 爆破1 大きな炎の塊
Renderer : Billboard
Shader : WFX/Additive Alpha8
Texture: 炎 256x256 RGB (グレーとして使用) 炎テクスチャ
b5 : 爆破2 大きな炎の塊2
Renderer : Billboard
Shader : WFX/Additive Alpha8
Texture: 炎 256x256 RGB (グレーとして使用) 炎テクスチャ 中心の位置が違う
b6 : 火花(粉) 火花の粉 線状 ちょっとぼかしてる
Renderer : Stretched Billboard
Shader : WFX/Additive Alpha8
Texture: 粉5個 128x128 RGB (グレーとして使用)
b7 : 煙 立ち上る直線状の煙
Renderer : Stretched Billboard
Shader : WFX/Additive(Soft) Alpha8
Texture: 256x256 RGB (グレーとして使用)
向きを下向きにし、サイズの拡大で煙を表現。
総括
・あまり、スプライトのアニメーションは使ってなかった。Shurikenで出来ない事
・オリジナルメッシュでの、透明度、色等のシェーダーパラメータの変異
Shurikenでないと出来ない事
・時間を利用した、透明度、色等のシェーダーパラメータの変異
どちらにしても出来ない事(スクリプトで出来る)
・UVスクロール
・サイズの変更
など、わりとどっちをとってもイバラ。
で、結局スクリプトを使う事になる。 orz
以下わりと急務だと思われるタスク
・スクリプトの制御 ああん
・ツールの開発 ううん
・シェーダーの拡張 ああん
C#くわー orz
0 件のコメント:
コメントを投稿