设为首页
收藏本站
开启辅助访问
登录
立即注册
快捷导航
发布信息
搜索
搜索
论坛
Portal
群组
Group
家园
Space
日志
Blog
导读
Guide
相册
Album
分享
Share
记录
Doing
广播
Follow
好友
排行榜
Ranklist
勋章
淘帖
Collection
道具
Magic
任务
发帖际遇
本版
用户
枫叶365 - www.Maple365.com - 全球华人中文论坛
»
论坛
›
全部板块
›
影视娱乐
›
游戏电玩
›
游戏中有哪些看上去很简单,但实际上需要极高技术力或是 ...
返回列表
发新帖
游戏中有哪些看上去很简单,但实际上需要极高技术力或是极高成本的细节?
[复制链接]
3851
|
0
|
2022-3-10 12:43:45
|
显示全部楼层
|
阅读模式
我说一个简单的:
角色怎么样自然地走路
?
% R4 B6 A' b2 p3 p0 @: m
在
Motion Matching
这个技术发展成熟之前,我们大部分的
游戏
中角色动作都是由
状态机
决定的,什么叫状态机呢?状态机就是我们预先定义了一些节点作为状态,比如跑,跳,下蹲,发呆。当我们传进用户输入的时候(比如按下了跑的按钮),那么角色将从一个状态转移到另一个状态,这个输入称为状态转移函数,也就是我们预定的一些规则,比如当角色在发呆的时候,按下跑的按钮,角色就转换为奔跑的状态。这张图是一个简单的角色移动的动画状态机:
. e4 \# j' Z" ^6 l# `" o
# u0 \- }! q5 C
. P. Z; b8 K# Q+ L9 x k: J
看起来似乎还不错也挺简单的对吧?那么问题在哪里呢?
$ ^5 p I+ e! e$ b3 x: K7 J
第一,
当角色动画从一个状态转移到另一个状态的时候,怎么样产生一个平滑自然的动作过度
?传统的状态机方法,往往是在当前状态到目标动作间,创建一个简单粗暴的线性插值,又或者直接停止当前动画的片段播放,转而播放目标动作的动画片段。这两种方法都会产生一个问题:
角色动作非常生硬
。比如角色上一秒正在向前奔跑,玩家突然按下了后退键,这时候角色应该如何行动?
真实世界中的人可能会先伸出一只脚刹停,然后转身,再反向发力奔跑
。但是如果使用动画状态机,往往角色的动作并没有这个过度,而是一瞬间从向前跑变成了向后跑的姿势,这就是角色动作中不自然的地方,玩家或许说不上来为什么,但是他们感觉得到。
8 G( c/ D' r! o( [
第二,
当角色的动画状态增加的时候怎么办
?根据我们前面的描述,状态转移函数其实是人为指定的规则,当状态增加时,也就意味这新的规则需要被传入,比如我们自然而然的知道,人跳在空中的时候,是不能转移到奔跑状态的,而是要先落地,但是这些规则计算机并不知道,所以需要人为指定,假设一个游戏中,角色除了发呆,奔跑,跳跃,还有爬墙,甩绳子,开枪,拳击这些状态(通常的第一人称类游戏,往往都有不下几十个状态),那么理论上设计者需要考虑任意两个状态之间有无转换,如何转换,那么其设计的复杂度会迅速提升,于是动画师就需要浪费大量的时间用于制定这些运动规则。
6 Y. g# b1 \- G- {8 W" @
育碧最早开始了motion matching的尝试,所谓motion matching,其核心思想是,
不再人为指定角色动作之间的转换,而是单纯地指定目标动作,而从当前动作到目标动作之间的插帧,则由计算机从动作数据库中自动找出一个最佳匹配,或者根据已有的动作数据,基于插值生成一个新的,最合理的动作
。那么如何衡量一个动作的合理性呢?这里我们可以引入非常多的“约束”,这个“约束”可能是基于用户的输入(比如按向后跑的键,强制要求角色掉头);可能是角色当前的速度、加速度;可能是角色的IK(反向动力学)数据(比如一个角色正在上楼,下一个动作脚尖必须贴在楼梯地面上);可能是物理引擎的碰撞检测反馈(比如下一秒角色碰到了一个比较矮的栏杆,必须低头才能通过)。
) }8 L# d& `2 D7 I) r9 y
如果我们把角色身上所有骨骼最终的位置、朝向看作一系列的变量,上面提到的约束看作是这些变量组成的等式或不等式,将基于动捕录制好的所有动作张成的线性空间看作这个约束的解空间,那么这个问题就变成了对于有限个变量和约束条件,在解空间内搜索最佳解的问题。于是动画师们基于经验去指定规则的方案,就变成了一个纯粹的数学物理问题。
+ M( @" B3 ~ k7 { O' d+ R
我们来看看基于motion matching这一思想实现的角色动作:
) w1 {) T8 D- X4 R/ A
* y8 M/ I7 F* |3 ~! u! x
, m8 h0 Y4 S( R. G, C
即使是怎么走路这么简单的问题,为了解决好也仍然需要大量的努力。所以真正了不起的技术往往都藏在这些不起眼的细节中。
7 p! R! y; ?) V. I# f# U1 i
=================================================
r N x5 C- Y/ G; Z5 p
补充一篇今年Siggraph 2020的新paper[1],仍然由育碧带来。这次育碧尝试了把神经网络和传统Motion Matching方案结合起来,在Motion Matching的基础框架下,把其中某些步骤的计算(需要消耗大量内存和计算量的)通过trained NN kernel来替换。这样既保证了学习的启发性(大量减少训练时长,同时保证结果的可预测性),又能够加速运行时的速度,减少存储开销。
! x8 s1 e# q) n% g- b
1 Z( U3 x/ U1 Y( u/ T
3 \. \4 v* ]. I" N
具体视频效果看这里:
+ h) ?- v5 _2 e5 t. K {& g
参考
' `1 b0 f# K! f! T# [# W
+ {- Y; n9 [5 w( f9 R- [
5 s8 x* _( v0 S2 B4 J% ?. Z
^LEARNED MOTION MATCHING https://montreal.ubisoft.com/en/learned-motion-matching-2/
8 }" P$ X- G* _3 X2 M4 V$ m
回复
使用道具
举报
提升卡
置顶卡(30天)
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
擦咯抖擦a
211
金钱
0
收听
0
听众
性别
保密
新手上路
新手上路, 积分 4, 距离下一级还需 496 积分
新手上路, 积分 4, 距离下一级还需 496 积分
金钱
211 元
加好友
发消息
回复楼主
返回列表
体育新闻
游戏电玩
美女图片
图文推荐
看了杨振宁102岁生日现场,才懂为何说翁帆是上天给他最后的礼物
昨天 01:07 PM
直击景德镇车祸现场:一家三口无一幸免于难,特斯拉120码飙车
昨天 09:53 AM
后悔啦?48岁翁帆为杨振宁庆102岁生日,全程和宾客寒暄无视丈夫
昨天 06:20 AM
态度180度转弯,乌克兰商量割地求和,中乌举行会晤,共识已达成
昨天 04:30 AM
后悔了?48岁翁帆为杨振宁庆102岁生日,全程和宾客寒暄无视丈夫
昨天 03:11 AM
热门排行
1
汪曾祺:人活一辈子,最要紧的是会生活
2
刚入职场混得再难,也别有这3种表现,不受领导重用
3
俞敏洪:人生最大遗憾是没有留学 并建议董宇辉留学
4
币圈又迎重大利好?特朗普团队据称考虑设立史上首个白宫加密货币职位
5
亚洲美女:百媚千娇,身材绝妙!
6
荒淫成什么样,才能干出这种事?竟让下人当众秽乱,自己围观取乐
7
58岁王志文断崖式衰老,富婆娇妻却依旧漂亮,与15岁儿子像爷孙
8
加强教师队伍建设 以教育家精神引领教育高质量发展
9
“心眼坏,必露于嘴”:开口就说这三种话的人,是心眼很坏的人
10
省会城市国庆旅游收入断崖:北京排第二,长沙倒数,第一出乎意料