首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AE CC 里还原三维骨骼动画

前言

本文充斥各种代码片段,十分用户不友好。

一直以来没紧跟软件更新新特性的习惯,最近发现AE的CC2018版本更新的2个新特性让我有点惊讶。一个是AE支持json格式的导入;另一个是AE开放了对路径点的表达式控制

最受益两个新特性的,莫过于有实际意义的图表动画。可以看下面Youtube这个教程视频,详细清晰地讲解了:

1. Excel表格数据转json格式。

2. 在AE里导入json数据局。

3. 使用内置脚本对路径每个点生成控制空图层。

4. 使用表达式处理json数据,并正确地控制路径形成折线图。

教程地址:https://www.youtube.com/watch?v=eo_TPwikuDI

看完教程我赶紧更新了软件,并想尝试一下新特性,但是做图表动画有点没新意,于是想试一下,能否把三维角色的运动信息导入AE里面控制路径!之所以专门写一篇推送记录,是因为今天在实现过程里卡住了几处,但是所幸都解决了,觉得过程有点意思,所以写下来给有缘人看。

最终效果

正文

一、获取角色骨骼动画的位置动画数据。

所用的角色动画素材来自Mixamo.com,上面有许多角色动画素材,下载下来是一个fbx文件,直接导入Houdini里。

Houdini用来处理三维的东西是十分自由方便的!我选取了模型上代表各个骨骼的点之后,将其他多余的点删去。问题来了,我要怎么把这个动画130帧的点位置信息导出Json格式的文件呢?

首先,简单查阅了一下Houdini没查到写入本地文本文件的方法和节点。接着,我想用vex来printf出来,但是vex执行好像是并行的,不能保证printf出来的顺序,弃用。最终想到Houdini有一个File Cache的节点,可以把模型数据缓存到本地。

这里有一个地方需要注意,缓存的文件名称里,默认是.bgeo.sc后缀,这样缓存下来的文件,打开是二进制的。我们缓存的时候把后缀去掉,则保存下来的文件是类似json格式的可读文件。

我们仔细看缓存的文件里面的数据,可以轻松找到我们想要的点位置信息,大概在74行这里。

二、将点动画位置数据处理成Json格式

这一步比较简单,选择一个你拿手的写脚本方式,Python、Node、Processing都可以。我对Processing比较熟,所以用Processing简单写了一个脚本,对生成的130个缓存文件进行处理,输出json文件。

经过处理生成的json文件打开如下图(十分完美):

三、AE导入角色骨骼Json数据

先用钢笔工具随意画出表示骨骼的路径,然后使用内置的脚本对路径每个点生成控制其运动的空对象,在每个空对象的position属性的表达式里,输入以下表达式:

注:这里必须新建一个空对象,承载几个表达式控制器,分别是x、y、z来设置空间偏移和s设置空间尺寸。

四、最终输出

可能有人会说,其实AE就算不支持Json文件导入,我们也可以直接把Json数据复制到表达式框,同样可以实现这个效果(就是代码又长又臭而已)。

然而,AE支持Json文件导入最大的优点在于:可以替换!!可以替换!!

我们只需要右键项目窗口的Json文件,替换成其他三位角色动画的Json文件,就能马上生成一个新的路径角色动画。

可以在AE里旋转摄像机改变视角

能看到这里真的是很给我面子了。希望对你有所帮助。

谢谢。晚安。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180319G1USRT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券