最終更新日:2024年12月11日
<aside> 💡 NoLang (https://no-lang.com) で、Live2Dのキャラクターの表情やモーションをカスタマイズする方法を解説します。
</aside>
Live2Dファイルが入ったフォルダから、拡張子が.model3.json のファイルを探し出し、開きます。
NoLangでは、拡張子が.exp3.json のファイルで記述されたExpression(表情・装着品・エフェクトなど)を設定することができます。
"FileReferences" →"Expressions" を必要に応じて作成し、そこに以下のようなkey-valueデータを格納してください。
"Expressions": [
{
"Name": "NOLANG_P_xxx",
"File": "<PATH to .exp3.json>"
},
{
"Name": "NOLANG_P_yyy",
"File": "<PATH to .exp3.json>"
},
...
],
NoLangでは、「"Name" が"NoLang_P" で始まる全てのExpression」を動画再生中、最初から最後まで適用します。
また、その他のExpressionsは無視されます。
<aside>
⚠️ "Expressions" に含まれる要素の "Name" は必ずユニークになるようにしてください。
</aside>
さらにNoLangでは、拡張子が.motion3.json のファイルで記述されたMotionを設定することができます。
"FileReferences" →"Motions" →"Idle" を必要に応じて作成し、そこに以下のようなkey-valueデータを格納してください。
"Motions": {
"Idle": [
{
"Type": "S",
"File": "<PATH to .motion3.json>",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"Type": "L",
"File": "<Another PATH to .motion3.json>",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"Type": "SL",
"File": "<Another PATH to .motion3.json>",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
...
]
}
NoLangでは、モーションを3つのタイプに分類し、処理しています。
"Type": "S" → 話している時にのみ適用されるMotion"Type": "L" → 聞いている時にのみ適用されるMotion"Type": "SL" → 話している時にも聞いている時にも適用されるMotion"S", "L"の各々について、複数のMotionが含まれている場合は、それらが毎回ランダムな順序で呼び出されます。一つもMotionが含まれていない場合は、別途アルゴリズムによりモーションが割り当てられます。