特效神器 C3D 到底有多強?


有夥伴問曉衡:Cocos Store 上除了成品小遊戲,還有那些機會?

我回答道:Creator 3D 特效美術,絕對有機會,最爲簡單的就是模仿『王者榮耀』中的技能來一打!

今天給大家推薦一篇 Cocos Creator 3D 的粒子編輯器教程,製作一個魔法陣特效,先來看一下最終的效果!

正文

看了效果,那麼到底是怎麼實現的呢?

「答案是:粒子系統」

接下來菜鳥就帶大家簡單的瞭解一下 Creator 的粒子系統,「"以下言論僅爲個人理解,錯誤莫噴,希望大家幫菜鳥糾正"」

1.主模塊介紹

首先菜鳥帶大家瞭解一下主模塊,以及主模塊中比較重要的幾個屬性:


文檔中對於以上屬性的描述:

  • 1.dration 粒子系統運行總時間
  • 2.capacity 粒子系統能生成的最大粒子數量
  • 3.loop 粒子系統是否循環播放
  • 4.startLifetime 粒子生命週期
  • 5.rateOverTime 每秒發射的粒子數

屬性描述補充

  • dration:粒子系統運行總時間,他表示的是粒子系統單次運行時間值,在具體點就是 「產生第一個粒子到產生最後一個粒子之間的時間,並非第一個粒子顯示到最後一個粒子消失的時間」
  • capacity:粒子系統能生成的最大粒子數量,表示粒子系統 「單次運行」最多可以產生的粒子數,
  • startLifetime: 粒子生命週期, 「單個粒子產生到消失的時間」
  • rateOverTime:粒子系統每秒發射的粒子數

注意

  • 當rateOverTime=10,dration=1時,每秒鐘產生的粒子實際數量爲rateOverTime-1,也就是說在總數足夠的情況下,運行實際產生的粒子數量爲9。 「再換一種說話,在總數足夠的情況下,假設粒子數爲n,要想知道n爲多少需要兩步操作,1. n<rateOverTime*dration,2.對第一步得到的n向下取整」
  • 第一個粒子產生到最後一個粒子消失的時間t爲:
    capacity < t < capacity+startLifetime
  • 當實際產生的粒子數大於capacity,粒子將停止產生,直到有粒子生命週期結束再開始產生

2.魔法陣實現

魔法陣的實現主要分爲兩部分,底盤和光束

底盤

底盤的效果顯示爲原點旋轉,具體設置:

  • 1.dration=5,capacity=1,startLifetime=5,這三個參數的設置確保了粒子運行時間屏幕上只有一個粒子,
  • rateOverTime=200 也就是每秒產生200個粒子,那麼第一個粒子的產生時間大概爲1/200s=0.005s,相當於粒子系統運行後馬上產生,
  • dration=5,capacity=1,startLifetime=5,rateOverTime=200這四個參數結合,可以實現粒子視覺顯示的時間和粒子系統運行時近似相等的情況,在loop狀態下可以實現完美的銜接效果
  • 粒子的旋轉是通過設置 「旋轉模塊」(RotationOvertimeModule) z軸的旋轉,
  • 在startLifetime生命週期內 粒子從初始角度勻速旋轉到180度
  • 設置材質,effect要選擇 「粒子渲染的材質 builtin-particle」

光束

  • 光束從底部上升,所以需要設置速度 StartSpeed
  • 光束的圖片是白色的,所以需要設置初始顏色,
  • 光束的產生不需要太多,所以將rateOverTime調小一點,設置爲2,每秒生成2個

爲了粒子產生位置比較隨機,使用了發射器模塊(ShapeModule)同時形狀在上升的過程中拉長,使用大小模塊(SizeOvertimeModule)透明度逐漸降低 使用顏色模塊(ColorOvertimeModule)設置光束所需的粒子材質

「到此爲止,光束的實現簡單描述完畢,文采有限,大家多多包涵,感覺寫的還行可以六個足跡奧!如有疑問可以私聊菜鳥奧,隨時爲大家服務」

    微信公衆號:搬磚小菜鳥 公衆號回覆 「魔法陣」 
獲取demo源碼


本文分享自微信公衆號 - Creator星球遊戲開發社區(creator-star)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章