【Perception Neuron Pro】MotionBuilder数据实时与动画烘焙
对于内容创作者来说,再好的工具目的都是优化工作流。所以今天我将和大家分享:
一、如何在MotionBuilder中使用Neuron Pro设备的动捕数据制作角色动画
二、如何在MotionBuilder中实时传输Neuron Pro设备的数据给模型
在开始之前,大家可以看一下Neuron上一代产品在内容创作者手中有怎么样的精彩表现,向大家推荐一下B站特效大神——神奇的老皮
在视频里,UP主老皮身上穿的,就是Noitom惯性动捕上一代的Neuron设备
可以看到,高达模型完全和老皮保持了一致的动作,这一技术完全可以通过Neuron与3D软件的实时传输来做到。那么,现在进入正题,如何将我们穿上动捕设备以后做的动作,同步到我们只做的模型里面。
首先,我们先来看看如何将已经录制好的动作文件,同步到我们的模型中。
前面和大家提到过了,在Axis Neuron Pro软件中,动捕文件是以Raw格式存放的,这种文件的兼容性不适用于常用的3D建模软件,因此我们需要先通过Axis Neuron Pro导出我们需要使用的人体特征动画文件(BVH文件)。
打开Axis Neruon Pro,在菜单栏选择File—Export Setting,打开导出设置界面,下方File Type可以进行导出格式的选择,我们选择BVH文件格式。其他选项可以不变,点击Export按钮导出文件。
获取到动作文件之后,就可以打开MotionBuilder软件了,笔者使用的软件版本是MotionBuilder2018.0.0.27。打开MotionBuider,把我们的3D模型导入场景中。如果没有准备模型,可以在MotionBuilder找一个预制的模型作为练习对象(例如:将Aragor拖到场景中)
这时,系统会自动将预设模型导入到Viewer视图中
接下来我们需要为模型创建骨骼,首先点击Viewer视图的Display按钮,唤出下拉菜单,选择X-Ray模式把模型的骨骼文件显示出来(快捷键Ctrl+A切换模式)
选中任意一块骨头,点击右侧Character Controls窗口蓝色小人重新定义骨骼(由于本文使用MotionBuilder预设模型,骨骼已经设定完毕,如果是自行导入的模型需要重新创建Skeleton,如图)
点击带小人的文件夹来重新定义骨骼,骨骼定义成功会像下图一样显示绿色的勾,这时候就可以点击文件夹图标钱两个位置的小锁,锁定设置。
至此,模型的骨骼定向完毕,我们可以给它重新命名为CharacterSkeleton。
将动捕文件(BVH文件)直接拖到场景中,选择BVH Import,如图:
接下来我们要给导入的BVH创建骨骼,在MotionBuilder里面同步模型和动作文件的原理就是,为它们(模型和动画文件)创建一套互相匹配的骨骼,然后把动作从我们录制的文件映射到模型上,带动模型做一模一样的动作。
随便往前拖动一下进度条,在Navigator窗口中重置骨架旋转角将骨架的姿势还原成T-POS,如图:
选中我们导入的骨架,在右侧Character Controls窗口,点击Difine选项下的Skeleton按钮。
此时会出现如下提示:
选择OK,然后在下一个弹出窗口选择Biped(两足动物),另一个选项代表多足动物,例如你想在MotionBuilder中做一只蜘蛛就需要选择Quadruped,此处不再赘述。
此时,骨骼配对完成,点击锁定
因为默认名称为Character,为了便于记忆,我们将其改为BVHCharacter(命名方式和模型的骨骼一致)。
这时候,关于BVH文件和模型的处理就全部完成了。在Character Controls窗口选择角色和动作源
此时再点击播放按键,就可以看到模型动作和我们录制的动作是一致的了。
最后,我们可以将动画烘焙到模型上了,烘焙的帧率推荐设置为30
点击Plot,等待烘焙完成就可以了。
接触完了数据后期处理,大家就能更好地理解实时数据传输,唯一的区别不过就是,数据从录制好的片段,变成了实时传递的数据流。首先打开Axis Neuron Pro的File-Settings,勾选Advanced BVH ,输入有效端口号,根据是否需要位移和Reference数据,到Output Format里面勾选对应的复选框
完成设置以后,到MotionBuilder中,先将模型导入场景,然后在Device里面找到Neuron Pro的插件,拖动添加到场景中
这时候可以看到下面这样的窗口,这个窗口用来设置MotionBuilder与Axis Neuron Pro的连接等信息,尤其是IP地址、端口和动作的对象名称必须与Axis Neuron Pro的设置完全一致
点击Online,当设备连接正常的时候左边的复选框会变为绿色,然后点击Live,但是此时场景中仍未发生任何变化。不要急,Online呈现绿色说明数据已经能稳定传递,点击窗口中的Mdel binding项的下拉菜单,创建一个新的MotionRobot,此时窗口状态如下,同时场景中出现了一个跟随你动作变化的骨骼:
在Character Controls窗口中,把模型的动作来源更换为MotionRobot,此时你就可以发现,就像数据文件驱动模型时一样,传递的骨骼动作数据和模型同步到了一起。
附上我在办公桌前打完字一手托着脑袋一手刷着知乎犯困的特写。
对产品和动捕感兴趣的朋友可以添加我的微信(Small_Face),进行更多关于相关的知识讨论。