MOC3配置说明 - kongbaiku/Live2D-M GitHub Wiki
前言
说明基于测试MOD,拉菲-白兔迎春JSON文件。
所有不能读取的JSON配置建议使用BeJSON等网站校验和格式化JSON文件。
示例
{
"Version": 3,
"FileReferences": {
"Moc": "lafei_4.moc3",
"Textures": [
"textures/texture_00.png"
],
"Physics": "lafei_4.physics3.json",
"Layout": { "center_x": 0, "center_y": 0, "width": 1.5, "height": 1.5 },
"Motions": {
"Idle": [
{
"Name": "idle",
"File": "motions/idle.motion3.json"
}
],
"Start": [
{
"Name": "login",
"Sound": "sounds/login.mp3",
"Text": "指挥官还不回来,拉菲要靠着树睡着了……Zzz…… ",
"File": "motions/login.motion3.json"
}
],
"TapBody": [
{
"Name": "main_1",
"Sound": "sounds/main_1.mp3",
"Text": "春节限定版兔耳和兔兔拖鞋…指挥官喜欢吗?拉菲…很喜欢… ",
"File": "motions/main_1.motion3.json"
}
],
"TapHead": [
{
"Name": "touch_head",
"Sound": "sounds/touch_head.mp3",
"Text": "呣……指挥官,不要摇我……",
"File": "motions/touch_head.motion3.json"
}
],
"TapSpecial": [
{
"Name": "touch_special",
"Sound": "sounds/touch_special.mp3",
"Text": "指挥官,又在想奇怪的事了吗…",
"File": "motions/touch_special.motion3.json"
}
],
"Tick": [
{
"Name": "mail",
"Text": "指挥官,您的信……",
"Sound": "sounds/mail.mp3",
"File": "motions/mail.motion3.json"
}
],
"Leave": [
{
"Name": "complete",
"Text": "盯————我在想指挥官会不会自己记起来委托已经完成了这件事",
"Sound": "sounds/complete.mp3",
"File": "motions/complete.motion3.json"
}
],
"Shake": [
{
"Name": "shake",
"Text": "do not shake",
"File": "motions/touch_head.motion3.json",
"TextDuration": 1000
}
]
}
},
"HitAreas": [
{
"Name": "Body",
"Id": "TouchBody",
"Motion": "TapBody"
},
{
"Name": "Head",
"Id": "TouchHead",
"Motion": "TapHead:touch_head"
},
{
"Name": "Special",
"Id": "TouchSpecial",
"Order": 1,
"Motion": "TapSpecial:touch_special"
}
],
"Groups": [
{
"Target": "Parameter",
"Name": "LipSync",
"Ids": [
"ParamMouthOpenY"
]
},
{
"Target": "Parameter",
"Name": "EyeBlink",
"Ids": [
"ParamEyeLOpen",
"ParamEyeROpen"
]
}
]
}
说明
MOC3和MOC的配置有所不同,之前的大部分配置被归到"FileReferences"项中,所以JSON的结构大体上为:
"Version"
"FileReferences""Moc"
"Textures"
"Physics"
"Layout"
"Motions"
"HitAreas"
"HitAreas_Custom"
"Groups"
其中,"Groups"项看着是不是有什么"LipSync(唇音同步)"啊,什么"EyeBlink(眼球追踪)",好像很高大上的东西,其实全部木大!这个项是原本自带的,并没有使用,但不排除以后使用,所以姑且留着了。
"Version"
和MOC一样"Version"就是标注MOD版本号的东西,没有要求,按照实际填写即可。
"FileReferences"
与MOC最大的不同就是MOC3把"Moc","Textures","Physics","Layout","Motions"都划归到了"FileReferences",不过基础配置方面没什么大的改动。
"Moc":为对应目录下的.moc3文件。
"Textures":为对应目录下的.png文件。
"Physics":为对应目录下的physics3.json文件。
"Layout"为布局设置,为了方便,在MOC的基础上只保留了"width","height","center_x","center_y"四项,不同的是"center"的倍数调大了,所以值同样也会比较大。
"width":对应MOD宽度,无明显表现,与"height"项相同即可。
"height":对应MOD高度,具体表现为MOD的体积大小改变,如果MOD初始显示体积过小,可通过此项适度放大。(建议区间1-10)
"center_x":对应MOD距离中心点的x轴距离,如果MOD初始显示位置偏离,可通过此项适度移动。(建议区间0-20)
"center_y":对应MOD距离中心点的y轴距离,如果MOD初始显示位置偏离,可通过此项适度移动。(建议区间0-20)
"Motions"
"Motions"东西比较多,所以还是单开一列来写。
"Motions"为MOD动作设置,分为"Idle","Start","TapBody","TapHead","TapSpecial","TapLeg","Tick","Leave","Shake"九项。
其中"Motions"中的"Tick","Leave","Shake"三项,由于没有场景条件所以是没有配置的,有需要的话可以把动作移到其他项触发,只是留着后续(可能)的升级用。
"Idle":待机动作。
"Start":进场动作,大概是MOC3新加的东西吧,当做进场动画就行。
"TapSpecial":特殊区域动作。
"TapHead":摸头。
"TapBody":摸身体。
"TapLeg":摸腿。
除了"Idle","Start",其他四项均为点击区域触发。
PS:当区域重叠的时候"HitAreas_Custom"的优先级要高于"HitAreas",没错,和MOC反了。在我写这个说明的时候才发现,虽然改起来不麻烦,但更新github麻烦,不影响使用那就不改了吧_(:3」∠)_,子项的优先级涉及到新参数"Order",在下面"HitAreas"里面写。
动作配置实例如下:
"Start": [
{
"Name": "login",
"Sound": "sounds/login.mp3",
"Text": "指挥官还不回来,拉菲要靠着树睡着了……Zzz…… ",
"File": "motions/login.motion3.json"
}
]
"Name":动作名称,和动作文件名对应即可。
"Sound":音频文件路径。
"Text":音频对应文本。
"File":动作文件路径。
"HitAreas"
"HitAreas"为点击区域,适用于MOD原本有划分身体区域的情况。
"HitAreas": [
{
"Name": "Body",
"Id": "TouchBody",
"Motion": "TapBody"
},
{
"Name": "Special",
"Id": "TouchSpecial",
"Order": 1,
"Motion": "TapSpecial:touch_special"
}
]
其中"Name"分为"Special","Head","Body","Leg"四项,对应4个不同的可设置点击区域,"Id"则对应MDO预划分的身体区域,按照实际情况进行编写。
("Id"项主要看的是你到手的MOD在制作时是否有设置,属于不可改变的先天条件,至少我不会改_(:3」∠)_)
"Motion"是点击区域对应的动作项,可以设置为触发整个动作项后随机选取动作,或者指定动作项里单一某个动作,增加了可操作性。
"Order"是点击区域的优先度,按Order排序,Order值越大,区域优先度越高,没有Order的设置为默认值0。
"HitAreas_Custom"
"HitAreas_Custom"为自定义点击区域,通过自己设定点击区域来激活相应动作,虽然点击区域精度没有"HitAreas"高,但胜在万能。
"HitAreas_Custom": {
"head_x": [-0.13, -0.44],
"head_y": [0.18, -0.16]
}
分为"special", "head","body","leg"四项,需要通过设定左上角和右下角两个点来定位点击区域,所以分为"?_x""?_y"。可以使用"Ctrl+鼠标左键"点击MOD读取当前点击位置来设定区域(只是报点,还是需要手动修改JSON文件)(之前MOC3的报点比较长,V1.2.3后修改为只取小数点后两位)。