虚拟UP主进阶引导,Facerig+Live2D动作篇 您所在的位置:网站首页 b站直播虚拟形象下载不了怎么回事 虚拟UP主进阶引导,Facerig+Live2D动作篇

虚拟UP主进阶引导,Facerig+Live2D动作篇

2024-06-28 19:52| 来源: 网络整理| 查看: 265

        如何让你的Live2D形象拥有丰富的肢体语言与表情变化?这篇文章会引导你实现你想要的功能!

        作为虚拟UP主的解决方案之一的Live2D+Facerig方案,可以说是性价比最高的方案了——软件上的成本仅需数十元,就能制作出一个可以摇头晃脑眼睛不断抽搐的虚拟UP主出来。而目前大部分的虚拟UP主与Vtuber都是采用的这种方案。

        同时这个方案的学习门槛也是非常简单,简单到什么地步?简单到看两个视频你就能学会制作一个Live2D虚拟形象(大概吧,你悟性好的话):

        

        到此为止,已经能顺利创造出一个Live2D形象了,也能通过Facerig捕捉动作了(啊当然前提是买了Facerig和Live2D的DLC),可以作为能摇头晃脑的虚拟UP主出道了。但想要让虚拟形象拥有肢体动作,则还需更进一步(即标题的所谓“进阶”)。如何让Facerig+Live2D形象拥有更丰富的动作便是此篇专栏的主要内容了。

        首先让我们了解一下Facerig中使用的Live2D模型中包含哪些文件。Live2DDLC中附带了几个官方制作的Live2D模型,而这里面完成度最高的当属“shizuku”了。

模型“shizuku”与其对应的头像

        从目录下的文件数量就可以看出这个模型的完成度之高(刚从Modeler中输出的模型一般只有一个文件夹+两个文件而已),而这篇教程中会忽略那些较为复杂(我不懂)的内容,只介绍需要用到的部分。

        首先是*.model.json,这个文件的前缀是由创建模型时的命名决定的。是Live2DModeler输出模型时同时输出的配置文件,初始内容如下:

*.model.json的初始内容

※此处的“.json文件”与后文的“.cfg文件”均可使用记事本打开

        此文件无需做任何修改,之后的教程中所有的【模型名】都以此处的“name”为准,在后续命名文件与修改文件时都必须严格确认名称的对应,以免因为命名不同而导致找不到文件或命令无效等错误。Facerig遇到此类错误是不会报错的,因此一旦发生问题清查起来会十分痛苦。

        model.moc是模型的主要文件,包含动作参数等一系列信息,在修改建模参数后一定要记得输出moc并且覆盖掉旧版本。

        motions文件夹用于存放.mtn格式的动画文件,关于如何用Animator制作动画文件在我的前一个视频中已经进行过讲解:

        cc_【模型名】.cfg是让模型“动起来”的关键,是属于Facerig的配置文件,在Facerig启动时会载入此文件,并且在关闭重启前不会再次读取。关于模型动作的设置就在这个文件中,参考shizuku中的配置文件,一共有以下四种代码:

“cc_shizuku.cfg”中的代码

set_special_action_anim 【模型名】 '【动作名】.mtn' 【数字】

set_special_pose_param 【模型名】 '【参数ID】' 【参数值1】 【参数值2】 【数字】

set_arm_l_param 【模型名】 '【参数ID】' 【参数值1】 【参数值2】 【参数值3】

set_cam_pos 【模型名】 【X轴坐标】 【Y轴坐标】 【Z轴坐标】

        除去第四种为设置摄像机位置的代码外,其余三种代码均可用来实现动作,并且在Facerig的常规选项-偏好-关键约束中可以对其对应的快捷键进行设置,对照如下:

        set_special_action_anim对应“触发特殊动画”,代码最后的数字即对应特殊动画快捷键的编号

        set_special_pose_param对应“特殊姿势”,代码最后的数字即对应特殊动画快捷键的编号

        set_arm_l_param对应“手向左:上/激活独唱”,set_arm_r_param则对应“手向右:上/激活独唱”

Facerig的快捷键设置界面

        

        其中“特殊动画”是最具表现力的动作方案,因为其运用到了.mtn动画文件。这种方案的缺点在于控制性不强,动画时长固定,播放期间设定了关键帧的部位会强制以设定好的参数进行运动,并且无法同时播放两个动画,一段动画播放完前开始播放另一段动画可能会导致一部分因动画产生移动的部位无法正常归位。

        “特殊姿势”则是较为简单的一种动作方案,原理为通过按键让某一参数的值在两个固定值间切换,就像是一个“表情开关”。相比特殊动画,特殊姿势虽然只能让一个参数产生变化,但其优点在于不受时长制约,只需靠按键操控开关,并且可以同时激活多个对应参数不同的特殊姿势(从mea手冲时手部的动作来看,她用的应该是这种方案,即按键切换将手抬起/平放)。

        而“手向左/右:上”则是专门为手臂运动准备的一套操作了,操作不便且只能做到抬手功能,除非其他动作方案的快捷键都用完了了否则不建议使用这种方案。

        介绍完三种不同的方案后,就该来说说实现这三种方案的重点——参数了。

Modeler中的参数编辑界面

        有自己制作过Live2D模型的人应该不会对这个词感到陌生。Modeler中的参数是让模型动起来的关键,当我们设定一个名为“手部移动”ID为“Hand_move”的参数,并为手部设定对应的两个节点(假设参数的预设值是0,范围是0~1,选择小臂部位让小臂在值为0时水平摆放,值为1时竖直摆放)时,在0~1中调整参数的值,小臂便会发生运动。无论是哪一种动作方案,实际上都是通过改变参数的值来达到运动的效果。因此想要实现某种运动,就需要预先设计运动参数。

        那么参数会记录下哪些数值的变动呢?除了最基础的移动、旋转、缩放值外,其实参数中还记载了两个非常实用的信息——图层顺序和不透明度。

隐藏在小角落里的两个信息

      当你希望某个部件能够产生出现/消失的变化时,“不透明度”属性就派上了用场。当在参数值0处设置不透明度为0,值1时设置为100时,部件就会随着参数值的上升而逐渐消失(其实只是变成了完全透明的状态)。由此也可以让某些部件在平时隐藏起来,只有在触发了对应的动作后才显示。例如你制作了一个角色头上出现感叹号/疑问号的动画,在平时需要先把感叹号/疑问号的图形隐藏起来,就可以通过改变不透明度实现。

        而图层顺序也同样可以随着参数变动。一般情况下图层顺序是不需要改变的,毕竟各部位的遮挡关系一般情况下不会发生改变。但是如果要做出手插入口袋→手伸出口袋(挡住口袋)这样的变化的话,就需要改变图层的顺序,让手图层与口袋图层的遮挡关系发生变化了。

        免费的Modeler只支持设置最多30个参数,并且每个部件仅能绑定两个参数(除绑定参数外的任何参数发生改变都不会影响所绑定的参数,头部扭动这类能牵动其他部位的参数忽略不计),因此如何在种种限制下设计好自己想要的动作参数,就是各位UP主或是建模师该思考的事了,我在这也给不了太详细的教学与引导。

        在设计好参数之后,就该将参数用于Facerig配置文件中了。“特殊动画”方案的实现已经在视频中讲解过,这里就来讲解剩下的两种——“特殊姿势”与“手向左/右”如何实现:

        首先是“特殊姿势”:

        set_special_pose_param 【模型名】 '【参数ID】' 【参数值1】 【参数值2】 【数字】

        在单引号中写入设计好的动作参数的ID(如果忘了可以在参数设定中查看),之后的参数值1对应特殊姿势激活前的值,参数2对应特殊姿势激活后的值(当然反过来也没关系),数字即为对应的特殊姿势快捷键的编号。

        以前文中我设计的“手部移动”参数举例:

        set_special_pose_param yuki 'Hand_move' 0 1 2(注意空格)

        则模型在Facerig中默认手部为水平摆放,按下“特殊姿势2”的快捷键后则将手抬起,直到下次按键再将手放下。这时参数并不是直接从0变成1,而是会逐渐上升,所以能看到手臂产生运动而不是突然改变位置。但是变化的速度似乎不可变,大概在0.5秒左右。

        接下来是“手向左/右”:

        需要预先说明的是,手向左/右所使用的参数ID在Modeler的默认预设参数中就能找到,即“左腕(PARAM_ARM_L)”与“右腕(PARAM_ARM_R)”,因此复制此段代码时可以不修改原先设好的ID。

        set_arm_l_param 【模型名】 'PARAM_ARM_L' 【参数值1】 【参数值2】 【参数值3】

        注意这段代码中存在三个参数值而没有数字,因为“手向左”、“手向右”都只有一组快捷键。其中参数值1为默认值,即没有激活快捷键时对应的参数。当激活“手向左:上”(默认是shift+鼠标右键,虚拟形象的左右与我们相反)时参数的值会变为【值二】。此时上下移动鼠标,参数值便会在【值1】到【值2】间变动,即可以通过鼠标移动控制手部运动。而如果激活“手向左:激活独唱”时,参数值则会变为【值3】,此时左右移动鼠标会出现手部手指张合的变化(因为打不开shizuku的模型,所以暂不清楚这点是如何办到的)。由于一般情况下我们只有一个鼠标,所以“手向左”与“手向右”只能同时指挥,十分麻烦而且效果也不够理想。

        这两种代码的原理其实非常简单,就是改变指定参数的值来达到运动效果,而且由于一条代码只关联一个参数,所以只要设置的参数ID不冲突,就可以同时激活多个特殊姿势与“手向左/右”。但是在播放特殊动画时会让特殊姿势与“手向左/右”暂时失去效果直到动画播放完毕,并且在激活手向左/右(即同时按住shift+鼠标键)时特殊姿势的按键会失效(特殊动画按键依旧有效)。

        以上就是关于Facerig+Live2D的动作实现教程了。由于是初次编写教程可能会存在些许不足,还请直接无视谅解。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有