跳轉至

Json配置

提示

請使用 BeJSON 等網站校驗和格式化Json文件

關於SDK 3命名規則

SDK 3與SDK 2主要的區別在於屬性的命名規則,基於官方定義,SDK 2均以小寫為主,SDK 3為首字母大寫,詳細可以參考 http://docs.live2d.com/cubism-editor-manual/cubism3-viewer-for-ow/

主配置列表

配置項 描述
Version 版本
Moc moc文件
Textures 貼圖文件
Bounds 模型邊界
HitAreas 點擊區域組
Motions 動作組
Controllers 控制器組
Expressions 表情組
Physics 物理效果文件
Pose 姿勢文件
Options 選項

Bounds

模型邊界

模型邊界定義了鼠標追蹤的範圍和可以觸發全局點擊事件的範圍。默認情況下程序通過遍歷所有網格位置自動計算出邊界,但是有時因遍歷了某些無用的網格,造成計算出的邊界過大,最終影響鼠標追蹤效果。通過自定義邊界,將邊界縮放至合適大小可以解決上述問題。

參數 描述
Width 長度
Height 高度
CenterX 中心點X坐標
CenterY 中心點Y坐標

HitAreas

點擊區域組

參數 描述 備注
Name 區域名稱 必須
Id 區域ID 必須
Order 排列順序 可選,數值越大觸發優先級越高。默認為0
Motion 動作組名 可選

Controllers

控制器組

控制器列表

名稱 描述 選項 說明
MouseTracking 鼠標追蹤 ■ SmoothTime:平滑時間
■ Items:自定義參數組A
LipSync 嘴型同步 ■ Gain:增益
■ SmoothTime:平滑時間
■ Items:自定義參數組A
EyeBlink 眨眼 ■ MinInterval:最小間隔
■ MaxInterval:最大間隔
■ Items:自定義參數組A
ParamHit 參數拖拽 ■ 參數拖拽項目組
ParamLoop 參數循環 ■ 參數循環項目組
ParamValue 參數值 ■ 自定義參數組B
PartOpacity 部件透明度 ■ 自定義參數組B
ArtmeshOpacity 網格透明度 ■ 自定義參數組B
ArtmeshColor 網格顏色 ■ 自定義參數組B
AutoBreath 自動呼吸
ExtraMotion 小幅度動作
Accelerometer 加速器 ■ 自定義參數組A
Microphone 麥克風 ■ 自定義參數組A
FaceTracking 面部追蹤 ■ 面部追蹤參數組
HandTracking 手部追蹤 ■ 手部追蹤參數組
IntimacySystem 好感度系統 ■ InitValue:初始值
■ MinValue:最小值
■ MaxValue:最大值
■ ActiveBonus:激活時獎勵
■ InactiveBonus:非激活時獎勵
■ BonusLimit:每日獎勵限制
■ Id:綁定參數ID
KeyTrigger 按鍵觸發 ■ DownMtn:按下時動作
■ UpMtn:抬起時動作
要使按鍵觸發生效,需要在Live2DViewerEX控制面板的設定里,將熱鍵設定為 總是啓用點擊桌面時
ParamTrigger 參數觸發 ■ Name:名稱
■ Parameter:參數
■ TriggerValues:觸發值
觸發值項目包括

■ 觸發值:當參數值穿過該值會觸發指定動作
■ 方向:正向表示參數值從小到大經過觸發值時有效;反向表示從大到小經過有效;雙向表示只要穿過均有效
■ 觸發動作:條件滿足時觸發的動作
AreaTrigger 區域觸發 ■ Name:名稱
■ TargetArea:目標區域
■ EnterMtn:進入時動作
■ ExitMtn:離開時動作
■ TriggerAreas:觸發區域
■ 系統持續檢測目標區域與觸發區域是否形成重疊部分,並觸發 進入時動作離開時動作
■ 因每幀都會檢測,所以可能對性能產生影響
HandTrigger 手勢觸發 ■ Name:名稱
■ Hand:左右手
■ Direction:手心朝向
■ Motion:動作事件
■ Fingers:手指狀態
■ FingerGaps:指間狀態

自定義參數A

名稱 描述
Parameter 參數ID
Axis 軸向
Inverted 反轉
Min 最小值
Max 最大值
DefaultValue 默認值
BlendMode 0: Override(覆蓋)
1: Additive(疊加)
2: Multiply(乘算)
Weight 權重
Order 排序
Input 輸入。當綁定輸入時,軸向屬性將無效

自定義參數B

名稱 描述
Name 名稱
Text 文本
Value
Hidden 對用戶隱藏
Ids ID組
KeyValues 關鍵值,僅適用於ParamValue

參數拖拽

參數 描述 備注
Name 名稱
Id 區域ID 必須
HitArea 觸發區域名 必須
Type 0: 拖拽(Dragging)
1: 撫摸(Stroking)
2: 按壓(Pressing)
■ 拖拽:參數值隨鼠標移動改變
■ 撫摸:參數值隨鼠標移動距離累加
■ 按壓:鼠標持續按住左鍵
Axis 控制軸,0為x軸,1為y軸 可選,默認為0
Weight 權重,1.0為完全覆蓋 可選,默認為1.0
Factor ■ 拖拽&撫摸:每移動1像素改變的參數值,模型的縮放會影響該值大小
■ 按壓:每秒增加的參數值
MinMtn 拖動距離達到最小值時觸發的動作 ■ 可選,格式為 「group:motion」,例如 "tap:mtn1"
■ 不指定motion時請直接寫group名即可,例如 "tap"
MaxMtn 拖動距離達到最大值時觸發的動作 同上
BeginMtn 開始拖拽時觸發 同上
EndMtn 結束拖拽時觸發(參數值未達到最小或最大值) 同上
LockParam 鎖定參數 松開鼠標之後保持當前參數值,默認為false
Release 釋放時間(ms) 松開鼠標之後恢復原來參數值的時間,默認為 100ms
ReleaseType 釋放類型 0:線性(Linear)
1:減速(Slow Out)
2:加速(Fast Out)
3:緩入緩出(Ease In Out)
LowPriority 低優先級 勾選之後拖拽會在計算物理之前執行,最終會影響物理效果

參數循環

參數 描述 備注
Name 名稱
Ids 參數ID 必須
Duration 循環時間(ms) 必須
Type 0: 線性(最小 → 最大)
1: 正弦式
2: 隨機
3: 線性(往返)(最小 → 最大 → 最小)
4: 逆向線性(最大 → 最小)
5: 逆向線性(往返)(最大 → 最小 → 最大)
可選,默認為0
MinValue 最小值
MaxValue 最大值
MinInterval 最小間隔(ms) 可選,僅支持線性循環(0,3,4,5)
MaxInterval 最大間隔(ms) 可選,僅支持線性循環(0,3,4,5)
Weight 權重,1.0為完全覆蓋 可選,默認為1.0
BlendMode 0: Override(覆蓋)
1: Additive(疊加)
2: Multiply(乘算)
可選,默認為0
TimeSync 時間同步,設為true之後會根據當前時間設定參數初始值 可選,默認為false

面部追蹤參數

參數 描述 備注
AngleX 頭部左右轉動 ■ 相對於初始頭部的角度
■ 默認值:ParamAngleX / PARAM_ANGLE_X
AngleY 頭部上下擺動 ■ 相對於初始頭部的角度
■ 默認值:ParamAngleY / PARAM_ANGLE_Y
AngleZ 頭部左右傾斜 ■ 相對於初始頭部的角度
■ 默認值:ParamAngleZ / PARAM_ANGLE_Z
PositionX 頭部左右相對位置 ■ 相對於初始頭部位置
■ 默認值:ParamBodyAngleZ / PARAM_BODY_ANGLE_Z
PositionY 頭部上下相對位置 ■ 相對於初始頭部位置
■ 默認值:無
PositionZ 頭部前後相對位置 ■ 相對於初始頭部位置
■ 默認值:無
EyeLOpen 左眼開閉 ■ 默認值:ParamEyeLOpen / PARAM_EYE_L_OPEN
EyeROpen 右眼開閉 ■ 默認值:ParamEyeROpen / PARAM_EYE_R_OPEN
EyeWide 睜大眼睛 ■ 僅適用於IOS版FaceTracker
默認值:無
EyeSquint 眯眼 ■ 僅適用於IOS版FaceTracker
■ 默認值:無
EyeballX 眼球X ■ 僅適用於IOS版FaceTracker
■ 默認值:ParamEyeBallX / PARAM_EYE_BALL_X
EyeballY 眼球Y ■ 僅適用於IOS版FaceTracker
■ 默認值:ParamEyeBallY / PARAM_EYE_BALL_Y
BrowLY 左眉上下位置 ■ 默認值:ParamBrowLY / PARAM_BROW_L_Y
BrowRY 右眉上下位置 ■ 默認值:ParamBrowRY / PARAM_BROW_R_Y
MouthOpenY 嘴部開閉 ■ 默認值:ParamMouthOpenY / PARAM_MOUTH_OPEN_Y
MouthForm 嘴部形變 ■ 默認值:ParamMouthForm / PARAM_MOUTH_FORM
MouthPucker 噘嘴(張開) ■ 僅適用於IOS版FaceTracker
■ 默認值:無
MouthFunnel 噘嘴(閉合) ■ 僅適用於IOS版FaceTracker
■ 默認值:無
CheekPuff 鼓腮 ■ 僅適用於IOS版FaceTracker
■ 默認值:無
TongueOut 伸舌 ■ 僅適用於IOS版FaceTracker
■ 默認值:無

手部追蹤參數

參數 描述 備注
LeftAngleX / RightAngleX 手腕翻轉 ■ 五個狀態,分別對應值 (-1, -0.5, 0, 0.5, 1)
■ -1=參數最小值;1=參數最大值
LeftAngleZ / RightAngleZ 手腕左右晃動
LeftPositionX / RightPositionX 手腕左右相對位置 ■ 相對於基準位置
LeftPositionY / RightPositionY 手腕上下相對位置 ■ 相對於基準位置
LeftThumb / RightThumb 拇指 ■ 彎曲=最小值;伸直=最大值
LeftIndex / RightIndex 食指 ■ 彎曲=最小值;伸直=最大值
LeftMiddle / RightMiddle 中指 ■ 彎曲=最小值;伸直=最大值
LeftRing / RightRing 無名指 ■ 彎曲=最小值;伸直=最大值
LeftPinky / RightPinky 小指 ■ 彎曲=最小值;伸直=最大值
LeftGapTI / RightGapTI 指間:拇指 - 食指 ■ 併攏=最小值;張開=最大值
LeftGapIM / RightGapIM 指間:食指 - 中指 ■ 併攏=最小值;張開=最大值
LeftGapMR / RightGapMR 指間:中指 - 無名指 ■ 併攏=最小值;張開=最大值
LeftGapRP / RightGapRP 指間:無名指 - 小指 ■ 併攏=最小值;張開=最大值

Motions

動作事件

事件屬性

參數 描述 子屬性 備注
Name 動作名
File 動作文件路徑
FileLoop 動作循環播放 MotionDuration可以中斷循環
Sound 聲音文件路徑
SoundDelay 延遲播放聲音 單位毫秒(ms)
SoundChannel 聲音頻道 總共可以選擇三個頻道(0,1,2),不同頻道聲音可以同時播放。默認為0
SoundVolume 聲音音量
SoundLoop 聲音循環播放
Text 文本
TextDelay 延遲顯示文本(ms)
TextDuration 文本顯示時長(ms)
Language 語言 根據用戶在控制面板選擇的模型語言來過濾
■ en:英文
■ zhs:簡體中文
■ zht:繁體中文
■ ja:日文
■ ru:俄語
Expression 表情名
FadeIn 淡入(ms)
FadeOut 淡出(ms) SDK 3暫不可用
MotionDuration 事件時長(ms) 用於自定義事件時長,不受動作和語音時長影響
Priority 優先級 ■ 可設定範圍2-9,越大優先級越高
■ 默認為2,若設置為9則強制覆蓋前一個事件
Interruptable 可被打斷 ■ 當為true時,此動作事件可以被相同優先級的動作打斷
■ 此參數對優先級為9的事件無效
Command 指令 動作開始之前執行
PostCommand 後置指令 動作完成之後執行
Choices 選擇支 ■ Text:文本
■ NextMtn:下一個動作
■ 動作格式為 「group:motion」,例如 "tap:mtn1"
■ 不指定motion時請直接寫group名即可,例如 "tap"
TimeLimit 時間限制 ■ Hour:小時(0 - 23)
■ Minute:分鐘(0 - 59)
■ Month:月
■ Day:日
■ Sustain:持續時間(分鐘)
■ Birthday:生日(true或false)
Ignorable 可被忽略 ■ 當存在符合觸發條件並包含時間限制(TimeLimit)的其他動作事件時,此事件是否允許被觸發
■ 設置TimeLimit會導致該參數無效
■ 默認為false
Intimacy 好感度 ■ Min:觸發事件所需最小親密度
■ Max:觸發事件所需最大親密度
■ Bonus:觸發事件親密度變化值
PreMtn 上一個動作 ■ 當設置該屬性時,僅當上一個動作為指定動作才可以觸發此動作
■ 動作格式為 「group:motion」,例如 "tap:mtn1"
■ 不指定motion時請直接寫group名即可,例如 "tap"
NextMtn 下一個動作 ■ 動作格式為 「group:motion」,例如 "tap:mtn1"
■ 不指定motion時請直接寫group名即可,例如 "tap"
Weight 權重 範圍1-999,值越大觸發概率越高。默認為1
Speed 速度 動作播放速度,SDK 2 不可用。默認為1
VarFloats 浮點變量 條件判斷(Condition)
■ greater:大於
■ greater_equal:大於等於
■ lower:小於
■ lower_equal:小於等於
■ equal:等於
■ not_equal:不等於

值操作(Operation)
■ assign:賦值
■ add:加
■ subtract:減
■ multiply:乘
■ divide:除
■ init:初始化
■ 條件判斷用於判斷該動作事件是否可被觸發
■ 值操作用於在事件觸發後對值進行操作
■ 可以對兩個變量進行條件判斷和操作,例如:greater $var2($+變量名)
■ 變量名可以為模型參數名,參數名前需加@,例如:@ParamAngleX
■ 隨機數函數:rand(min,max) 和 randf(min,max) 。rand為整數隨機;randf為浮點數隨機;min和max寫隨機數的最小值和最大值
■ 變量可存檔
■ init操作僅在該變量沒有存檔(未初始化)的情況下有效
OverrideFaceParams 覆蓋面部捕捉參數,SDK 2暫不可用

關於參數 Weight

例如有三個動作A,B,C參與隨機選擇,其中A的Weight值為1,B為10,C為89,三個動作的權重總和為100,則A的觸發概率為1%,B為10%,C為89%。

參數 Ignorable 的使用場景

例如在模型啓動時有兩個啓動事件參與隨機抽選,其中事件A帶有 TimeLimit 參數,只在特定日期觸發,事件B為普通事件。將事件B的 Ignorable 設置為 false 時,到了特定日期後,會在事件A和事件B中隨機選擇一個觸發;將事件B的 Ignorable 設置為 true 時,到了特定日期後,只會觸發事件A而忽略事件B

事件列表

事件 描述 備注
Idle 待機
Tap 鼠標點擊 若存在 HitAreas,優先觸發 Tap區域名
Tap區域名 鼠標區域點擊 需要配置 HitAreas,否則請使用 Tap 事件
Start 模型載入時觸發
Shake 晃動設備時觸發 限支持重力感應功能的設備使用
Tick 每分鐘觸發一次
TickX(tick_x) 每x分鐘觸發一次 X處填寫數字,範圍1-60
對於同時符合條件的(如第2分鐘的Tick1和Tick2)隨機選擇一個事件進行觸發
LeaveX_Y_Z(leave_x_y_z) 放置(除待機之外無任何其他事件觸發) X表示開始執行時間,Y表示最小觸發間隔,Z表示最大觸發間隔,單位為秒
例如:Leave30_10_20 表示放置30秒後開始執行此事件,觸發間隔為10-20秒之間

關於多動作同時播放

動作播放有層級(Layer)的概念,不同層級的動作可以同時播放,高層級播放的動作會覆蓋低層級帶有相同參數的動作。動作默認在層級0上播放,若希望在其他層級中播放,使用 事件名#層級 的命名格式,例如 idle#1 表示該動作組在層級1上播放。注意,在層級0上播放請勿使用 事件名#0,請直接使用 事件名

可用指令

  • 指令是以空格分割每個參數,所以在寫id或是路徑之類的時候一定不能有空格,切記!
  • 多條指令之間以英文分號(;)分割
指令 描述 示例
open_url 從瀏覽器打開鏈接 "Command":"open_url https://www.baidu.com"
change_cos 換裝 "Command":"change_cos cos02.model.json"
start_mtn 執行指定模型的動作 "Command":"start_mtn model_id group:motion" (model_id可以不寫,代表當前模型)
stop_mtn 停止指定層級的動作 "Command":"stop_mtn 1" (1代表層級序號)
set_exp 設置表情 "Command":"set_exp 01.exp.json"
next_exp 下一個表情 "Command":"next_exp"
clear_exp 清除表情 "Command":"clear_exp"
replace_tex 替換貼圖 "Command":"replace_tex 1 tex/texture_01.png" (貼圖編號從0開始,1代表第二張貼圖)
stop_sound 停止聲音 "Command":"stop_sound 0" (0為頻道標識)
stop_all_sounds 停止所有聲音 "Command":"stop_all_sounds"
mute_sound 靜音 "Command":"mute_sound 0" (0為頻道標識)
unmute_sound 解除靜音 "Command":"unmute_sound"
hide_text 隱藏文本顯示 "Command":"hide_text"
屬性 指令 說明 示例
parameters
parts
artmesh_opacities
artmesh_colors
lock
unlock
set
鎖定
解鎖
設置
■ "Command":"parameters lock PARAM_ANGLE_X 10" (10為鎖定的參數值)
■ "Command":"parameters lock PARAM_ANGLE_X $var" (將浮點變量名為var的值設為參數值,變量名開頭需要加$)
■ "Command":"parameters lock PARAM_ANGLE_X @PARAM_NAME" (將參數PARAM_NAME的值賦給目標參數,參數開頭需要加@)
■ "Command":"parameters unlock PARAM_ANGLE_X"
"Command":"parameters unlock"(解鎖全部)
■ "Command":"parameters set PARAM_ANGLE_X 10" (10為鎖定的參數值)
■ "Command":"parameters set PARAM_ANGLE_X $var" (將浮點變量名為var的值設為參數值,變量名開頭需要加$)

* 鎖定和設置的區別在於,鎖定是持續性的,而設置僅賦值一次
motions enable
disable
啓用
禁用
■ "Command":"motions enable group:motion"
■ "Command":"motions disable group:motion"
hit_areas
param_loop
enable
disable
啓用
禁用
■ "Command":"hit_areas enable area_name"(area_name指名稱)
■ "Command":"hit_areas disable area_name"
param_hit enable
disable
lock
unlock
begin
end
啓用
禁用
鎖定參數
解鎖參數
開始拖拽
結束拖拽
■ "Command":"param_hit enable name"(name指名稱)
■ "Command":"param_hit disable name"
■ "Command":"param_hit lock name"
■ "Command":"param_hit unlock name"
■ "Command":"param_hit begin name PARAM_NAME"
■ "Command":"param_hit end name"
mouse_tracking
physics
extra_motion
auto_breath
enable
disable
啓用
禁用
■ "Command":"mouse_tracking enable"
■ "Command":"mouse_tracking disable"
eye_blink
lip_sync
enable
disable
enforce
啓用
禁用
強制
■ "Command":"lip_sync enable"
■ "Command":"lip_sync disable"
■ "Command":"lip_sync enforce"

特殊佔位符

佔位符 描述 備注
{$br} 換行 用於文本換行(請勿直接回車換行)
{$username} 用戶暱稱 設置里設置的暱稱
{$timenow} 當前時間 16:27
{$datenow} 當前年月日 2017-08-14
{$intimacy} 當前好感度 整數
{$intimacy_max} 最大好感度 整數
{$intimacy_min} 最小好感度 整數
{$vf_xxx} 顯示浮點變量xxx 浮點數
{$vi_xxx} 顯示浮點變量xxx 整數

Options

選項

名稱 描述
Id 模型ID
Name 顯示名稱,此名稱將用於在各種地方展示模型名稱(如文本框,AI對話等)
ScaleFactor ■ 用於在加載時縮放模型
■ 默認為1,適合於某些加載時過大或過小的模型
AnisoLevel ■ 貼圖的各向異性過濾等級
■ 默認為1。各向異性過濾使貼圖在某些情況下看起來效果更好,但是會增加圖形硬件的性能開銷。此變量的值的範圍從 1 - 9。當值大於1時會覆蓋應用程序中的貼圖各向異性過濾等級設定值
AllowMod ■ 允許用戶自定義
■ 默認為true,若模型製作者不希望用戶自定義部分內容,請設置為false

修訂日期:2021年7月1日