
写点关于PE改模(以游戏模型为主)时的小技巧和插件推荐的随笔,第一期。
如有雷同,纯属巧合;若有谬误,欢迎斧正。
Vol.2:

充满大量主观经验和口胡,看着就当图一乐。
0.关于PE
技巧篇
1. 模型尺寸放缩
2. 骨骼批量命名
3. 自动设定骨骼表示次序
4. 模型要素的快速顺序交换
5. PE自带的模型验证功能
插件篇
6. 一键追加次标准骨骼(semi-standard bones)
7. 将骨骼登录至关键帧表示栏
8. 生成表情适用结果一览图
番外篇
EX01. 更简单的控制骨骼(静画向)
EX02. 将图片导入为模型
本专栏内使用的PmxEditor为今年3月刚更新的0.2.5.7版本,虽说汉化版更普及,不过为了避免在做MMD时使用LE或者ntleas,或出现在简中编码下读不出日文导致打开pmm模型路径缺失的问题,我自己用的是原生版,并且系统语言/编码也是日文(Shift JIS)。
SizeChangeUI.dll(没标作者的dll文件都是pe自带的,下同)
某些情况下,模型在导出为Pmx时,由于原设置从而以非正面的状态导出(比如像之前舰B改模专栏里,从noesis导出fbx时模型“逆时针旋转90度”):

而这点让我挨过一次相当惨痛的教训——当放大/缩小的对象包含顶点/骨骼表情(比如脸部)时,请勿使用PE自带的“動(物体操作)”的功能:

如果真这么做,那等同于“物体被放缩时,顶点/骨骼表情所记录的位移数据没有进行相对应的修正”,其结果就是直接把morph给毁了。
而忘了开TransformView检查又不小心覆盖保存的话...
正确做法是使用PE自带插件里的“サイズ変更”直接对模型本身进行放缩,并且自动附带对应表情的修正:

如果在整体的模型里只想动一部分的话,可以把需要的部分给分离成单独的材质再保存为独立的pmx,放缩之后再导入原模型焊接回去。
旋转同理,直接用物体操作进行旋转也会导致上述问题,正确做法是在加入“全ての親”骨骼之后,在TransformView里旋转至正确的位置,然后用第四个按钮将变形状态反映到PmxViewer窗口的模型上:

注:反映时一定要将第一行的钩打上,阈值用默认的即可,否则无法修正位移后的表情,依旧会出现本节开头的问题。
阅读本节之前,请先确保对MMD的基准骨骼的名字与次序有个基本的了解。
对于一个正常的模型,几个相关并且有先后次序的骨骼基本都会是在一起的,比如“右肩→右腕→右ひじ→右手首”,或是“右足→右ひざ”。
而在改模时要做的,就是把这些骨骼的名称/次序按照MMD的标准重新排序/命名一遍,从而让模型在MMD里可以套动作。
一个个骨骼手打或是复制粘贴过去自然不合适,因此就需要PE的“同时编辑名称”的功能:

而这时准备一个记着标准MMD应有的骨骼名称与排列次序的Excel表格或者记事本就会相当省事。
举个例子,看到一串连续排列的“Shoulder/Clavicle,Arm,Forearm,Hand”的骨骼就基本上可以猜到是“肩→手”的序列,或者“Thigh,Calf/Foot,Foot/Ankle,Toe”就是“足→脚尖”,直接把对应一列文字复制过去即可。

如果要改同一个游戏的多个模型,那么同样的配置就可以在这些结构和命名相似的模型上适用,而合适的准备与排列,必可活用于下一次绝对会让工作事倍功半。

附一张我平常改模用的表格(下一篇专栏里会提到这个表格中其他几个工作表的作用):
https://docs.qq.com/sheet/DSU9BV2RuYXFjdk9r?tab=BB08J2
这张表其实一开始是针对SIFAS的骨骼结构设计的,可以直接用一次复制解决肩到手指的全部重命名,因此从unity3d文件到改完模型(物理与表情切分除外)甚至还花不到十分钟。
而其他的游戏模型由于结构类似(人形),也或多或少的可以根据表格进行统一骨骼命名,省下了不少时间。
前些天,有位朋友的私信刚好问到了这个问题:
从游戏(或是SFM等)里拉出来的模型,在pe里面的名字和骨骼指向(也就是表示栏)都是乱的,而且有的时候模型骨骼的表示方法全被设成了“相对”:
碰到这种情况,在骨骼菜单框选一下所有骨骼,然后按下旁边的这个<<:

就能自动为所有“只有单个亲骨骼”的骨骼设定表示顺序,而对于剩下的少量几个有复数亲骨骼的骨骼,手动设定表示次序即可。
ListInsert.dll
依旧是PE自带的插件,虽然可以调整材质刚体Joint等的顺序,但一般情况下只会在骨骼这一部分使用——因为有的时候骨骼实在是太多了。
在导入标准骨骼时用来处理骨骼顺序会很好使,随便摆弄几下就能理解,这里就不多提了。

模型在MMD里一加载就闪退Error怎么办?进PE查Debug一下问题吧。

这个功能很容易被只用MMD或是刚接触PE的人无视掉,从而产生“为什么模型一加载就闪退”的问题,而得到的回答只有可能是“自己到PE修去”。
在MMD加载模型的时候闪退,大多数情况都是由以下几个问题导致的:
存在未定义的表情这里的未定义指的是morph栏明明有东西,数据却是空白的,比如位移数据错误。这个问题基本源于模型格式转换过程中的morph导出错误,而在用VRM2PmxConverter转换VRM格式的模型时尤其明显。
存在重复命名的表情不一定会导致闪退,但必定会让所有同名的表情在套动作时无法使用。保险起见,还是查一下的好。
重要:存在未连接刚体的节点(Joint)你醒了,你的PE崩溃了,手动连完的Joint一个都没保存下来.jpg当有任何Joint缺失连接刚体A或者连接刚体B的时候,在MMD中尝试加载该模型必定会导致闪退。
界面如下:

换句话说,△=Warning,x=Error
出现三角代表着不太会影响模型工作的问题,但或多或少会对MMD工程带来不便(比如忘了将骨骼/表情登录到关键帧表示栏)
而叉就说明Compile Error模型有严重问题,这时将模型加载进MMD基本就会闪退或者没法工作,而上面说的那几个都属于这一类别,看到×的话,对着出现的问题开始修吧。
準標準ボーン追加プラグイン/SemiStandardBones by そぼろ
介绍/配布动画:sm14956092
作者是我们在MME见过N次的老朋友そぼろ。

接触PE的人应该都听过或用过这个插件,这里不作详述。
傻瓜操作,解决旋转骨等多个标准骨骼问题,用过的MMDer都说好。
ボーン表示枠並べ替えプラグイン/BoneFrameSorter by suwatoh
介绍/配布动画:sm22214893
↑不知为何原作者删除了该介绍动画,但他的uxuploader里依然保留了这个文件:
https://ux.getuploader.com/suwatoh_mmd1/download/55
之前改小加加的时候,有人提醒我模型的表示栏是空的,根本没法在MMD里注册帧:

然后在解决问题的时候找到了这个懒人插件:

压缩包里内有一套基本的设置文档,可以直接用这个文档按照TDA式对应名称的基本骨骼进行分类登录到表示栏,省去了不少手动CtrlX+V复制Index的麻烦。
做完这一步后,模型基本就可以被拉去跳舞了。
モーフ適用結果一覧作成プラグイン/MorphEnumerator by マスク・ザ・春原
介绍/配布动画:sm35419659

功能很简单,就是导出各个表情应用结果图:

范例模型:オリジナル3Dモデル『Noy』ver2.0 by Ficsnade, BOOTH上的东西。

看到这个东西我高兴的快跳起来了,在进行表情切分/重命名的时候就可以直接对着图一个个来做,而不是开着原模型或是自己截。
会話仕様プラグインNEO/M_ConversationSet_NEO.zip by キングM
介绍/配布动画:sm26606084
由于个人喜欢用MMD做静画而不是动画,因此出于私心安利下这个插件。
这东西囊括了做静画要用到的从多段化表情到手腕/视线IK的几乎所有功能,算是把“IKmaker”和“調整用ボーン作成”这俩插件合并后的豪华版,知道怎么用的人一定会觉得爽到:

ImagImport.dll
还是PE自带,作用是直接把图片作为单面模型导入,
也许在做卡牌/背景板相关模型的时候会有点用?
这里就拿某张qks们绝对不会陌生的塔罗牌举例,导入图片,保存为模型,然后对着材质重新将图片贴回去:

Death! Let love burn to its silent end—
适当的合并顶点,就可以很简单的做出一张具有正反面的卡牌模型:

没有任何老鼠/佐伊/佐仓/尼娅在此过程中丧生。
以上。
本期头图
Background: イッセキ王子
Model: 《小魔女诺贝塔 - Little Witch Nobeta》的主角,也就是诺贝塔。
游戏是好游戏,可惜摊上了个阴间制作组。