# **程序化生成的風格化火焰**
## **零、需求分析**
**H子**:**AOI**老師!有個問題,我想要做火焰特效,但是我對特效繪制有點不在行。而且購買或者的話,總是很難得到足夠數量的素材,風格的協調也又點問題呢。
**AOI**:你可以找熟悉特效朋友幫忙畫適合風格的素材嘛。
**H子**:但是我沒有朋友呢。
**AOI**:......
**H子**:嗯???
**AOI**:好吧,程序就是我們最好的朋友。來嘗試做程序化的火焰特效吧。
還是慣例的先進行需求分析。
首先確定一下火焰到底是什么。
**H子**:唔~火焰嘛,是一種能量發光發熱的表現。
**AOI**:嗯,具體形態上的表現呢。
**H子**:會擴張并且上升,還會搖曳,上升過程還會收縮......唔,大概是這樣子?還有就是焰心和外焰的溫度不同導致顏色不同?
**AOI**:對了,對于外觀雖然說是有那么一套整理出來的定義,但是實際上還是根據實際情況有不同的主觀理解。具體的就自己感性的或者理性的去認識吧。
首先把需求整理一下:
1. 火焰的形態
2. 能量(燃料)的中心
3. 火焰的搖曳
4. 燃燒范圍的限制
5. 能量的上升
6. 火焰的顏色定義
可以從中見到,火焰的形態,能量中心,搖曳效果等的,都有對紋理的依賴。所以根據實際情況,我們要進行程序化生成的軟件選擇。雖然Blender確實可以程序化生成一部分的紋理,但是在便利性上依舊不如SubstanceDesigner,而且,使用SubstanceDesigner也可以暴露出參數,在游戲引擎里面根據需要生成和編輯隨機紋理,而無需回到SubstanceDesigner的流程。
因此選定**SubstanceDesigner**作為創建紋理的軟件。而游戲引擎方面則使用Unity以及可視化Shader開發插件**ShaderForge**進行火焰特效的制作。