[{"data":1,"prerenderedAt":339},["ShallowReactive",2],{"\u002F2017-11-11-animatioinstarterpack-note-02":3},{"id":4,"title":5,"body":6,"date":315,"description":12,"extension":316,"meta":317,"navigation":320,"path":332,"seo":333,"stem":334,"tags":335,"__hash__":338},"blogs\u002F_legacy\u002F2017\u002F2017-11-11-animatioinstarterpack-note-02.md","AnimatioinStarterPack的使用（下）",{"type":7,"value":8,"toc":301},"minimark",[9,13,16,19,24,27,30,34,37,40,47,50,56,59,62,65,68,71,74,80,83,89,92,96,99,102,105,108,198,201,207,210,216,219,225,228,234,237,243,246,252,255,258,261,264,267,273,276,279,283,286,289,292,295,298],[10,11,12],"p",{},"前面已经对官方的示例动画蓝图进行了还原，但是要作为原型测试时使用还是有些不足。",[10,14,15],{},"当前UE4版本为UE4.18.0。",[10,17,18],{},"这里继续对动画蓝图添加一些基本的功能。",[20,21,23],"h2",{"id":22},"dead","Dead",[10,25,26],{},"死亡动画也是可以放到状态机的，但是如果状态机的结构很复杂的话，就会陷入需要从每个状态拉到Dead状态的窘境。",[10,28,29],{},"这里就需要在制作之前对状态机进行规划，例如其实静止和移动这两个状态是可以合并到一个BlendSpace中去的，再加上下蹲动画的合并，同时，将Jump和RunJump状态进行统一，状态机的数量就会减少。这里由于是原型用的，之后动画资源可能会不一样，就不会进行详细的设计和修改了。",[31,32,33],"h3",{"id":33},"逻辑绑定",[10,35,36],{},"由于这里没有游戏逻辑，所以直接按下P键就判定玩家死亡。",[10,38,39],{},"在Character蓝图中，调用Disable Input来关闭玩家输入，设置标志位，3秒之后重置这些状态。在此就不做其他逻辑了。",[10,41,42],{},[43,44],"img",{"alt":45,"src":46},"clip_image001","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image001_thumb-1.png",[10,48,49],{},"在动画蓝图的更新函数中，取得Character的死亡标记，并设置到动画蓝图中",[10,51,52],{},[43,53],{"alt":54,"src":55},"clip_image002","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image002_thumb-1.png",[31,57,58],{"id":58},"动画蓝图",[10,60,61],{},"在状态机中添加Dead状态，随便拉一个Dead动画出来播放，不要循环。",[10,63,64],{},"然后从Idle->Dead设定条件为PawnDead，而从Dead->Idle为非PawnDead。",[10,66,67],{},"这样就有了基本的死亡动画逻辑。",[10,69,70],{},"其实官方总共准备了3种略有不同的站立死亡动画，这里可以选择随机的播放一种，使用名为Blend Poses by int的节点即可。",[10,72,73],{},"在Dead状态中，对动画进行操作",[10,75,76],{},[43,77],{"alt":78,"src":79},"clip_image003","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image003_thumb-1.png",[10,81,82],{},"DeadAnimatType是新建的Int变量，需要在检测到死亡标志位时随机指定到0~2之间。",[10,84,85],{},[43,86],{"alt":87,"src":88},"clip_image004","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image004_thumb-1.png",[10,90,91],{},"这样就有了随机死亡动画的功能了，不过这里由于没有添加Respawn的逻辑，3秒的Delay之后是直接原地站起来复活的:D",[20,93,95],{"id":94},"aimoffset","AimOffset",[10,97,98],{},"这也是UE4提供的动画Asset之一，其主要作用是在移动-静止动画上叠加的额外的瞄准动画。",[31,100,101],{"id":101},"资源准备",[10,103,104],{},"新建一个AimOffset打开编辑，能看到它和BlendSpace一样有两个轴向对动画进行Blend，不同之处在于AimOffset最终是叠加到已有的基础动作之上的。",[10,106,107],{},"要做AimOffset首先需要的是制作各个瞄准方向的基础动作，在AnimationStarterPack中，瞄准动画可以从Aim_Space_Hip的动画中取出，其中共有9个动作，帧数分别为：",[109,110,111,122],"table",{},[112,113,114],"thead",{},[115,116,117,120],"tr",{},[118,119],"th",{},[118,121],{},[123,124,125,134,142,150,158,166,174,182,190],"tbody",{},[115,126,127,131],{},[128,129,130],"td",{},"0",[128,132,133],{},"Aim_Center",[115,135,136,139],{},[128,137,138],{},"10",[128,140,141],{},"Aim_Center_Up",[115,143,144,147],{},[128,145,146],{},"20",[128,148,149],{},"Aim_Center_Down",[115,151,152,155],{},[128,153,154],{},"30",[128,156,157],{},"Aim_Left_Center",[115,159,160,163],{},[128,161,162],{},"40",[128,164,165],{},"Aim_Left_Up",[115,167,168,171],{},[128,169,170],{},"50",[128,172,173],{},"Aim_Left_Down",[115,175,176,179],{},[128,177,178],{},"60",[128,180,181],{},"Aim_Right_Center",[115,183,184,187],{},[128,185,186],{},"70",[128,188,189],{},"Aim_Right_Up",[115,191,192,195],{},[128,193,194],{},"80",[128,196,197],{},"Aim_Right_Down",[10,199,200],{},"操作上，对Anim_Space_Hip进行复制，通过最下方的帧导航到想要的帧。",[10,202,203],{},[43,204],{"alt":205,"src":206},"clip_image0015","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image0015_thumb.png",[10,208,209],{},"然后在帧导航条上点击右键，先删除左边的所有帧，再删除右边的所有帧",[10,211,212],{},[43,213],{"alt":214,"src":215},"clip_image0024","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image0024_thumb-1.png",[10,217,218],{},"这样就能得到9个只有一帧的动画了，全部选中，然后在右键菜单中使用集合编辑功能。",[10,220,221],{},[43,222],{"alt":223,"src":224},"clip_image0034","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image0034_thumb-1.png",[10,226,227],{},"然后对AdditiveSettings属性进行调整",[10,229,230],{},[43,231],{"alt":232,"src":233},"clip_image0044","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image0044_thumb.png",[10,235,236],{},"回到刚刚新建的AnimOffset，与BlendSpace类似，设定两个轴向的名称和范围",[10,238,239],{},[43,240],{"alt":241,"src":242},"clip_image005","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image005_thumb-1.png",[10,244,245],{},"然后将刚刚生成的9个动作拖放到关键插值点上去",[10,247,248],{},[43,249],{"alt":250,"src":251},"clip_image006","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image006_thumb-1.png",[10,253,254],{},"这样就可以了。",[31,256,58],{"id":257},"动画蓝图-1",[10,259,260],{},"接下来，到动画蓝图中对AnimOffset进行使用。",[10,262,263],{},"首先添加两个Float变量，分别命名Aim_Yaw和Aim_Pitch",[10,265,266],{},"然后到动画图表中，添加AnimOffset的使用",[10,268,269],{},[43,270],{"alt":271,"src":272},"clip_image007","\u002Fwp-content\u002Fuploads\u002F2017\u002F11\u002Fclip_image007_thumb-1.png",[10,274,275],{},"这时，在动画蓝图的预览中就可以对AimOffset进行调试了。",[10,277,278],{},"如果要实际使用的话，还要在BlueprintUpdateAnimation事件或者其他地方，对这两个值进行更新。由于我这边是做的TopDown，就不继续操作了。",[20,280,282],{"id":281},"montage","Montage",[10,284,285],{},"其他的一些动画，包括射击动画、装备切换动画都需要用到Montage。",[10,287,288],{},"这些动画都是与具体的资源相关性比较强的，在原型制作阶段制作的话就不会进行更多的时间投入了。",[10,290,291],{},"包括换枪、持枪、射击在内的动画要使用Motage，是因为身体的基本动作是一致的，不可能为每一个状态做一个对应的动画。",[10,293,294],{},"基本的装备切换，都是通过在Montage中添加动画通知，然后将物品切换Socket来做的。",[10,296,297],{},"由于只是要做一个动画蓝图来做原型用，而且要使用Montage的话，就必须从资源开始就有做好的规划，在没有进一步需求的情况下暂时就不会继续做下去了。",[10,299,300],{},"Montage的教程很多，直接搜索就可以了:D。",{"title":302,"searchDepth":303,"depth":304,"links":305},"",2,3,[306,310,314],{"id":22,"depth":303,"text":23,"children":307},[308,309],{"id":33,"depth":304,"text":33},{"id":58,"depth":304,"text":58},{"id":94,"depth":303,"text":95,"children":311},[312,313],{"id":101,"depth":304,"text":101},{"id":257,"depth":304,"text":58},{"id":281,"depth":303,"text":282},"2017-11-11","md",{"layout":318,"status":319,"published":320,"author":321,"author_login":323,"author_email":324,"wordpress_id":325,"wordpress_url":326,"date_gmt":327,"excerpt":328},"post","publish",true,{"display_name":322,"login":323,"email":324,"url":302},"风铃","flinkor","flinkor@foxmail.com",2091,"\u002F\u002F?p=2091","2017-11-11 02:52:21 +0000",{"type":7,"value":329},[330],[10,331,12],{},"\u002F2017-11-11-animatioinstarterpack-note-02",{"title":5,"description":12},"_legacy\u002F2017\u002F2017-11-11-animatioinstarterpack-note-02",[336,337],"UE4","Animation","yvxgzW9FrlIGR1YF3sTA3p7Scjk6Z2_J6JX0053oKt8",1788763179738]