三段攻击动画的实现|Unity2022.2 最新教程《勇士传说》入门到进阶|4K

作者: M_Studio分类: 野生技能协会 发布时间: 2023-06-23 20:00:00 浏览:30945 次

三段攻击动画的实现|Unity2022.2 最新教程《勇士传说》入门到进阶|4K

石头下的心:
麦扣老师什么时候做一套高级3d的教程[doge]

【回复】回复 @f123888 : 其实把老师讲过的功能、方法发挥想象力拓展一下,再稍微差一些资料已经可以做出一款甚至多款非常成熟的游戏了。
【回复】回复 @f123888 :Ai看状态机,战斗系统可以自己搞[doge]
你好啊365:
麦扣老师制作一集教程大概要准备多久的,感觉好熟练,也好流畅[打call][打call]

【回复】直接一口气录完,都是实时的从来不后期配音。
【回复】回复 @打工人小棋 :用剪辑 如果哪说错了 原地重说一次就行了 我本来的工作就是专业剪辑
【回复】大佬怎么做到的?不用思考、没有语气词、不会找不到按钮,不用剪辑的吗?[哦呼]
尼古拉斯大伟酱:
出个那种卡牌或者回合制游戏的教程呗

【回复】卡牌游戏,桌游原型可以用tabletop simulator,如果你要写回合制或者卡牌,比如炉石、邪恶铭刻、昆特牌这种的,最大工作量是写对战逻辑管理,视图层的细化、动画就八仙过海,会什么用什么了。。。如果你想写个塔防、棋盘网格出来,推荐视图层直接用Unity的Grid组件来表示数据逻辑关系,然后在上面放一个成品Mesh,网格大小和Grid大小正好相等就行了(比如Grid设置网格边长是1,你导出或者找素材的时候也对应一个棋盘格为1m就行了)
【回复】回复 @厉害的大拇哥 : 独立游戏做3D的太少了,3A大作也不是一个人能做的。卡牌也只是UI互动有关的数据交互逻辑,呈现2D或3D影响不大
【回复】这类教程实在太少辣[笑哭]现在全是2d平台
LeakedApeYC:
有关Animator Transition的Exit Time部分是不是没有说清楚,其实Exit Time就是个bool条件,当存在其他条件的时候,过了这个百分比时间Exit Time会是true,之前则是false,也就是说只有过了Exit Time之后的那个窗口期,同时其他条件满足,才会发生状态转换transition,当Exit Time大于1的时候,就不会每次动画循环都判断一次了,而是整个条件种只判断一次,等于循环固定次后通过这个转换退出

【回复】回复 @我不遗憾丶 : 感觉需要写个预输入机制
【回复】回复 @我不遗憾丶 : 对,你可以去看一下对Exit Time的解释,在没有其他条件的时候,动画到了这个百分比进度就会退出状态,有其他条件的时候,在这个百分比进度之后+其他条件满足,则会退出这个状态 https://docs.unity3d.com/Manual/class-Transition.html 这个页面里搜Exit Time,在表格下面Conditions那栏有解释
【回复】意思是只有在0.9-1之间再按下攻击键才能触发2段攻击(exit time为true的意思)?其余时间都不行?
钟的向方反1:
attack2的samples值推荐设小点,不然动画播放太快,很容易检测不到键盘输入然后重复attack1、2

【回复】这个samples在那个地方,可以说一下吗[辣眼睛]
【回复】谢谢你,我还以为是哪没写对,调了速度之后就正常了
黑发少女沙耶:
暑假在家学,[星星眼]教程做的很好,之前在学校天天各种系统都做烦了[星星眼]

霸王骸骨:
迈扣这个系列会不会出盾牌格挡近战攻击的机制呢?[doge]

【回复】不会 可以自己做 逻辑都差不多
柏渡仁:
动画逻辑不用combo了,但我希望combo计数任然存在。 所以我把combo增加代码添加到3个attack动画behaviour的OnstateEnter阶段。 combo和isAttack的重置我放在了初始new state的behaviour的OnstateEnter阶段✧(≖ ◡ ≖✿)

该名称C2H5OH在:
Exit time那部分我试验了一下,结合评论区其他大佬的话,我觉得原理可以这样说: 1.我假设动画切换的根本逻辑是,检查每一帧,若当前帧所有条件(包括Exit time)为true,立即进行动画的转换; 2.Exit time视为一个bool条件,仅在百分比那一帧为true,如设Exit time=0.5,相当于仅在50%处检查所有条件; 3.Trigger也可视为一个bool条件,触发(本视频中为按下攻击键)后一直为true,直到进行某个动画转换(且该转换的condition含该Trigger),之后该Trigger为false(除非再次触发)(感觉像是为了转换被消耗掉了?) 实验支持:我进行了相关实验以证明我的说法, 0.我将攻击的第一二段动画帧率调为1便于观察,Exit time记为ext,且记每段攻击为a、b、c,攻击之间的转换为A、B(A、B除ext不同外,条件均为isAttack=true,attack(这是Trigger)),攻击转Exit的转换记为攻击结束,j键为我的攻击键; 1.A的ext设为0.5,攻击结束的条件仅有ext=0.1时,按下j,播放a的很少部分就转回待机(播放到0.1时ext为true,进行攻击结束的转换); 2.A、B的ext设为0.5,攻击结束的条件仅有ext=1时,按j,播a,此时在animator窗口发现attack为空心,在播放到一半之前再按a,attack变为实心,但动画未转变,播放到一半时发生A(证明了我的观点3,以及观点2ext为true的时间不在数值0.5之前) 3.A、B的ext设为0.5,攻击结束的条件仅有ext=1时,按j,播a,此时在animator窗口发现attack为空心,在播放到一半之后才按a,attack变为实心,但动画未转变,直到播完(证明了我的观点2ext为true的时间不在数值0.5之后,因为若0.5之后ext为true,那么所有条件都是true,应该进行A,除非观点1的假设不对)

【回复】回复 @该名称C2H5OH在 : 补充:5.A、B均无ext,攻击结束的条件仅有ext=1时,按j,播a,a放完之前按j,立即播b,b放完之前按j,立即播c
【回复】补充:4.实验2中进行A后attack变为空心
白露型駆逐艦海風:
萌新想问一下为什么attack既要设置trigger又要设置bool两个才能满足触发条件

【回复】bool为了保持动画状态和逻辑状态
【回复】回复 @M_Studio :老师还是有点不太懂,我尝试了一下删除isattack好像也能正常运行[2233娘_委屈]
【回复】回复 @M_Studio :谢谢老师回复,想明白了。
_葛飾北齋_:
我想问一问,像以前的经典游戏,艾诺迪亚4,这种ARPG,是用什么引擎开发的

【回复】游戏啥引擎都能做,2D主要就是Unity,Godot,RPG Maker
kexiu1213:
请问下各位,OnStateExit这个是动画切换时就会调用吗,像是attack1切换到attack2时是否会调用,总感觉isAttack这个状态切换太快了,导致越快速点击攻击键反而更不容易出现连击

【回复】回复 @光光的奇妙冒险Z :嗯,因为视频里都是帧动画,不是骨骼或者属性动画,所有transition time都是被设置成0的,就是中间没有过渡
【回复】回复 @LeakedApeYC :就是第一段动画没播完就切到第二段动画了吗[呲牙]
古河豆沙包:
巧了,正好想找多段攻击的教程[脱单doge]

SanasCN:
playeranimation里加anim.SetBool("isAttack", PlayerController.isAttack);会报错。B站视频没有iscrouch那段少了点内容,不知道这个playercontroller要怎么加到animation里。

光光的奇妙冒险:
老师问一下,按照视频的攻击动画切换方法,那第一段攻击动画是完整播放后才进入第二段,还是只播放百分之九十,剩下的百分之十就不播放了,直接切到第二段动画

渡边彻A:
这个只实现了人物站在左边攻击的时候,要是人物站在右边怎么同时更改攻击范围的方向呢?

【回复】回复 @M_Studio : 哦哦,老师,我现在懂了,视频里人物翻转的是scale,我前面尝试了flip翻转,所以子物体上的攻击没有跟着翻转
【回复】看来你可能没太看懂… 人物翻转 单位就随着翻转了孩子…

入门 UNITY 游戏开发教程 游戏开发 编程 经验分享 横版动作 跟着麦扣做游戏 万物研究所·第九期

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读