Visual Effect Graph——系統和環境

一 系統(Systems)

系統指的是一個或多個定義視覺效果的獨立部分的環境。一個系統可以是一個粒子系統,一個粒子條帶系統,一個網格,或一個生成機。在graph視圖中,系統在它所包含的環境周圍繪製虛線框。

多個系統可以相互作用,在一個視覺效果圖:

  • 生成系統可以在一個或多個粒子系統中生成粒子。這是產生粒子的主要方法。
  • 粒子系統可以使用GPU事件在其他粒子系統中生成粒子。這種替代方法可以根據粒子死亡等模擬事件從其他粒子中生成出粒子。
  • 生成系統可以啓用和禁用其他生成系統。這允許您使用主生成系統來管理其他生成系統來同步粒子發射。

1 從模板創建系統

視覺效果圖形帶有預先構建的系統模板,您可以將其添加到圖形中。從模板創建一個系統:

  • 右鍵單擊工作區的空白空間,並選擇Create Node。
  • 在菜單中,選擇System。
  • 從列表中選擇一個模板。

2 系統模擬空間

一些系統使用模擬空間屬性來定義它用來模擬其內容的參考空間:

  • 本地空間系統在本地模擬遊戲對象的效果,該遊戲對象包含視覺效果組件(Visual Effect component)。
  • 世界空間系統獨立於包含視覺效果組件(Visual Effect component)的遊戲對象來模擬效果。

不管系統的模擬空間如何,您都可以使用可分隔屬性(Spaceable Properties)來訪問本地或世界值。

3 設置系統模擬空間

系統在其包含的每個環境的右上角顯示其模擬空間。這是系統的模擬空間標識符。如果環境不使用任何依賴於模擬空間的內容,它就不會顯示模擬空間標識符。

若要更改系統的模擬空間,請單擊系統的模擬空間標識符以在兼容空間中循環。

4 屬性中的模擬空間標識符

一些可分隔屬性顯示模擬空間標識符的較小版本。這並不改變系統的模擬空間,而是允許您在與系統的模擬空間不同的空間中表示一個值。例如,一個系統可以在世界空間中模擬,但是一個屬性可以是一個本地位置。

二 環境

環境是圖形工作流邏輯(垂直)的主要元素,它定義了操作和模擬之間的順序和關係。每個環境定義計算的一個階段,例如計算需要生成多少粒子、創建新粒子或更新所有活粒子。

環境在有意義時相互連接:在創建新粒子之後,初始化環境可以連接到更新粒子環境,或者直接連接到輸出粒子環境來渲染粒子,而不需要模擬它們。

1 創建和連接環境

環境是圖形元素,因此可以使用菜單右鍵單擊>添加節點、空格菜單或從另一個環境創建工作流(垂直)連接(僅提供兼容環境)來創建環境。

環境使用頂部和底部的端口相互連接。

2 配置環境

調整節點UI或檢查器中的環境設置可以更改操作符的外觀和行爲方式。

例如,將Quad Output環境的UV模式從簡單(Simple )更改爲FlipbookMotionBlend將爲上下文標頭添加額外的Flipbook大小、運動矢量映射和運動矢量縮放屬性。

3 流的兼容性

並不是所有的環境都可以以任何順序連接在一起。一些規則適用於保持一致的工作流程:

  • 環境通過兼容的輸入/輸出數據類型連接。
  • 事件可以連接到一個或多個事件/初始化環境。
  • 初始化環境可以有一個或多個SpawnEvent源,也可以有一個或多個GPUSpawnEvent源,但這些數據類型是互斥的。
  • 只有一個初始化可以連接到一個更新環境
  • 可以將任何輸出環境連接到初始化/更新環境。

以下是環境兼容性的概述表:

Context Input Data Type Output Data Type Specific Comments
Event None SpawnEvent (1+)  
Spawn SpawnEvent (1+) SpawnEvent (1+) Two input pins, start and stop the spawn context
GPU Event None SpawnEvent Outputs to Initialize Context
Initialize SpawnEvent (1+) / GPUSpawnEvent (1+) Particle (1) Can output to Particle Update or Particle Output. Input types SpawnEvent/GPUSpawnEvent are mutually exclusive(互斥).
Update Particle (1) Particle (1+) Can output to a Particle Update or Particle Output
Particle Output Particle (1) None Can either have input from an Initialize or Update
Static Mesh Output None None Standalone Context

4 環境類型概述

本節討論每種環境的所有常見設置。有關特定上下文的詳細信息,請參閱環境庫Context Library

5 事件

事件環境僅將名稱顯示爲需要在組件API上調用的字符串,以便將此事件發送到圖並從此節點激活工作流。

6 生成

生成環境是具有三種狀態的獨立系統:播放、停止和延遲。

  • 循環(運行)狀態意味着計算塊並執行新粒子的生成
  • 完成(空閒)狀態意味着生成機是關閉的,將不會生成粒子
  • DelayingBeforeLoop/DelayingAfterLoop (Waiting)狀態將停止生成粒子,直到用戶設置的延遲結束,然後重新開始生成粒子。

生成環境可以使用兼容塊自定義。

你可以在這裏here找到生成環境API引用。

7 開關

生成環境暴露兩個流輸入槽:開始和停止:

  • 啓動輸入重置和/或啓動生成系統:如果沒有連接,它將隱式地綁定到OnPlay事件。多次點擊開始和一次點擊開始的效果是一樣的。
  • 停止輸入將停止生成系統:如果沒有連接,它將隱式地綁定到OnStop事件

8 循環和延遲

生成環境包含一個狀態,並將基於循環系統執行生成粒子。

  • 生成環境可以在定義持續時間的循環期間發出(意味着內部的生成時間將在每個循環開始時重置)。默認情況下,持續時間是無限的。
  1. 爲了設置循環模式,在圖中選擇環境並在檢查器中更改循環持續時間彈出。(可能的值:無窮大、常數、隨機)
  • 生成環境可以執行一個、多個或無限多個循環。
  1. 爲了設置此設置,請在圖中選擇spawn上下文,並在檢查器中更改彈出的循環計數(可能的值:Infinite、Constant、Random)
  • 生成環境可以在每個循環之前和/或之後執行延遲。在延遲期間,衍生時間正常運行,但不執行衍生。
  1. 爲了設置這些設置,請在圖中選擇spawn上下文,並在檢查器中更改循環前的延遲和循環彈出後的延遲(可能的值:None、Constant、Random)

這是一個循環和延遲系統的可視化演示。

設置循環計數、循環持續時間和/或延遲將在上下文的標題上顯示新的可連接屬性。對這些值的評估將遵循以下規則:

  • 如果設置:循環計數是在環境的開始工作流輸入被命中時計算的。
  • 如果設置:循環持續時間在每次循環啓動時計算
  • 如果設置:循環延遲(之前/之後)在每次延遲開始時計算。

9 GPU事件

GPU事件環境是連接其他系統的輸入到輸出的GPU事件的實驗環境。它們不同於傳統的生成,因爲它們是由GPU計算的。只有一種衍生類可以連接到初始化環境(GPU事件和生成/事件是互斥的)

GPU事件環境不能使用塊自定義。

10 初始化

初始化環境將產生新的粒子基於生成事件(SpawnEvent)數據,從事件,生成或GPU事件環境計算。

例如:當從spawn環境中收到一個創建200個新粒子的命令時,環境將被處理,並將導致對所有200個新粒子執行環境的塊。

可以使用兼容塊自定義初始化環境。

初始化環境是新系統的入口點。因此,它們在標題中顯示信息和配置:

Property/Setting Description
Bounds (Property)

Controls the Bounding box of the System

控制系統的邊框

Capacity (Setting)

Controls the allocation count of the System

控制系統的分配計數

11 更新

更新環境根據初始化和更新環境計算的粒子數據更新所有活粒子。這些環境在每一幀都被執行,並將更新每一個粒子。

粒子更新環境還自動處理粒子的一些計算,以簡化常見的編輯任務。

可以使用兼容塊自定義更新環境。

Setting Description
Integration None : No velocity Integration / 沒有速度的集成
Euler : Applies simple Euler velocity integration to the particles positions every frame./每一幀應用簡單的歐拉速度積分粒子位置。
Angular Integration None : No velocity Integration  / 沒有速度的集成
Euler : Applies simple Euler angular velocity integration to the particles angles every frame. / 將簡單的歐拉角速度積分應用於每一幀的粒子角度。
Age Particles If Age attribute is used, Controls whether update will make particles age over time. / 如果使用年齡屬性,則控制更新是否會使粒子隨時間老化。
Reap Particles If Age and Lifetime attributes are used, Control whether update will kill all particles which age is greater than its lifetime./ 如果使用年齡和生存期屬性,控制更新是否會殺死所有大於其生存期的粒子。

12 輸出

輸出環境根據來自初始化或更新環境的粒子數據,渲染具有不同模式和設置的系統。每個元素都將使用特定的配置作爲特定的原語進行呈現。

可以使用兼容塊自定義輸出環境。

有關更多信息,以及所有輸出上下文及其設置的完整列表,請參見輸出上下文引用Output Contexts Reference

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