MOC配置说明 - kongbaiku/Live2D-M GitHub Wiki
前言
说明基于测试MOD,PA15-高校心跳物语JSON文件。
所有不能读取的JSON配置建议使用BeJSON等网站校验和格式化JSON文件。
示例
{
"version":"Sample 1.0.0",
"model":"model.moc",
"textures":[
"model.1024/texture_00.png"
],
"layout": { "center_x": 0, "center_y": 0, "width": 3.5, "height": 3.5 },
"hit_areas":[
{"name":"leg","id":"D_REF.LEG"},
{"name":"body","id":"D_REF.BODY"}
],
"hit_areas_custom": {
"head_x": [-0.28, 1.17],
"head_y": [0.32, 0.84]
},
"motions":{
"tap_body":[
{
"file": "motions/login.mtn",
"sound": "wav/PA15_HELLO_JP.wav",
"text": "啊——来了来了,有趣的事情来了!",
"fade_in": 0,
"fade_out": 0
}
],
"flick_head": [
{
"file": "motions/wedding_touch.mtn",
"sound": "wav/PA15_DIALOGUEWEDDING_JP.wav",
"text": "今天也辛苦你了。下班后我们去夜场的游乐园放松一下怎么样?或者,你更愿意一起安静地喝点什么?",
"fade_in": 0,
"fade_out": 0
}
],
"tap_leg": [
{
"file": "motions/touch_1.mtn",
"sound": "wav/PA15_DIALOGUE1_JP.wav",
"text": "看不出你有这种兴趣呢,指挥官。坦率地寻求刺激不是坏事哦",
"fade_in": 0,
"fade_out": 0
}
],
"idle":[
{
"file":"motions/daiji_idle_01.mtn",
"fade_in": 0,
"fade_out": 0
}
]
},
"physics":"physics.json"
}
说明
首先JSON分为9个大项
"version"
"model"
"textures"
"layout"
"hit_areas"
"hit_areas_custom"
"expressions"
"motions"
"physics"
"version","model","textures","physics"
其中"version","model","textures","physics"为基础配置,分别对应"版本","模型","贴图","物理",按照实际填写即可。
"version":不做要求,可随意填写或者不做修改。
"model":为对应目录下的.moc文件。
"textures":为对应目录下的.png文件。
"physics":为对应目录下的physics.json文件。
"layout"
"layout"为布局设置,分为"width","height","x","y","center_x","center_y","top","bottom","left","right" ,共10小项。
根据实际情况,"width","height","center_x","center_y"足以解决大部分问题,其他项酌情使用。
"width":对应MOD宽度,无明显表现,与"height"项相同即可。
"height":对应MOD高度,具体表现为MOD的体积大小改变,如果MOD初始显示体积过小,可通过此项适度放大。(建议区间1-10)
"center_x":对应MOD距离中心点的x轴距离,如果MOD初始显示位置偏离,可通过此项适度移动。(建议区间0-1)
"center_y":对应MOD距离中心点的y轴距离,如果MOD初始显示位置偏离,可通过此项适度移动。(建议区间0-1)
"hit_areas"
"hit_areas"为点击区域,适用于MOD原本有划分身体区域的情况。
"hit_areas":[
{"name":"leg","id":"D_REF.LEG"},
{"name":"body","id":"D_REF.BODY"}
]
其中"name"分为"special","face","head","body","leg"五项,对应5个不同的可设置点击区域,"id"则对应MDO预划分的身体区域,按照实际情况进行编写。
("id"项主要看的是你到手的MOD在制作时是否有设置,属于不可改变的先天条件,至少我不会改_(:3」∠)_)
PS:"hit_areas"的"face"对应的是MOD的表情文件"expressions",属于特殊区域,只能在"hit_areas"里激活,无法设置为"hit_areas_custom",不过带有exp文件的MOD一般也自带身体划区,问题不大。
PS2:当区域重叠的时候"hit_areas"的优先级要高于"hit_areas_custom",子项的优先级为"special">"face">"head">"body">"leg",
"hit_areas_custom"
"hit_areas_custom"为自定义点击区域,通过自己设定点击区域来激活相应动作,虽然点击区域精度没有"hit_areas"高,但胜在万能。
"hit_areas_custom": {
"head_x": [-0.28, 1.17],
"head_y": [0.32, 0.84]
}
分为"special", "head","body","leg"四项,需要通过设定左上角和右下角两个点来定位点击区域,所以分为"?_x""?_y"。可以使用"Ctrl+鼠标左键"点击MOD读取当前点击位置来设定区域(只是报点,还是需要手动修改JSON文件)。
"motions"
"motions"为MOD动作设置,分为"idle","sleepy","tap_special","flick_head","tap_body","tap_leg"六项。
"idle":待机动作。
"sleepy":休眠动作(待机动作下无操作约40s触发)。
"tap_special":特殊区域动作。
"flick_head":摸头。
"tap_body":摸身体。
"tap_leg":摸腿。
除了"idle","sleepy"其他四项均为点击区域触发,与上面"hit_areas"和"hit_areas_custom"的设定相对应。
动作配置实例如下:
"tap_body":[
{
"file": "motions/login.mtn",
"sound": "wav/PA15_HELLO_JP.wav",
"text": "啊——来了来了,有趣的事情来了!",
"fade_in": 0,
"fade_out": 0
}
]
"file":动作文件路径。
"sound":音频文件路径。
"text":音频对应文本。
"fade_in":淡入,无特殊要求默认0即可。
"fade_out":淡出,无特殊要求默认0即可。
"expressions"
"expressions"为MOD表情配置,我接触的也不多,shizuku的MOD里有具体实例,可供参考。
"expressions"项目的表情采取的是随机选取,所以只需要按照顺序并注意文件路径即可。
"expressions": [{
"name": "f01",
"file": "exp/f01.exp.json"
}, {
"name": "f02",
"file": "exp/f02.exp.json"
}, {
"name": "f03",
"file": "exp/f03.exp.json"
}, {
"name": "f04",
"file": "exp/f04.exp.json"
}
]