MMD一周目学习笔记
3D动画制作原理共通: 1 3D建模 → .obj .pmd .x .pmx(3dsMax自带) 2 骨骼蒙皮 → PmxEditor(3dsMax自带) 3 物理模拟 → PmxEditor(3dsMax自带) 4 运动帧 → MikuMikuDance(3dsMax自带)
…为啥非要用这几个经常不识别非日文系统语言的蛋疼停配软件…就是因为动作数据分享的比较多,入门玩3D就换个衣服换个舞蹈很方便,而这几个软件经常和主流3D软件骨骼物理以及渲染都不能通用。
3D建模软件:3dsMax,Maya,zbrush,水杉建模Metasequoia,Blender 3D扒模:黑色猎手NinjaRipper → 任意适用的3D游戏 建模原理:基本多边形,对照正侧面设计图(背景)
建模、贴图 3dsMax为例 入门
模型抽取:3dsMax运行ninjaRipper脚本导入在游戏中捕获的模型 模型整理:3dsMax入门,熟练使用右侧“万能板”修改器
3DsMax整理物料:
鼠标中键:抓手工具; Alt+鼠标中键:旋转视图; +/-:缩放移动用坐标轴; Z:所有视图最大化显示选定对象; H:按名称选择/显示场景物件或组列表 组-成组/解组,打开/关闭 Alt+X / 右键-对象属性 / 菜单栏[编辑]-对象属性:以半透明方式显示物体
调整物体的轴心位置:右侧万能板:“层次”- 轴-仅影响轴,xyz坐标右键自动归零 删重复:层管理器,选定区域内模型,快捷键H,删除重复材质。 拆模型: 视图窗口右键:隐藏 / 全部取消隐藏;孤立当前选择 / 结束隔离;冻结当前选择 / 解冻 右侧万能板:修改 - 选择元素(自动识别拆模):分离 / 附加 导出:水杉Metasequoia可用 OBJ 格式,翻转YZ-轴,导出材质-PNG
贴图原理:3D模型的UV线(高度线)+UV贴图(展开图)
透明贴图问题:有透明度信息(alpha通道)的贴图在不同环境下,与你肉眼看到的效果不同。若要导入MMD(渲染能力弱)最好处理成单层贴图(PS处理法线贴图、纹理贴图、AO贴图,处理方法:分通道叠加) ・3dsMax处理透明贴图:材质选择器/材质管理器(M):漫反射贴图为固有色,透明度贴图叠一层含alpha通道格式的图片(透明度信息:单通道-alpha通道) ・水杉建模:水杉建模是十分简易的3D入门软件。材料双击可勾选单个贴图显示alpha通道即可。
MMD系列软件对PNG透明贴图的白边问题: MMD系列软件(PmxEditor、MikuMikuDance)识别多个材质模型PNG贴图,以及背景,以列表最上方的材质透明度为准,只识别一次。 例如,实际模型从外到内为:发饰 - 毛绒透明发丝 - 底部头发 - 脑壳,在MMD系列软件的贴图列表顺序如果和模型从外到内顺序一样,就会显示一个透明的脑壳。所以贴图显示顺序应为:脑壳 - 底部头发 - 毛绒透明发丝 - 发饰。 到了MikuMikuDance也一样,天空盒 - 背景 - 人物。
PmxEditor原理,自己的零碎笔记
花了一晚上自己用软件实验了几次搞懂了PmxEditor物理模拟:
刚体: 在物理演算时用基本几何体之间相互作用模拟复杂3D物体。 一个刚体只能关联一个骨骼点,刚体和刚体之间通过Joint连接,而不是骨骼。 刚体模拟的是骨骼的体积。
※ 贴图 → UV线面 →(蒙皮)→ 骨骼
关联骨骼(点): 刚体运动的中心,不论是自运动还是跟随运动。 (注意区分:刚体的关联骨骼 与 Joint连接刚体) 刚体关联骨骼,Joint连接刚体。 当Joint≠骨骼时,Joint指挥的刚体将首先被Joint控制,其次再保持与关联骨骼的关系。 (一般MMD建模都是骨骼自动加刚体串
骨骼: 1 连接模型和模拟刚体互相运动 2 定位表皮中心,帮助建立模拟表皮体积感的刚体 3 移动和旋转刚体 4 父层骨骼指向 只是方便示意骨骼控制级关系,必须 子认亲骨骼之后才会跟随
※ Joint → 刚体 → 骨骼
刚体+Joint物理属性决定了骨骼的运动方式(皮筋还是钢筋)
刚体类型: 追踪骨骼=牢牢吸附骨骼,不能弹性惯性摇晃(模拟真实骨节) 物理演算=围绕骨骼,以连接器Joint为属性做自运动
Joint - 连接器 (实际意义的物理连接,弹性大小可在joint类型里选择:默认黄色,P2P是可伸长的那种橡皮筋儿…)
实验: 给物体A和B分别加上骨骼点(权重已经默认涂满),给骨骼套上刚体, 则这两个壳已经可以随着骨骼运动,并被刚体赋予了体积感,此时已经完成表皮=刚体这一模拟。
实验: ・两个刚体1、2,分别附着在两个自由各自独立的骨骼点A、B上。 当两个刚体属性为 [ 跟随骨骼 ] 时,他们分别跟着各自绑定的骨骼点运动; 当这骨B认亲骨骼为骨A时,只需移动或旋转骨A,骨B会跟着运动,刚体2会跟随刚体1运动; 当两个刚体属性为 [ 物理演算 ] 时,如果A骨没有附加在固定点上,骨头和刚体会一起掉在地上; 当设定刚体1属性为 [ 跟随骨骼 ]、刚体B属性为 [ 物理演算 ] 时,骨B和刚体2会跟随A的运动做物理震颤。
跟随骨骼 = 绝对黏着,物理演算 = 掉在地上,Joint连接器 = 刚体间的绳子
实验: ・建立骨骼ABC分别为刚体123的中心,刚体1跟随骨骼A,1-2、2-3之间Joint均为弹力。 若刚体2演算骨骼B,刚体3演算骨骼C,则刚体2、3以橡皮筋方式跟随1(骨A)运动; 若刚体2演算骨骼B不变,刚体3演算中心也设定为骨骼B: 则刚体3脱离原骨骼中心C、变为参照骨骼B、以2-3皮筋的方式震颤移动, 并且2-3的弹性皮筋运动会在运动过程中将刚体2推离质心B。
Joint类型: 附加弹力6DOF,6DOF,轴移动,都不会掉到地上, P2P(点结合)会掉到地上,某些情况也会摇摆?
PmxView —— 模型操作界面
Alt(左)+鼠标滚轮:缩放权重笔刷大小 Ctrl+W:在中心添加 “骨骼权重” (配合PE多功能信息处理插件 - 骨骼 - 批量修改骨骼亲子关系) Ctrl+X:扩展选择邻接面 Ctrl+K:只显示选中的顶点(其他顶点会隐藏) Ctrl+R:隐藏选中的顶点 Ctrl+I:显示所有隐藏的顶点
选 - 管理选择物体(扩大缩小移动旋转) G - 选择引导 宽度 - 副窗口 T - TransformView 绞 - 屏蔽顶点 / 材质
动 - 物体操作 ・将所选对象存档:MS存储,MR读取 ・移动旋转大小:操作-鼠标调节,值指定-数值调节
扩 - 扩展编辑 ◆ 刀:可将不够细化的面细化分割 ◆ 骨骼 - 系列(亲子关系)设定,点击“追加/设定”后,会按照鼠标依次点击的骨骼顺序生成亲子关系 ・刚体/Joint(待了解)
涂 - 权重/UV绘制
编辑 - 选择物体: ◆ 矢量复制范围中央位置 / 从矢量复制设定位置 (复制选区中央坐标)(以复制的坐标设定位置)
编辑 - 选择顶点: ◆ 向选区中心追加物体 - 骨骼 / 骨骼权重(Ctrl+W) / 刚体 ・顶点结合 (Ctrl+J)
编辑 - 选择面: ・正反面翻转 ・分离顶点后抽出新材质 ◆ 给邻接面选择范围扩张(Ctrl+X)(扩张选区到邻接面)
编辑 - 选择骨架: ◆ 选择子系列 ◆ 左右骨骼位置一致(将选区骨骼镜像化设置到对面) ◆ 制作基础刚体(追踪骨骼 / 物理演算)
编辑 - 权重相关材质(蒙皮) ◆ 选择一半模型顶点 & 从选择顶点的镜像设置权重,设定选择顶点为SDEF/ 设回到BDEF
编辑 - 添加简单元素
显示 - 视点旋转中心: ・视角初始化 Ctrl+1 ・以选中顶点为视点旋转中心 Ctrl+2 ・以选择骨骼为视点旋转中心 Ctrl+3 ・以选择面为视点旋转中心 Ctrl+4 ・是否显示旋转中心标志
仔细挖掘软件自带功能,已经足够便捷。 (emil汉化翻译有点不太精准,有些日汉语序问题,常用术语问题) 矢量=坐标,范围=选区, … 編集 - 選択オブジェクト - 範圍中央位置をベクトルコピー / ベクトルコピーから位置設定 編集 - 選択面 - 隣面へ選択範圍拡張
Pmx编辑 —— 程序界面
【编辑 - 插件 - Launcher - プラグインランチャ】 ◆ 将所有插件功能集合在一个界面使用,类似LimitedPluginLauncher
【编辑 - 插件 - System】 ・自动Backup ・简易刚体/Joint操作panel:批量旋转、移动刚体(Joint未操作成功……) ◆ 刚体group批量设定:管理大批量刚体的分组和冲突一览 ◆ 刚体/Joint选择表示:刚体可分组显示/隐藏,Joint可逐个类似材质绞一样显示隐藏 ・色操作辅助 ◆ list元素顺序修改:批量修改材质、骨骼、刚体、Joint的顺序到指定list选中项目的上方 ・位置offset:批量位移 - - ・Size变更:可修改模型大小 ・选择面两面化
PmxEditor 蒙皮、物理 零碎笔记
Emil的绑骨视频 https://space.bilibili.com/113016
0操作中心,1全亲,2center,3group, 做人体刚体只选:上半身x2,头(不需要脖子),下半身,上臂,下臂,大腿,小腿。——制作基础刚体-骨骼追踪。 group控制xz平面方向平移,center控制y轴竖直方向蹦跳。 人体组刚体Group与自身勾选不冲突。
T窗浏览部分材质的方法:材质选项透明度设为0
骨位置摆正:菜单栏选择中心顶点 选择一半顶点,插件点筛选,开始“涂”。 (孤立当前选区——筛选)
开启W4,勾选BDEF2(同时涂两个顶点的骨),选择左脚和左脚(即只涂一根骨节的了) 选择全亲,开始涂脚,脚100%从全亲里取得对脚的控制权。涂不准可尝试开启4视图。
将每个关节涂好后,设定权重为SDEF(菜单编辑-权重相关)。 镜像复制关节权重到对面后,对面也要再处理一遍关节过渡处属性……
胖次所有位置=从全亲分离出100下半身+下半身, 再将接缝区域从左足抽取出 左足-下半身50, 再将接缝区域的胖次边缘从下半身抽取左足-下半身50 (emil半面选区涂失效了,镜面复制权重后发现胖次中线有一块没涂上,(从全亲夺控制权疏漏) 再次选择从全亲抽取完整的胖次中心对下半身-下半身的100控制权)
上下半身接缝: 将胖次上沿从下半身里夺取上半身-下半身100的控制权 上下半身接缝: 裙子的腰带部位、上身的横隔膜以下&肚脐,都从全亲中夺取 上半身-下半身100控制权 肋骨-乳首从全亲夺取上半身-上半身2的100控制权 乳首以上的所有区域(手臂头肩)一起涂满上半身2从全亲里的100控制权 选直线渐变工具,选择对象上半身,会发现乳首以下-腰带-胖次上沿,都有深浅不一的红点分布,意思就是它们在全亲里的总控制权。 从隔膜往下到内裤上沿拉一条渐变,从隔膜往上到乳首再拉一条渐变。 躯干范围弯曲基本就自然了。 将裙子未涂满的部分从全亲中夺取下半身-下半身100控制权。
开始上半身2的分配: 短袖以下的胳膊从上半身2夺取左腕-左腕的100控制权, 短袖边缘第一条线从上半身2夺取左腕-左肩75控制权, 边缘往内第二条线从上半身2夺取左腕-左肩50控制权, 边缘往内第三条线从上半身2夺取左腕-左肩25控制权。 调节肩骨位置,使抬手更自然。
筛选出肩胛骨的选区: 从左肩里设定它对左腕-左肩0控制, 从上半身2里设定它对上半身2-左肩0控制。 直线工具,从对象左肩里从肩膀头-腋窝拉一条100-0的渐变线。
还是肩胛骨的孤立选区内:(精修) 微调左腕内左肩-左腕过渡分配。 打开插件-T窗调权重-选择T窗里扭曲不正常的部位顶点,可获取该部位权重在每个相关骨骼之间分配信息。
头发物理:
圈选部分材质(贴图),选中一片头发的一个面,(Ctrl+X)选中相接的邻面。 (Ctrl+K)只显示选中的顶点,孤立每个发片的选区。 (Ctrl+W)在选中顶点中心建立骨骼并赋予其100%的权重。将发丝进行骨骼分段。 (Ctrl+I)显示所有隐藏的顶点。选另一片头发,重复,依次做三片头发的骨骼串。 设立每片头发根部链接骨骼的亲骨骼编码指向 頭。 全选所有发骨,在PE多功能信息处理器中,骨骼 - 指定骨骼名字,批量修改亲子关系。
全选所有发骨,将每片发尖骨骼取消选择。制作基础刚体-连接joint。 为顶点joint设立连接头部刚体。 再依给三片头发每段之间建立刚体和Joint(插件 - 骨骼 - 生成水平刚体Joint)。 打开joint显示设定和查看一下,T界面查看效果。 在每片发末端涂上100权重。计算调整刚体数值。
-
大天狗 赞了这篇日记 2023-12-17 19:14:22
-
赛博路人 赞了这篇日记 2023-02-02 13:30:00
-
ֆɨռռɛɖʀօֆɛ 赞了这篇日记 2021-03-18 13:17:30
-
我没意见 赞了这篇日记 2020-04-07 02:28:26