天天看點

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

目标

目标是在上一篇部落格《學習UE4動畫藍圖:建立一個射擊姿勢并使用》的基礎上,讓射擊姿勢可以瞄準朝向相機的方向。

學習過程中主要參考了《建立瞄準偏移 | Unreal Engine Documentation》。

1. 建立9方向的單幀動畫序列

我之前的一個誤區是:瞄準偏移由靜态(指單幀)的姿勢混合,但是當我試圖将姿勢拖入建立的瞄準偏移時發現被提示是個無效的資源類型:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

也就是說,瞄準偏移是由動态(指多幀)的動畫序列混合而成的,其本身也可以是動态的。這樣看來它和2維的混合空間就類似了,隻不過差別在于它要求動畫序列是Additive的(即表示一個增量),否則拖入動畫序列時會被提示:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

不過,我目前的這個資源(

Aim_Space_Ironsights動畫序列

)是一個瞄準方向隻對應一幀,是以用來混合的動畫都是單幀的(即雖然隻有一幀,但資源類型不是姿勢,而是動畫序列)。

下面建立9個方向的單幀動畫:

1.1 複制

先将

Aim_Space_Ironsights

複制出9份來,并分别以方向來命名:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果
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幀

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

3) 右鍵,點移除幀0到幀20之間的幀

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

4) 回到0幀,右鍵點移除幀1到幀68之間的幀

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果
1.3 批量設定屬性

接下來需要設定 Additive 動畫相關的屬性。一共有九個,批量設定會更快。

選中9個動畫,右鍵選擇通過屬性矩陣進行批量編輯

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

随後編輯屬性:

  • 附加動畫類型(Additive Anim Type) 更改為 模型空間(Mesh Space)
  • 基礎姿勢類型(Base Pose Type) 更改為 標明動畫幀(Selected animation frame)
  • 基礎姿勢動畫(Base Pose Animation)選擇

    ThirdPersonIdle

    ,記住現在的選擇。
學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

2.建立瞄準偏移資源

2.1建立

右鍵骨架選擇建立目标偏移(我翻譯成瞄準偏移)。這将從這個骨架建立一個瞄準偏移資源。

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

命名為

ShootingAimOffset

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果
2.2編輯

輕按兩下打開資源,在細節面闆中設定水準和垂直軸的名字與值範圍:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

将之前做的9個單幀動畫拖入到對應位置:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果
2.3預覽

在 資源詳情(Asset Details) 面闆中,将 附加設定(Additive Settings) 下的預覽基礎姿勢(Preview Base Pose) 選項設定為

ThirdPersonIdle

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

可預覽:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

3. 動畫藍圖的 AnimGraph

上一篇《學習UE4動畫藍圖:建立一個射擊姿勢并使用》中的設計姿勢節點(Aim_Center_Center : Pose_0)将由

ShootingAimOffset

取代(隻要将瞄準偏移資源拖入就可以建立節點):

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

另外需要注意的是:

  • 其輸入的姿勢應該是

    ThirdPersonIdle

  • Yaw和Pitch的值是變量,将會在之後的事件圖表中設定

4. 動畫藍圖的 事件圖表

在事件圖表中添加設定瞄準角度的内容:

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

需要注意的是:

  • 旋轉的偏移是由

    GetControlRotation

    GetActorRotation

    通過

    Delta

    函數計算得來
  • 獲得的角度需要

    Clamp

    -90

    90

    之間。

效果

學習UE4動畫藍圖:使用AimOffset(瞄準偏移)目标1. 建立9方向的單幀動畫序列2.建立瞄準偏移資源3. 動畫藍圖的 AnimGraph4. 動畫藍圖的 事件圖表效果

繼續閱讀