找回密碼
 注冊帳號

掃一掃,訪問微社區

二維混合(2dblending)

2015-1-6 01:01| 發布者: 楊炎| 查看: 1364| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 二維混合 (2d blending)混合節點 (blend node)的檢視器 (inspector)中的第一個選項是混合類型 (blend type)。此下拉菜單用于選擇可以根據一個或兩個參數混合的不同混合類型之一。二維混合 (2d blending) 類型根據兩 ...

二維混合 (2d blending)

混合節點 (blend node)的檢視器 (inspector)中的第一個選項是混合類型 (blend type)。此下拉菜單用于選擇可以根據一個或兩個參數混合的不同混合類型之一。二維混合 (2d blending) 類型根據兩個參數混合子運動。

不同二維混合 (2d blend) 類型具有不同的適合用途。它們之間的差異在于計算各個運動影響力的方式。

二維簡單方向 (2d simple directional)

最適用于運動表示不同方向時,如“向前行走”、“向后行走”、“向左行走”和“向右行走”或是“向上瞄準”、“向下瞄準”、“向左瞄準”和“向右瞄準”。可以選擇包括位置 (0, 0) 處的單個運動,如“空閑”或“筆直瞄準”。在簡單方向 (simple directional) 類型中,相同方向上不應存在多個運動,如“向前行走”和“向前奔跑”。

二維任意方向 (2d freeform directional)

此混合類型也在運動表示不同方向時使用,但是可以在相同方向上具有多個運動,例如“向前行走”和“向前奔跑”。在任意方向 (freeform directional) 類型中,運動集應始終包括位置 (0, 0) 處的單個運動,如“空閑”。

二維任意笛卡爾 (2d freeform cartesian)

最適用于運動不表示不同方向時。使用任意笛卡爾 (freeform cartesian) 時,x 參數和 y 參數可以表示不同概念,如角速度和線速度。示例包括“向前行走而不轉彎”、“向前奔跑而不轉彎”、“向前行走并右轉”、“向前奔跑并右轉”等運動。

設置“混合類型” (blend type) 之后,需要執行的第一個操作是選擇將控制此混合樹 (blend tree)的動畫參數 (animation parameter)。在此示例中,參數為velocityx(掃射) 和velocityz(向前速度)。

隨后可以通過單擊+ -> 添加運動區域 (add motion field)將動畫片段 (animation clip) 添加到混合樹中,從而添加各個動畫。完成后,它應類似于下面這樣:

具有五個動畫片段 (animation clip) 的二維混合節點 (2d blend node)。

二維混合中的位置類似于一位混合中的閾值,除了存在分別對應于兩個參數的兩個值,而不是一個值。其沿水平 x 軸上的位置對應于第一個參數,其沿垂直 y 軸上的位置對應于第二個參數。向前行走動畫可能 velocityx 為 0 并且 velocityz 為 1.5,從而應將這些值鍵入運動的“位置 x”(pos x) 和“位置 y”(pos y) 數字字段。

二維混合示意圖 (the 2d blending diagram)

檢視器 (inspector) 頂部的示意圖顯示二維混合空間中的子運動位置。這些運動顯示為藍色點。未分配動畫片段 (animation clip) 或混合樹 (blend tree) 的運動對混合沒有影響力,顯示為灰色點。可以通過在示意圖中單擊其點來選擇運動。一旦選擇后,該運動對混合空間中每個點的影響力會展示為藍色區域。該區域在運動位置正下方最明顯(其中運動具有完全影響力,這表示其動畫權重為 1,而其他動畫的權重為 0)。隨著距離變遠,影響力會下降,同時其他運動的影響力會逐漸占優勢。

混合節點檢視器 (blend node inspector) 頂部的示意圖形象地展示各個子運動在參數值范圍內的權重。

紅色點指示兩個參數的值。如果在檢視器 (inspector)底部的預覽 (preview)中按播放 (play)并在示意圖中四處拖動紅色點,則可以看到參數值如何控制不同運動的混合。在示意圖中,還可以看到各個運動的影響力(表示為圍繞各個運動的圓形)。如果將紅色點移動到表示運動的藍色點之一上,則您會看到該運動的圓形會達到其最大半徑,而所有其他運動的圓形會縮小為不可見。在介于幾個運動之間的位置處,多個附近的運動會對混合具有一定影響力。如果選擇其中一個運動以查看該運動的藍色影響力區域,則可以看到,隨著四處移動紅色點,運動的圓形大小恰好對應于影響力區域在各個位置處的強度。

未選擇任何運動時,示意圖顯示所有影響力區域的混合,其中單個運動占優勢的位置處藍色較深,許多運動參與混合的位置處藍色較淺。

位置

可以通過單擊運動在示意圖中的對應藍色點并四處拖動,來更改運動的位置。還可以通過在“位置 x”(pos x) 和“位置 y”(pos y) 列的數字字段中鍵入數字,在運動列表中編輯運動的位置坐標

計算位置 (compute positions)下拉菜單會通過從動畫片段 (animation clip) 中的根運動獲取的數據選擇來設置位置。可供選擇的數據有速度 (speed)、速率 (velocity) x、速率 (velocity) y 或速率 (velocity) z 以及角速度 (angular speed)(以度或弧度為單位)。如果參數 (parameters)對應于這些屬性之一,則可以使用“計算位置”(compute positions)下拉菜單計算“位置 x”(pos x) 和/或“位置 y”(pos y)。

屬性:

功能:

速率 xz (velocity xz)

根據各個運動的 velocity.x 設置其“位置 x”(pos x),并根據其 velocity.z 設置其“位置 y”(pos y)。

速度和角速度 (speed and angular speed)

根據各個運動的角速度(以弧度/秒為單位)設置其“位置 x”(pos x),并根據其速度設置其“位置 y”(pos y)。

而且可以選擇計算位置 (compute position) -> x 位置 (x position from)和/或計算位置 (compute position) -> y 位置 (y position from)以便一次僅自動計算其中之一(另一個保持不變),從而進行混合和匹配。

屬性:

功能:

速度 (speed)

根據各個運動的速度(速率的量級)設置其“位置 x”(pos x) 或“位置 y”(pos y)。

速率 x (velocity x)

根據各個運動的 velocity.x 設置其“位置 x”(pos x) 或“位置 y”(pos y)。

速率 y (velocity y)

根據各個運動的 velocity.y 設置其“位置 x”(pos x) 或“位置 y”(pos y)。

速率 z (velocity z)

根據各個運動的 velocity.z 設置其“位置 x”(pos x) 或“位置 y”(pos y)。

角速度(弧度)(angular speed (rad))

根據各個運動的角速度(以弧度/秒為單位)設置其“位置 x”(pos x) 或“位置 y”(pos y)。

角速度(度) (angular speed (deg))

根據各個運動的角速度(以度/秒為單位)設置其“位置 x”(pos x) 或“位置 y”(pos y)。

也就是說,例如您的參數對應于側向速率和向前速率,并且有一個平均速率為 (0, 0, 0) 的空閑動畫、一個平均速率為 (0, 0, 1.5) 的行走動畫以及兩個速率分別為 (-1.5, 0, 0) 和 (1.5, 0, 0) 的掃射動畫。從下拉菜單中選擇速率 xz (velocity xz) 選項會根據這些速率的 x 和 z 坐標設置運動的位置。

(返回混合樹 (blend tree)))

相關閱讀

文章點評
相關文章
女校游泳队彩金