PE 的改模实用技巧 & 插件指北 Vol.2

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:岸田夏海MK2

写点关于 PE 改模(以游戏模型为主)时的小技巧和插件推荐的随笔,第二期。

写点关于 PE 改模(以游戏模型为主)时的小技巧和插件推荐的随笔,第二期。

如有雷同,纯属巧合;若有谬误,欢迎斧正。

Vol.1:

本篇专栏长度是上一篇的两倍且包含大量个人主观经验,因此请各取所需,切勿囫囵吞枣。

技巧篇

  1. 使用剪贴板进行批量修改编辑

  2. 模型的基本姿势修改(A pose→T pose,以及拉直手指)

3. 上半身 / 下半身骨骼位置修正

4. 实时确认 morph 修改的情况

  1. PE 里的快捷键

插件篇

  1. MMD 中的单位长度

  2. 范围内顶点的坐标极值

  3. 多个刚体之间的重力平衡

9. 各种坐标的快速四舍五入

可以说是写这篇专栏的初衷。

内容较多,并且基本只能用在游戏改模上,不想看的就往下跳吧。

先熟悉一下这两组按钮:

顶点,面,材质,骨骼,变形(morph),表示栏,刚体,铰链(joint)

除了 “面” 以外,别的选项栏里都能看到位于右键菜单最底下的这两组按钮。

虽然不会有多少人注意到,但我自己在修游戏模型的骨骼和物理时,这个功能可异常有用。

1.1 一切的基础:导出与导入

这里以一个头部刚体为例:

在复制其信息并将其粘贴到记事本后:

具体的文字是:

;Body, 剛体名, 剛体名 (英), 関連ボーン名, 剛体タイプ (0:Bone/1: 物理演算 / 2: 物理演算 + ボーン追従), グループ (0~15), 非衝突グループ文字列 (ex:1 2 3 4), 形状 (0: 球 / 1: 箱 / 2: カプセル), サイズ_x, サイズ_y, サイズ_z, 位置_x, 位置_y, 位置_z, 回転_x[deg], 回転_y[deg], 回転_z[deg], 質量, 移動減衰, 回転減衰, 反発力, 摩擦力

Body,"頭",""," 頭 ",0,0,,0,0.781,0,0,-4.732816E-15,11.98018,0.1970061,0,0,0,1,0.5,0.5,0,0.5

觉得眼花?那么保存为 CSV 再看看:

可以看到,无论是文本还是表格,都分为了两行:

一行记录物体的属性名称,一行记录物体的属性内容、

而通过复制这段文本 / 导入这个 CSV,则可以用导出下面的按钮在 PE 里追加物体,或是更新同名物体的信息。而修改文本内的数据再导入,就等同于直接修改物体数据。

接下来的讲解,都是对这个功能加以批量化导出 / 编辑 / 导入并在各选项卡里的应用。

为了方便说明,接下来的几节大部分会采用 CSV 导出的形式(红框里上面那组按钮)进行说明,而在平常的时候,则强烈推荐使用剪贴板 / 文本(下面那组按钮),原因后面会说到。

1.2 顶点

看看这些属性,谁会闲着没事干去在 PE 里建模的?

叠甲,过。

1.3 面

因为面是参照固定的三个顶点生成的,因此面这一栏没有右键菜单。

1.4 骨骼

功能:追加足部 IK

虽然在另一个专栏里提到过,可以通过导入标准骨骼的 PMX 来添加足部 IK:

但是就算这样还是麻烦,想想看,如果用导入 pmx 的方式的话:

导入→选择(可能在其他文件夹的)有空标准骨骼的 pmx→发现导入的四个 IK 在最底下→将 IK 移位到对应骨骼处→选择 “左足 / 右足” 骨骼→复制各自坐标→到 “左足 IK / 右足 IK” 里填上坐标→选择 “左つま先 / 右つま先” 骨骼→复制各自坐标→到 ““左つま先 IK / 右つま先 IK” 里填上坐标→完成

好累。

如果用导入导出的话:

选择 “左足 / 右足” 骨骼→复制各自坐标→打开一个预先准备好的空 IK 的 CSV / 文本信息→在 CSV / 文本里修改对应 IK 的坐标→回 PE 导入 / 更新→完成

1.5 变形(morph)

功能:快速追加眼部的合并组表情

在改游戏模型的时候,有时只会有单个眼睛 / 眉毛的形态键表情(比如闭左眼和闭右眼),因此在分割完表情之后,需要一个组表情进行统括——毕竟是个 MMD 模型都不能少了 “まばたき” 和“笑い”这两个至关重要的表情。

比如,之前 KF3 几个模型的表情栏:

眼睛和眉毛都各自有一堆组表情

直接导入则可以省去每个组表情都要进行一次右键→重命名→设置表情表示位置(眼部 / 口部 / 眉毛 / 其他)的时间:

只要原来的表情里存在对应的两个闭眼表情,就可以直接一键追加组表情,非常方便。

1.6 表示栏

完全用不着,上个专栏里的说到的自动登录到表示栏的插件可比剪贴板导入舒服多了。

接下来的两节,刚体和铰链,是我自己改模时经常会用到的功能。

1.7 刚体

功能 1:刚体信息备份 & 恢复

修物理必然要修改刚体的数据——大小,位置,物理参数,甚至是形状。

而如果改得多了又想恢复时,比起时不时保存 + 重新读取,或者疯狂 Ctrl+Z,在改之前先用剪贴板备份一下会是个不错的选择:

无论 PE 里刚体被改成了什么样, 用剪贴板 / CSV 一键恢复即可。

功能 2:刚体复制

在刚体和 Joint 的右键菜单里,是**没有复制功能**的:

明明材质骨骼 morph 都能直接复制 / 追加复制的,刚体和 joint 里却没有,怪事。

比起重新开一个刚体,然后一个个把原来的数据填上,不如在剪贴板 / PSV 里自己追加复制一个吧。

把需要复制的刚体信息拉进剪贴板:

将刚体名改为和原刚体不同的名称,如果要对新刚体进行编辑的话也可以在记事本里完成:

复制,导回去,于是就有了一个关联同一骨骼,和原来刚体一样的新刚体:

1.8 铰链(**Joint)**

功能 1:复制 Joint

和上一节的刚体一样,导出,修改名称,导回去。

功能 2:导入额外的 Joint

这一点在我改草菇模型的时候可以说帮上了大忙,尤其是在自动生成物理刚体 & Joint 后,给裙子刚体两两之间加铰链时:

要两两链接的刚体为:

Sp_Hi_Skirt0_BR_02

Sp_Hi_Skirt0_B_02

Sp_Hi_Skirt0_BL_02

Sp_Hi_Skirt0_L_02

Sp_Hi_Skirt0_FL_02

Sp_Hi_Skirt0_F_02

Sp_Hi_Skirt0_FR_02

Sp_Hi_Skirt0_R_02

同一个游戏拉出来的模型的主要骨骼名字必然一致(因为要套通用动作),这也让自动生成的刚体 / Joint 名字也是相同的。

先手动做好一组 joint,带到剪贴板:

[あんず色の青春] 双葉杏

手动一个个新建 joint→改位置→改名→链接刚体实在是太累了,所以在改其他草菇模型的时候,直接复制这段文本导进去:

[うさぎさんわーるど] 緒方智絵里

由于刚体名称都是一致的,因此可以直接一键完成。

一句话概括:

“**必可活用于下一次。”**

1.9 剪贴板相比于 CSV 的的优缺点

缺点:

  1. 排版高度密集,看上去就眼花

  2. 和代码类似,不小心在编辑的时候删掉一个符号,就会让这行的内容全部报废

优点:

  1. 速度快,不需要生成 / 读取文件,直接一个 Ctrl+C 就可以导入,这也是在我自己**只用剪贴板 / 文本而从不用 CSV** 进行编辑的原因。你甚至可以直接把别人的东西以文本的形式复制过来——“你的刚体设置很不错,现在是我的了”。

  2. 将不同类型的剪贴板信息归到一起(比如刚体 + Joint),并且一次性复制:

PE 导入时,依然可以在各个选项卡里读取出不同类型对应的内容。

题外话,对于剪贴板 / 记事本编辑,强烈推荐 Notepad++

开源玩意儿,Yes-Yes!

虽然我自己是因为码代码才知道的这个东西,但就这个专栏来说,notepad 的有一个相当好的功能:**ALT + 左键进行竖排框选,**在进行文本信息编辑的时候(比如批量改名)能方便不少。

附上一张自己平常改模用的表格以供参考:

https://docs.qq.com/sheet/DSU9BV2RuYXFjdk9r

里面包括了在上一篇提到过的 “批量重命名”,以及这次说的“剪贴板导入” 等功能中所使用的内容,外加一些改特定游戏模型时的备忘 / 对照表,以后可能会跟着个人需要而更新。

以上,全专栏最麻烦的一章到此结束。

2.1 需要进行修正的情况

TransfromView 的这个功能上一篇里已经说到了,不过之前是因为要修正 Noesis 里导出模型时自带的 90 度旋转所以提到了一次。

而在改模过程中,有时会出现其他各种不得不需要进行姿势修正的情况。比如:

大部分游戏提取模型都是默认 T-Pose,而 MMD 模型用的动作基本都需要 A-Pose;

(这也是部分游戏提取动作会要求 “套动作前先把模型调成 T-Pose” 的原因)

或是自己之前碰到的(AS 和草菇)模型 “手指不是并列” 的问题,在 AS 和草菇的专栏最后都说到过,不过没讲怎么修:

左边是草菇导出模型时的默认手部姿势

“手指不并列” 同理,这里拿之前写第二篇草菇专栏时用的(没修手部姿势的)草菇默认服米莉亚进行举例。

在这种情况下去套(用手指并列的模型做出来的)vpd/vmd 的话...

明显的左手小指扭曲

2.2 进行修正

如果针对单个模型进行小幅度或是一次性的修正,那么在 TransformView 里凹好姿势就可以准备导出了。

小贴士:那个 “限制解除” 可以暂时解除圆形骨骼 “只能旋转” 的限制,从而对其进行旋转 + 移动。

而针对上一节出现的情况(也就是每改一个草菇模型都要修一次手部姿势的问题′),可以在 MMD 里做一个修正用的 vpd。

先在 MMD 本体里把姿势修好:

因为左右手都要修,所以复制 + 翻转粘贴,

做的时候记得先把模型骨骼名称正规化——只有在同时具有 “左 XX” 和“右 XX”,且 XX 内的名称一致(如“左耳 / 右耳”、“左ひじ / 右ひじ”)时,模型才能进行对 vpd 或 vmd 的翻转粘贴。

BOX 批量选择骨骼:

保存为 vpd 文件。

回到 PE,在 TransformView 里读取用来进行修正的 vpd:

受影响的骨骼在 TransformView 里显示为绿色:

这么做的好处是,在改那些出自同一个游戏,而初始姿势不对的模型时,可以直接用同一个 vpd 解决 Apose + 手部姿势的问题。

2.3 保存 / 导出

修完之后,左上角文件菜单:

第一个选项:在上一篇也提过,是否在保存 / 更新将形态键表情随着形状正规化。一般情况下都是打上勾的,否则如果不打勾并且原模型进行了旋转 / 放缩,会导致保存时顶点表情全部报废。

第二个选项:第一个选项里说的保存,将当前姿势 / 形状另存为 “XXXX_形状变化. pmx”,强烈建议以此形式进行备份,如果在没有备份的情况下进行覆盖保存,并且 PE 里无法撤销之前的变形的话,后果自负。

第三个选项:将当前姿势 / 形状保存为 PE 内存档,用不着。

第四个选项:将当前姿势 / 形状直接更新到主视窗的模型中,和第二个选项一样,建议保存前先备份模型。

上一节里提到的问题在修正后的情况:

小指终于正常了

2.4 bone morph 相关

菜单里同时可以将当前的姿势保存为 bone morph:

一般用于在 Apose 和 Tpose 之间进行转换,而无需额外保存一份模型:

也有 morph 比较细致的模型用这种方式做出 “手指并拢 / 张开”,不过这种方式存在一个小问题:虽然用 bone morph 进行了临时的旋转,计算骨骼变形的轴(或者法线)不会随着旋转骨本身的位置改变,这可能会导致载入动作时出现微量的偏移,不过影响不大——

除了手臂旋转 (捩)骨骼的轴限制:

用 bone morph 进行 A-Tpose 转换,在使用涉及捩骨的动作时可能会让捩骨的效果变得异常奇怪,不过自己没怎么碰到过这种情况,因此仅供参考。

作为唯二连接着センター或者グルーブ(semi-standard bone 下)的骨骼,同时也是人形模型 IK 以外其他骨骼的最终亲 bone,“上半身”和 “下半身” 这两个骨骼在坐标上最好是重合或是接近重合的状态。****否则,当两个骨骼分别在 Z 方向反向旋转时,中间部分会产生肉眼可见的扭曲:

大部分游戏模型的这两个骨骼(一般上半身叫 upper_body/Spine,下半身叫 hip 什么的)不会重合,而不修正位置直接把骨骼改名成 “上半身” 和“下半身”,就会出现上述情况。

为了在不破坏原骨骼位置 / 权重的情况下进行修正,需要让其中一个骨骼成为重合点,并且让另一个骨骼在旋转的时候同时产生位移以避免中段变形。

因此,在 PE 菜单里 “复制并追加” 一个作为重合点的骨骼(一般是上半身的那个),将其命名为 “下半身”:

接着把原先的下半身 / Hip 骨骼的亲骨骼设定到这个新骨骼上即可,既保留了原先的权重,又解决了问题。

文字描述反而比较麻烦,而用一张图基本就能说明这个情况:

如果上半身骨骼因此大于两个的话,将中间的骨骼命名为 “上半身” 和“上半身 2”以外的名字,如“上半身 1”,只要能在套 vmd/vpd 时这个骨骼不会被用到即可。

点过这个按钮的人都应该知道这东西的功能,不过还是顺便提下,以防万一。

为了避免每次修改表情后都要手动把滑条从 0 拖到 1,在 Transformview 点一下 “個別モーフ確認” 这个按钮,自动将表情的滑块保持在 1,每次在 PE 主窗口改完表情,回到 Transformview 里就会实时更新。

虽然现在模型的形态键表情都是在其他软件做好再送进 mmd 里,所以也不需要在 PE 修,不过如果要做 bone morph 的话,依然要在 PE 里一边修一边看。

PE 的菜单里其实有全部快捷键组合的说明:

虽然用得到的快捷键就那么几组,就像 PS 那样。

作業用身長計 / 目盛り

作者不明,文件被 B 碗直接归到了官方仓库账号

配布页面:https://bowlroll.net/file/1470

很简单的一个附件:

如果说不知道 MMD 里坐标系的单位长度该怎么算,那么这个附件就是这个问题的可视化答案:

位于 X-Z 平面上的每个单位正方形,其边长均为 40cm。

换句话说,2.5 个格子为一米。

而对于用来记录位置 / 位移的坐标,其单位长度(X/Y/Z=1)也为 40cm。

对模型的影响是?

如果在改模 / 建模的时候严格参照原设定的身高 / 比例来做,或者在使用时对模型尺寸进行适当放缩(不知道怎么放缩模型的回去看第一篇专栏),就能防止不同模型放一起时出现身高差悬殊的问题,或是单个模型在载入未经过 VmdSizing 或是其他方式修正的 vmd/vpd 时,由于双腿 IK 之间的间距和原模型相差悬殊,因为 IK 的缘故可能会直接导致模型腿部动作幅度过大。

这里就拿该附件举个例子——身高 155cm 的凛喵:

[熱烈歓迎☆チャイにゃメイド] 星空凛,右图直接来自拉拉的官网主页

之前改 AS 的时候,从 blender 里用默认大小倍率导出的模型,要在 PE 里放大约 1.2 倍才符合原设的身高。

这点在用素体进行改模时需要尤其注意,直接对模型换头或者换衣服而不修正尺寸的话——

**没错,说的就是 Tda。**而且不少 Tda 式改模(包括游戏改模)中,都有出现整个模型头身比失调,或者身高和原设差距极大的情况。

而作为 Tda 式的起源,要知道 Miku 的身高设定可是实打实的 159cm 啊。

BoundaryCoordinates by pseunido

****配布页面:https://bowlroll.net/file/211705

显示选择范围内顶点的 XYZ 坐标极值。

配合上一章,用来算放缩量时给模型量尺寸用,至少不用把模型转 90 度然后去数格子了。

身高一米四的杏和三厘米的呆毛

重力バランサー剛体プラグイン / BodyBalancer by 千成

配布页面:https://bowlroll.net/file/145961

基于现有的 Joint 组,以及与其链接的刚体,直接用杠杆原理生成对应的物理平衡刚体。

选中 joint 后在菜单内使用插件,用来给长头发 / 尾巴做均匀配重时尤其有效:

以及,对这个插件进行多刚体物理平衡的原理的一小段讲解,可以在手动修物理的时候作为一种思路进行参考:

https://ch.nicovideo.jp/rgb/blomaga/ar951343

ゼロ近似値切捨プラグイン / z_marukunaru by sevrunear

配布页面:**https://bowlroll.net/file/7446**

强迫症患者的福音:坐标近似值修正插件。

由于各类软件导出模型时微小的校正,可能会导致坐标本应为 0(比如全亲骨 XYZ=0,center 骨 XZ=0,上 / 下半身 X=0)的骨骼,在信息栏里显示的数变了一个极小而不为 0 的值,比如这个下半身骨骼,它的 X 坐标不是 0:

然而往后一拉,发现 X 坐标其实是 - 5.398644E-27(也就是科学计数法的 10 的 - 27 次方):

愚蠢的无意义数值 -1000

于是到这个插件派上用场的时候了:

将各种物体里的小数点后 N 位的值自动四舍五入,还能将上面说的 0 的近似数归为 0:

令人舒适的数值 +114514

其一:

虽然专栏里介绍了那么多插件,但我自己实际放在 PE 的 “_plugin” 文件夹里,经常用到的插件就这么几个:

从上到下:表示栏登录,查看选择范围顶点边界,图片导入,obj 导入,交换显示顺序,导出变形预览图,追加准标准骨骼,模型放缩

其二:

之前在做长岛的配布图的时提到了ビームマン P,这个和针金 P,そばろ一样能经常在借物里被看到的名字。

个人主页:https://w.atwiki.jp/beamman/

神。

里面有不少做静画的时候相当有用的 MME(DropShadow,PostMovie,各种粒子 / 光束 / 水面效果等),以及制作 MME 的基础教学和一个挺好用的 VRMViewer。

其三:

不知道将来有没有机会写个像自动登录表示栏那样,根据 txt 内容一键批量重命名 / 引入 IK 的插件,这样一个改模工作量能缩短到半小时也说不定...

本期专栏头图:米莉亚一常 SSR[メイクミー・キスユー]

借物:Wireless Mic by ましまし

“みりあもやるー”

以上,希望这篇文章能有幸帮上谁的忙。

评论