GameDesign 板


LINE

大家好 小弟正在使用Unity上进行2D动作游戏开发 目前在角色的移动 跳跃之类的动作 都是透过计算速度并在update的时候更新 可是许多技能都带有位移的效果 这些位移通常与物理系统并不相关 而且位置的变化需要与动画保持一致 想请问这类型的移动是透过什麽方式去处理? 举个例子: 像是昇龙拳 在使用的时候角色会向右上方 沿着类似指数函数的路径移动 在这段时间所有移动都是固定的 并且与物理无关 技能结束後的下坠才会回到物理系统计算 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.122.77
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1542541506.A.B02.html
1F:→ dklassic: 不确定是不是常用的方法,不过我会用另一个 Game Object11/18 20:53
2F:→ dklassic: 当作玩家真正的位置,然後角色动画只是一个跟着玩家位置11/18 20:53
3F:→ dklassic: 跑的另一个 Game Object11/18 20:53
不太能理解你的做法是要达到什麽效果... 一般在gameobject上放动画不就是这样了吗? ※ 编辑: RoastSaury (101.8.214.130), 11/18/2018 21:40:21
4F:推 cjcat2266: 不同状态下有个负责更新速度和位置的virtual function 11/18 23:34
5F:→ cjcat2266: (或用switch或其他方法达到等同效果),一般状态下用速 11/18 23:34
6F:→ cjcat2266: 度更新位置,特殊状态可以直接更新位置或对速度做客制 11/18 23:34
7F:→ cjcat2266: 化更新。另外,除非主打物理模拟且模拟浮动性可接受, 11/18 23:34
8F:→ cjcat2266: 负责不建议用泛用型物理引擎处理动作游戏的核心机制, 11/18 23:34
9F:→ cjcat2266: 建议用客制特化碰撞侦测 11/18 23:34
10F:→ cjcat2266: 不同状态中也可以做短时间animation blend,消除不想要 11/18 23:35
11F:→ cjcat2266: 的视觉不连续性 11/18 23:35
12F:→ dklassic: 等等,我也不知道我刚刚理解成什麽了 XD 如果是平地结构 11/19 00:23
13F:→ dklassic: 的话直接把下落动画也一起做完,如果有着陆高度问题的 11/19 00:23
14F:→ dklassic: 话你直接写个加速度公式把人往下移,然後侦测跟地面的碰 11/19 00:23
15F:→ dklassic: 撞就好了。物理引擎带来的结果不好预期 11/19 00:23
看来我问题问的不够好XD 我目前是自己使用物理公式以及客制碰撞 角色基本的移动 跳跃 以及对碰撞处理都OK了 Cj大的做法的话 和我预期的蛮接近的 只是若是要直接更新位置 势必要纪录每个时间点角色应该出现的座标 感觉会 很麻烦(吧) 客制速度也考虑过 但感觉位置不太容易受控制 於是才上来询问有没有更轻松一点的解法 另外 想请问最简洁地取得当前animation的frame的方式是? 还是真的只能用animator.GetCurrentAnimatorStateInfo(0).normalizedTime? 这东西真的有够丑的啦 ※ 编辑: RoastSaury (140.113.122.77), 11/19/2018 00:51:37
16F:推 wix3000: 自己写一个 extension function啊y11/19 02:50
17F:→ wix3000: public static float NormalizedTime(this Animator ani)11/19 02:51
这样也只是包起来而已吧? ※ 编辑: RoastSaury (140.113.122.75), 11/19/2018 04:24:15
18F:推 cjcat2266: 是包成比较好看的API没错啊,除非能更动Unity底层的ani 11/19 07:37
19F:→ cjcat2266: m资料储存模式,那就只能靠重新包装 11/19 07:37
20F:推 cjcat2266: 另外,势必要纪录角色位置的意思是?不论是数学式可以 11/19 07:40
21F:→ cjcat2266: 表的动态或对anim取样,最少都只需要开始时间吧 11/19 07:40
22F:→ cjcat2266: 还有开始位置 11/19 07:45
23F:→ cjcat2266: 纪录的意思是说制作客制取样点函式吗?那实质上应该可11/19 07:52
24F:→ cjcat2266: 以用播放特定anim来实作,这个特殊状态就是一个特定ani11/19 07:52
25F:→ cjcat2266: m state这样11/19 07:52
嗯我就是取样的意思 我想到的另一个问题是 如果是类似这种取样的方式去位移 移动时与地图物件的互动可能会很差 (因为移动都写死了)
26F:推 cjcat2266: 回头一下,取frame的方式之所以是那样,是因为Unity的11/19 08:01
27F:→ cjcat2266: 动画系统是使用层式状态机模型,用层式模型是为了支援a11/19 08:01
28F:→ cjcat2266: nim blending,为达到圆滑anim的必备模型,而用状态机11/19 08:01
29F:→ cjcat2266: 则是泛用anim系统的常见选择,我认为还算合理啦11/19 08:01
30F:推 juicefish: tween之类的东西?11/19 08:36
31F:推 cjcat2266: 推楼上,特殊状态下也可用tween,如果是客制移动曲线,11/19 08:56
32F:→ cjcat2266: 也可override个客制tween11/19 08:56
Tween我还真的没用过 来研究一下好了 ※ 编辑: RoastSaury (140.113.136.220), 11/19/2018 10:33:25
33F:推 cjcat2266: 会上面的推文回文,取样其实不代表写死位移,可以写成11/19 12:27
34F:→ cjcat2266: 每次取样时取相对位移来更新位置,同时对环境做互动11/19 12:27
我的认知是 因为移动不再是透过速度去更新 在遇到障碍物的时候很难透过改变位移量 去表现出「受到阻挡」的状态 因为已经没有移动的函数了 ※ 编辑: RoastSaury (101.9.160.213), 11/19/2018 15:03:25
35F:推 cjcat2266: 应该还是可行。如果障碍是刚体,那可以试试移除障碍接 11/19 15:27
36F:→ cjcat2266: 触面法线方向的移动分量,然後依据要保留多少惯性而缩 11/19 15:27
37F:→ cjcat2266: 放接触面切面分量,该比例也可以随时间做圆滑处理,看11/19 15:27
38F:→ cjcat2266: 起来就不会突兀。如果是软性障碍,那可以尝试对位移量11/19 15:27
39F:→ cjcat2266: 做缩放,加上对碰撞面法线方向稍作偏移,制造出排斥力11/19 15:28
40F:→ cjcat2266: 的感觉。真要从速度下手,刚体障碍则用上述位移更新方11/19 15:28
41F:→ cjcat2266: 式去反推,软体障碍就随意罗11/19 15:28
42F:推 cjcat2266: 我有做过类似的效果,我觉得看起来还行。要点是其中会11/19 15:32
43F:→ cjcat2266: 牵扯到的比例参数,用了本身已是C1圆滑度的数值弹簧做11/19 15:32
44F:→ cjcat2266: 圆滑处理,就感觉蛮顺畅的11/19 15:32
45F:推 wix3000: 没有什麽问题是中介层解决不了的,如果有,就再包一层11/19 23:08
听不太懂XD 先谢谢各位的回答 我目前先尝试在不同时间点切换初速跟加速度看看 如果有问题再跟各位大大请教 谢谢~ ※ 编辑: RoastSaury (101.13.82.147), 11/20/2018 14:50:03
46F:推 NCTU87: 推烤鱼 11/21 21:54
47F:推 j60708123: 是烤鱼 11/21 21:58
48F:推 QQron: 写一个StateMachineBehaviour,用normalizedTimed控制时间 11/26 01:20
49F:→ QQron: 这样就很好对应动画 至於移动方式很多种,不喜欢velocity 11/26 01:22
50F:→ QQron: 就直接修改animator.transform.position 11/26 01:22







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP