一、什麼是UE4動畫藍圖
UE4動畫藍圖是一種基於視覺編程的工具,旨在使動畫和交互設計師更輕鬆地創建、編輯和測試角色動畫。UE4動畫藍圖在UE4引擎中的位置和作用相當於C++代碼所處的位置和作用。
二、如何創建一個簡單的動畫藍圖
首先,創建一個角色藍圖。然後,添加一個Skeleton Mesh組件,並將其設置為角色藍圖的默認場景根組件。接着,點擊Skeleton Mesh,選擇「Create Animation Blueprint」。之後,UE4會提示用戶是否創建一個基於 AnimGraph 的動畫藍圖或基於StateMachine的動畫藍圖。選擇「Anim Graph」,然後將其命名為「CharacterAnimBlueprint」
AnimGraph(Graph) { FinalPoseResult = LocalToComponentSpace(FinalBlendRecursive(Result)); FinalPoseAdditive = LocalToComponentSpace(FinalBlendAdditive(Result)); OutputPose = (BlendPose(FinalPoseResult, FinalPoseAdditive, Weight)); DrawDebugPose(Graph, OutputPose); ReturnValue = OutputPose; }
這是創建的簡單動畫藍圖的基礎代碼,其中「AnimGraph」是 UE4 動畫藍圖的一部分。 這個代碼的作用是將最終的角色動作傳遞到遊戲引擎的組件中。
三、動畫狀態機
動畫藍圖中最常用的工具之一就是「狀態機」了。狀態機是 UE4 動畫系統的核心組件,負責管理遊戲對象在不同狀態下的動畫行為。 可以通過添加不同的狀態,然後以及將它們連接起來來創建一個自定義的狀態機。以下是一個基本動畫狀態機的樣例代碼:
Anim State Machine(BasicStateMachine) { Entry State(Default) { bCanEverTick = True; bCanTransitionOutOf = True; bCanTransitionInto = True; } State(State1) { bCanEverTick = True; bCanTransitionOutOf = True; bCanTransitionInto = True; } State(State2) { bCanEverTick = True; bCanTransitionOutOf = True; bCanTransitionInto = True; } DefaultState = Default; DefaultTransitions = ((Default, State1), (State1, State2)); }
這個動畫狀態機包含了一個 Entry state 和兩個狀態 State1 和State2,這兩個狀態之間有一個默認的轉換。 將動畫狀態機連同角色的骨架設定插件和適當的動畫文件關聯起來,就可以在 UE4 中啟動一個簡單的狀態機了。
四、純藍圖:從開始到結束的動畫
在 UE4 中,通過動畫藍圖,還可以創建不需要帶入動畫文件的完整動畫序列。當然,這種做法需要通過修改幀(frame)數、插值掩碼、本地空間坐標等手段讓這種動畫序列變得有意義。以下是創建一個純藍圖動畫的樣例:
Function(Lerpize) { Delta = (GetCurrentTime() - StartTime) / (EndTime - StartTime); if (Delta >= 1.0) { return TargetValue; } else { return Lerp(StartValue, TargetValue, Delta); } }
在該樣例代碼中,使用 Lerp 函數和「函數」節點分別創建了一個插值和過渡效果。這個函數將根據指定的開始和結束時間計算線性插值,並生成一個當前值,讓動畫能夠實現平滑過渡。
五、UE4動畫藍圖的其他用途
除了上述內容,UE4動畫藍圖還可以用於「動畫蒙太奇」、「重定向」、「事件觸發」、「循環」、「跳轉…」等一系列其他功能。在 UE4 引擎中,動畫藍圖幾乎是實現角色動畫和遊戲物理效果的終極工具。通過掌握其用法,遊戲開發者可以創造出豐富多樣、真實自然的遊戲場景和動畫效果。
原創文章,作者:UJJKZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370079.html