UE4学习示例 Animation2

接下来分析一下场景中每个模块
1.1模块:好像没啥可分析的,就是一个骨骼模型,在循环播放JumpingJacks动作。
1.2模块:有BP_DemoTrigger和BP_DemoTrigger2两个触发器分别触发SingleAnimationBP和BlueprintCharacterForAnimDemo(通过设置TriggeredActor与SingleAnimationBP和BlueprintCharacterForAnimDemo相关联)。还记得BP_DemoTrigger中在触发ActorBeginOverlap时调用了TriggeredActor CallTriggerActor事件吗,接下来会用到。
SingleAnimationBP:该蓝图的在CallTriggerActor事件中播放了动作,即进入触发器时播放动作。
BlueprintCharacterForAnimDemo:该actor是SimpleAnimationBPCharacter蓝图,该蓝图在CallTriggerActor事件中设置了变量PlayAnimation为true,该变量在动作Owen_SimpleAnimation中使用 。
Owen_SimpleAnimation:在event图表中获得PlayAnimation变量并设置了Owen_SimpleAnimation的变量PlayAnimation。在AnimGraph中可以看到该动作是由一个状态机控制的,打开状态机可以看到
这里写图片描述
有Idle和State两个状态。Idle状态中播放了Idle动作
UE4学习示例 Animation2_第1张图片
State状态中播放了JumpingJacks动作。
UE4学习示例 Animation2_第2张图片
我们来看看这两个状态是如何切换的,点开这里写图片描述看到当变量PlayAnimation为true时由Idle变为State,点开这里写图片描述看到当PlayAnimation为false时由state变为idle。
1.3模块:该模块通过Directior和Speed两个BP_Slider两个蓝图控制LocomotionBP的动作
BP_Slider:通过ticks事件设置Slider的位置,并计算出Value。有一点很懵逼,就是不知道bIsActive什么时候会被设成True,以后问问不懵逼的小伙伴吧。
LocomotionBP:通过两个BP_Slider的Value设置了两个变量Direction和Speed。这两个变量在该Actor的SkeletalMesh1的动作文件Owner_SimpleLocomotionBlendSpace中使用。
Ower_SimpleLocomotionBlendSpace:在event图表中取得LocomotionBP的变量Direction和Speed并设置了Ower_SimpleLocomotionBlendSpace的Direction和Speed变量。该AnimationInstance中包含一个BlendSpace即Owen_Locomotion_Blendspace。
Owen_Locomotion_Blendspace:通过Direction(x)和Speed(y)影响动作
UE4学习示例 Animation2_第3张图片
在该BlendSpace中当Speed和Direction为0时,拖入动作Idle,随着Speed变化拖入Walk和Run动作,随着Direction的变化拖入left,fwd,right动作。这样就可以通过Direction和Speed来控制角色动作了。
1.4模块:该模块通过BP_Slider3和4两个BP_Slider蓝图控制AmiOffsetBP的动作
AmiOffsetBP: 通过两个BP_Slider的Value设置了两个变量Yaw和Pitch。这两个变量在该Actor的SkeletalMesh1的动作文件Owner_AimOffset_C中使用。
Owner_AimOffset_C: 在图表中取得AmiOffsetBP的变量Yaw和Pitch并设置了Owner_AimOffset_C的Yaw和Pitch变量。该AnimationInstance中包含一个BlendSpace即Owen_AimOffset。
Owen_AimOffset: 通过Yaw(x)和Pitch(y)影响动作,设置同上。
UE4学习示例 Animation2_第4张图片

你可能感兴趣的:(ue4,示例分析)