初訪Chaos Group:走進藝術家的創意小房間
2013年4月13日至16日,我第一次來到保加利亞的首都索菲亞。當時,我還在卡達半島電視台(Al Jazeera)工作,從中東飛往保加利亞並不算太遠。途中經過伊斯坦堡轉機,而這趟旅程的目的,是受Christophe Cot之邀,前往Chaos Group總部參加V-Ray認證考試。這趟旅程中,有一天安排了與當時的CEO——Peter Mitev的面試,但這部分的細節,我會留待另一篇文章再談。
2013年4月13日至16日,我第一次來到保加利亞的首都索菲亞。當時,我還在卡達半島電視台(Al Jazeera)工作,從中東飛往保加利亞並不算太遠。途中經過伊斯坦堡轉機,而這趟旅程的目的,是受Christophe Cot之邀,前往Chaos Group總部參加V-Ray認證考試。這趟旅程中,有一天安排了與當時的CEO——Peter Mitev的面試,但這部分的細節,我會留待另一篇文章再談。
2024 年 5 月 17 日,我的主管 Claudio Meireles 在視訊會議中正式通知我遭到裁員。他在會議中表示,自己前一晚輾轉難眠,戰戰兢兢地準備這場談話。然而,幾分鐘後,他卻坦承,早在半年前(2023 年 11 月 17 日左右),上級主管(他未透露具體身分)便已經決定裁撤我的職位,而他選擇隱瞞這件事,直到當天才對我說明。
這代表什麼?
身為直屬主管的 Claudio 刻意隱瞞長達半年,不僅未提供內部轉調機會,甚至沒有讓我有時間提前規劃未來。他對下屬的欺瞞,不只是缺乏誠信,更完全背離了一位主管應有的專業責任。如果管理層無法為團隊爭取應有的權益,員工又憑什麼全心投入工作?
不過,這次裁員並非毫無徵兆。回顧過去半年,我發現公司內部對我的權限與職能發生了多起異常變化。這些變化看似獨立,卻在裁員決定生效前層層疊加,成為不容忽視的訊號。希望這些觀察能幫助職場同行與前同事,在類似情境中提高警覺。
2024 年 5 月 17 日,我的直屬主管 Claudio Meireles 透過視訊會議通知我,公司決定解除與我的合約。這場對話結束了我在 Chaos Group 長達七年的職業生涯。而 Claudio——坦白說,是我在 Chaos 任職期間遇過最不專業的主管。至於他的「管理風格」,我將在另一篇文章中詳細闡述。
在科技公司,員工離職時寫封 Goodbye Letter(離別信)給全公司,是再平常不過的事。過去 Chaos 也有不少優秀人才主動離職,他們的離職信都能順利發送,而我也曾多次收到同事的告別郵件。然而,當我在 2024 年 5 月 30 日左右 將自己的離職信寄給全公司時,這封信竟然被公司內部的一位女士攔截,完全未能送達。
這種情況令人費解——連向曾經合作的同事表達感謝的機會都被剝奪?在其他同事的建議下,我最終選擇在一個較小的內部群組分享這封信。然而,如果連這樣的內容都需要被審查和封鎖,那麼 Chaos 的管理層究竟怎麼了?
如今,我決定讓這封信公開,讓所有人看看 Chaos 的內部文化正發生什麼變化。
SentinelOne 的 Logo 設計頗具象徵性——兩隻手十指緊扣,彷彿無法分開,又或像是一排咬合緊密的牙齒,給人一種牢不可破的感覺。但這種設計不僅不親切,反而帶著一絲詭異,甚至讓人聯想到電影中的反派角色。
這讓我想到遠距工作的情境。有些公司會「建議」員工安裝特定的防毒軟體,像是 SentinelOne 這類 雲端控管型的資安方案(Enterprise-Level Security Solutions)。由於這類安裝並非強制,公司往往會以較柔和的方式包裝,宣稱:「這款免費的防毒軟體能有效保護你的資料……」
企業 vs. 用戶:資安與個資的角力
首先,為何仍使用舊名 Phoenix FD 而非 Chaos Phoenix?從搜尋引擎優化(SEO)的角度來看,"Phoenix FD" 的辨識度遠勝於單一的 "Phoenix"。同理,"Chaos Group" 也比 "Chaos" 更具專一性與識別度。當用戶在 Google 搜尋 "Chaos" 時,結果往往充滿無關內容,導致資訊檢索的混亂。這同樣適用於 Phoenix FD 的命名問題。
然而,名稱僅是表層現象,更值得關注的是 Phoenix 在功能層面上的發展方向。目前,以下幾項功能亟待優化,以滿足用戶實際需求:
結論而言,Chaos 近期推出的 Chaos Arena 可能是極具爭議性的產品。
從技術架構來看,Chaos Arena 的核心技術與 Chaos Vantage 如出一轍,只是在虛擬攝影棚應用上進行了部分功能擴展,如攝影機追蹤與色彩管理。簡而言之,可將其視為虛擬攝影棚版本的 Chaos Vantage。
Chaos 在此產品的行銷上投入鉅資,不僅製作了一部電影級短片,更將其塑造為旗艦級產品進行全球推廣。然而,相較於此,Chaos 旗下其他產品線,如 Phoenix,卻未能獲得同等資源配置,即便 Phoenix 的市場潛力可能更為廣泛。
儘管高額行銷預算有助於提升品牌聲量,但 Chaos Arena 受限於市場規模與目標客群,其商業潛力值得商榷。該產品主要針對擁有大型 LED 虛擬攝影棚的客戶,而這類需求相對小眾,即便其定價策略鎖定影視製作公司與廣播機構,也難以成為市場主流產品。
此外,Chaos Vantage 本身的市場接受度已受限於其對 RTX 顯示卡的依賴。在 Unreal Engine 具備強大即時渲染生態系統的前提下,Chaos Vantage 並未能形成足夠的競爭優勢,這也解釋了該產品在市場上的推廣難度。相比之下,Unreal Engine 雖然在 RTX 硬體上運行效能更佳,但並不將其作為必要條件,使其適用範圍更廣,進而降低了市場門檻。
值得注意的是,Chaos 選擇將 Chaos Arena 包裝為全新產品,而非作為 Chaos Vantage 的擴展功能,反映出管理層的市場策略轉向。過去由Peter Mitev領導的Chaos Group以技術為本,專注於產品實用性與用戶需求,但自與德國 Enscape 併購後,公司決策似乎更側重行銷與投資價值,而非技術創新與市場需求導向。
從商業角度而言,若 Chaos 直接將 Chaos Vantage 擴展至虛擬攝影棚領域,或許更符合現有用戶的技術習慣與市場邏輯。然而,將其獨立為 Chaos Arena,可能是為了營造「新產品」的市場話題性,吸引投資者目光,並創造更具話題性的市場敘事。
綜合而言,Chaos 在 Phoenix 尚未獲得足夠資源拓展的情況下,卻將大量資源投入於市場較小的 Chaos Arena,這樣的策略值得進一步審視。從長遠來看,如何平衡技術研發與市場推廣,並確保資源分配符合市場需求,將成為 Chaos 未來發展的關鍵挑戰。
球去撞牆,牆碎掉 - 很經典的測試場景。同樣的效果可以有很多不同的設置都能做到,這裡我們介紹其中一種方法。
球是keyframe的,在撞擊到牆之前,牆先用voronoi切割,用PhysX Switch - Kinematic切換為不啟動鋼體運算。然後用Suface Test拾取那顆球,這時進入到下一個事件。再次添加PhysX Shape,這石剛體就會啟動運算,再加上PhysX Collision拾取那顆球。效果完成。
使用Suface Test的好處是,可以控制剛體啟動的時機,比較不會有碰撞交錯的問題。
以上設置不適合用於玻璃效果,因為玻璃是透明的不適合預先切碎的設置。
tyflow的Roation op - 當不勾選Affect particle shape orientation時,就相當於3ds max的Affect pivot only。可以使用Align to shape mesh來改變軸向,這個功能可以做很多事,比方說使用Voronoi op要把物件切割成木片時,軸向變得很重要。但又不想調整原始幾何體的軸向,就可用這個方法。
PhysX的碰撞,為了提升計算效率,會透過原始幾何體的Hull殼來計算。在某些情況,比方說碎裂的幾何體,碎片的Hull彼此相互交錯會造成一開始時就爆開。在Hull的Size multiplier中調低可避免Hull交錯的問題。
以前有個maxscript叫Detach Elements,可以把幾何體中的每個Elements拆分成一個一個獨立的幾何體。tyflow的Element Fracture op做的是一樣的事。
使用的時機: 物件有預先切割,比方說磚塊構成的房屋,由單一幾何體構成。但你想要拆成一塊一塊磚塊,這時就可用Element Fracture。
Phoenix在模擬時會記錄每個階段所花費的時間,統計放在Simulation Speed選單中。我們可以從這些數據來判斷要修改那些參數使來最佳化模擬的時間。
以上是模擬煙霧所得到的資料。佔26.1%最高的是Fluidity,這是在Dynamics捲展覽中的參數,可降低Quality來加速模擬。
再來佔第二高17.5%是Transport (Advection),可調整的是Steps Per Frame,這也是影響模擬結果最重要的參數之一。
其他的因素都沒有上述兩個影響那樣大,例如Vorticity或是其他Gravity與Buoyancy的影響都很輕。
當然實務操作上首先還是會先調整Voxel Size與Grid dimensions這兩個屬性。
如果是玻璃,預先碎裂看起來就不好,所以要在爆炸衝擊時才進行切割會比較好,該怎樣做呢?
首先,不管是用Multifracture或Voronoi Fracture op,在作用時間Timing都設置為Continous持續計算。這個效果常常見於Motion Effect。以前用thinkingParticles很複雜但是用tyflow卻能輕易做到。
先導入幾何體,然後用Face fracture切割成一個一個面。添加Scale op,在Scale中設置為Absolute。勾選Multiply by proximity。在Objects清單中添加場景移動中的球。 這樣球移動那哪裡,面就會縮小放大。 勾選Invert則效果相反。
tyflow提供各式力場,但都不如用PhysX的球體去推擠其他剛體來的效果更加真實。我們可以產生球體使其隨時間而變大來擠壓其他剛體。方法是添加Scale op,Timing設置為Continious,Scale設置為Relative multiply。將Scale value設置為150%。這樣球體就會隨著時間越來越大。但也不能讓它無限放大,因此在最後添加Delete op - Age。
PhysX的剛體計算會透過近似的幾何體進行 - 稱之為Hull。這個Hull可以是球體,方塊或是原本的幾何體,或是...合成出來的近似幾何體 Compound。
Hull的選擇很重要,它會影響模擬的速度與精確度。不夠精確會讓碎裂的物體在一開始就爆裂,不穩定。而 Compound是很不錯的Hull類型,它以Grid的模式去近似原本的幾何體。所以Slice Length越小,越精確。
用Voronoi Fracture或Multifracture op所切割的物體,很容易在一開始模擬時就爆開。在tyflow中的PhysX Shape中的Start penetrations起始穿透的選項中有提供Sticky starting penetrations,可以避免碎片在一開始就爆開。因此這個選項預設是啟動的。
當然這跟你剛體的Hull精確度有關,大部分情況Hull的類型不會很精確,有穿透是正常的。
如果想要一開始就計算所有的鋼體穿透,就選Process all penetrations。
tyflow Property Test - Neighbor count可以用來選取距離某粒子內的粒子。以此為例就是我們希望靠近子彈粒子的玻璃粒子再次碎裂,就可利用之。使用Property Test op,Test type選Neighbor count,在Test value選Greater than,Value 為0。根據實際需求,在Search value中設置距離範圍。
tyflow grow operator可以做出生長或是閃電的效果。 可以產生這樣的mesh之後,然後取其mesh,做出簡易的閃電動畫。
tyflow是基於particle flow的概念,所以基本上是一個事件傳到另一個事件的event-based particle system; 相較於thinkingParticles則是rule-based的。這兩種系統各有各的優缺點。
又是跟上一篇有關的內容。如果玻璃被掉到地上,要產生寫實的碎裂,在與地板接觸的位置應該有比較高密度的碎片。因此能根據接觸點來切割幾何體便很重要。利用Birth Objects先把Box導入到tyflow中,tyflow預設便會計算地板碰撞。當PhysX Collision觸發到下一個Voronoi Fracture時,其Voronoi point mode切換成Point Cloud。
這篇是前一篇的補充。如果要在撞擊點產生Point Force,我們必須要利用At PhysX Contact Points這個參數。Spawn operator中,Spawn mode選擇At PhysX Contact Points,這樣Point Force產生的位置才會在正好在子彈撞擊處。由上圖可看到Point Force的Gizmo顯示其範圍。
繼續談玻璃碎裂特效。tyflow有一個operator很方便 - Point Force點力場。就是根據粒子產生力場,很實用 (不知道為何thinkingParticles沒有類似的功能?!)。在撞擊的位置產生Spawn一顆粒子,然後產生Point Force。在Point Force中要指定受影響的玻璃碎片群組 - Simulation groups - 2。 產生子彈撞擊的瞬間衝擊力。
前一篇Glass Shattering with tyFlow玻璃碎裂特效part2,玻璃碎裂的中心是用一個sphere幾何體來控制,能不能改成用程序性的產生,槍指哪裡就在哪裡產生碎裂點呢? 答案就是tyflow的raycast operator。
因為官方網站上沒有相關資料,因此做瞭這個簡單統計,看看Phoenix FD的快取檔案中儲存品質(Storage Quality)與最終模擬產生的快取檔案的關係。
Storage Quality |
File Size (Mb) |
減少至原本的% |
14 |
245 |
- |
13 |
211 |
86.1 |
12 |
178 |
72.6 |
11 |
146 |
59.5 |
10 |
116 |
47.3 |
Phoenix FD預設的Storage Quality為14,我模擬了煙的效果共16 frames產生的AUR總快取大小為245Mb。當Storage Quality設置為13,檔案大小降至211Mb。大約為原本的86%。當品質降至10,檔案大小甚至可降至原本的一半以下。
渲染出來的品質整體來說幾乎沒有差別,只有在很細微的地方有差異。可以用jpg壓縮的狀況來比擬。