目标
目标是在上一篇部落格《學習UE4動畫藍圖:建立一個射擊姿勢并使用》的基礎上,讓射擊姿勢可以瞄準朝向相機的方向。
學習過程中主要參考了《建立瞄準偏移 | Unreal Engine Documentation》。
1. 建立9方向的單幀動畫序列
我之前的一個誤區是:瞄準偏移由靜态(指單幀)的姿勢混合,但是當我試圖将姿勢拖入建立的瞄準偏移時發現被提示是個無效的資源類型:
也就是說,瞄準偏移是由動态(指多幀)的動畫序列混合而成的,其本身也可以是動态的。這樣看來它和2維的混合空間就類似了,隻不過差別在于它要求動畫序列是Additive的(即表示一個增量),否則拖入動畫序列時會被提示:
不過,我目前的這個資源(
Aim_Space_Ironsights動畫序列
)是一個瞄準方向隻對應一幀,是以用來混合的動畫都是單幀的(即雖然隻有一幀,但資源類型不是姿勢,而是動畫序列)。
下面建立9個方向的單幀動畫:
1.1 複制
先将
Aim_Space_Ironsights
複制出9份來,并分别以方向來命名:
1.2 保留需要的姿勢幀删除其他所有幀
各個方向的幀在
Aim_Space_Ironsights
中在:
方向 | 幀 |
---|---|
Aim_Center_Center | |
Aim_Center_Up | 10 |
Aim_Center_Down | 20 |
Aim_Left_Center | 30 |
Aim_Left_Up | 40 |
Aim_Left_Down | 50 |
Aim_Right_Center | 60 |
Aim_Right_Up | 70 |
Aim_Right_Down | 80 |
例如對于
Aim_Center_Down
,所做的操作如下:
1) 打開
Aim_Center_Down
2) 選擇到第20幀
3) 右鍵,點移除幀0到幀20之間的幀
4) 回到0幀,右鍵點移除幀1到幀68之間的幀
1.3 批量設定屬性
接下來需要設定 Additive 動畫相關的屬性。一共有九個,批量設定會更快。
選中9個動畫,右鍵選擇通過屬性矩陣進行批量編輯
随後編輯屬性:
- 附加動畫類型(Additive Anim Type) 更改為 模型空間(Mesh Space)
- 基礎姿勢類型(Base Pose Type) 更改為 標明動畫幀(Selected animation frame)
- 基礎姿勢動畫(Base Pose Animation)選擇
,記住現在的選擇。ThirdPersonIdle
2.建立瞄準偏移資源
2.1建立
右鍵骨架選擇建立目标偏移(我翻譯成瞄準偏移)。這将從這個骨架建立一個瞄準偏移資源。
命名為
ShootingAimOffset
:
2.2編輯
輕按兩下打開資源,在細節面闆中設定水準和垂直軸的名字與值範圍:
将之前做的9個單幀動畫拖入到對應位置:
2.3預覽
在 資源詳情(Asset Details) 面闆中,将 附加設定(Additive Settings) 下的預覽基礎姿勢(Preview Base Pose) 選項設定為
ThirdPersonIdle
可預覽:
3. 動畫藍圖的 AnimGraph
上一篇《學習UE4動畫藍圖:建立一個射擊姿勢并使用》中的設計姿勢節點(Aim_Center_Center : Pose_0)将由
ShootingAimOffset
取代(隻要将瞄準偏移資源拖入就可以建立節點):
另外需要注意的是:
- 其輸入的姿勢應該是
ThirdPersonIdle
- Yaw和Pitch的值是變量,将會在之後的事件圖表中設定
4. 動畫藍圖的 事件圖表
在事件圖表中添加設定瞄準角度的内容:
需要注意的是:
- 旋轉的偏移是由
和GetControlRotation
通過GetActorRotation
函數計算得來Delta
- 獲得的角度需要
到Clamp
到-90
之間。90