TOP > RPGツクールMV/MZ > PictureLive2D.js
プラグインやスクリプトに関するお問い合わせは[maconetto_labo@twitter.com]まで。
PictureLive2D.js
本プラグインはLive2Dを表示、制御する機能を提供します。
Live2Dとは株式会社Live2Dが提供する2Dアニメーションです。
[ Live2D (c)Live2D Inc. ]

本プラグインは、その利用方法によりLive2Dの許諾の一部、またはすべてに従う必要があります。

動作条件
RPGツクールMV Ver.1.6.3以降
RPGツクールMZ Ver.1.3.2以降
Live2D Cubism 4.x/5.0
仕様/制限事項  [ 重要!! ]
デプロイメント時に「未使用ファイルを含まない」を有効にすると、[img/live2d]フォルダは
出力対象外となります。デプロイメント後に手動でコピーしてください。
デプロイメント時に画像ファイル暗号化を有効にすると画像ファイルが読み込めなくなります
暗号化していない画像ファイルをデプロイメント後に手動でコピーするか、
下記プラグインの導入をご検討ください。
[ イメージソース復号プラグイン ]
環境準備
i) ダウンロードしたZipファイルを展開

ii) 同梱されている[live2dcubismcore.min.js]を[js/libs]フォルダに配置

iii) [img]フォルダに[live2d]フォルダを作成
データ準備
i) Live2Dの組み込み用データを、書き出しバージョン4.0/4.2/5.0対応のいずれかで書き出し
 データ書き出しの詳細については [ Live2D Cubism / Editor マニュアル ] をご参照ください。
 (書き出し > 組み込み用データ)

ii) モデルにモーションを設定する
 モーション設定の詳細については [ Live2D Cubism / Editor マニュアル ] をご参照ください。
 (Cubism Viewer > Cubism Viewer (for OW))

iii) 書き出したファイル(json/moc3/png)を[img/live2d]フォルダに置く
 live2dフォルダの中にサブフォルダを作り、その中に置いてもOK。
プラグイン設定
[ json file ]
 使用するLive2Dファイルを指定します。
 下記の例を参考にしてmodel3.jsonファイルの場所を指定してください。
 [ img/live2d/Hiyori.model3.json を使用する場合 ]
  Hiyori
 [ img/live2d/Hiyori/Hiyori.model3.json を使用する場合 ]
  Hiyori/Hiyori
[ disable auto loading ]
 ゲーム起動時のLive2D自動読み込みを無効にする場合、ON(true)を指定してください。
 デフォルトではOFF(false)となっており、起動時にすべてのLive2Dファイルの読み込みを
 開始しゲーム実行の裏で並行して読み込みを行います。
 ON(true)にするとゲーム起動時にLive2Dの読み込みを開始しません。
 読み込みはsetModelコマンドにより初めて表示されるときに行われます。Live2Dによっては
 読み込みに時間がかかり、表示までにラグが発生する可能性があります。
 以下のスクリプトを実行することで事前にLive2Dを読み込むこともできます。
  Game_Live2D.loadModel(<name>);
  <name>  
モデル名
 指定するモデル名の詳細についてはsetModelコマンドの説明をご参照ください。
[ voice volume option ]
 playVoiceコマンドで再生するボイスに適用する音量オプションを設定します。
 <volume option>で Variable を選択した場合、<variable id>で指定した変数の値を
 音量として使用します。
基本的な使い方
本プラグインにプラグインコマンドはありません
説明文に記載されているコマンドはすべてスクリプトとなります。

i) [ピクチャの表示]でLive2Dを紐づけるピクチャを表示する
 画像はなくてもOK。

ii) ピクチャにLive2Dを紐づける
 [ ピクチャ5番に'Hiyori'を紐づける場合 ]
  $gameScreen.live2d(5).setModel('Hiyori');

iii) アニメーションを表示する
 [ ピクチャ5番のLive2Dに'walk'という名前のアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, 'walk');
 [ ピクチャ5番のLive2Dに'walk'->'run'->'jump'の順でアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump']);
コマンドをまとめて記述する
以下のように記述することでコマンドを短縮することができます。

$gameScreen.live2d(5).setModel('Hiyori')
.setAnimation(0, 'walk');
変数参照の制御文字を使う
文字列の中では制御文字「\\v[n]」「\\V[n]」を使用することができます。
これらの制御文字を記述した箇所はツクールの変数n番の値に置き換わります。

[ 変数5番の値をアニメーション名として指定する場合 ]
 $gameScreen.live2d(5).setAnimation(0, '\\v[5]');
[ 変数10番の値をアニメーションの再生速度として指定する場合 ]
 $gameScreen.live2d(5).setAnimation(0, 'walk/timeScale=\\v[10]');
\v[n]」「\V[n]」ではなく「\\v[n]」「\\V[n]」である点に注意。
ここで言う文字列とは主にシングル/ダブルクォーテーションで挟まれたものを指します。
アニメーション名について
setAnimationコマンドで指定する「アニメーション名」は、Cubism Viewerで設定した
「グループ名」にそのグループの何番目かを示す番号を付加したものとなります。
[ Live2D Cubism / Editor マニュアル ]
 (Cubism Viewer > Cubism Viewer (for OW) > モーションの設定
グループ名が「Idle」で3つめに設定されているモーションのアニメーション名は
「Idle03」となります。(番号部分はゼロ埋めの2桁)
【任意のアニメーション名を付ける】
また、model3.jsonを書き換えることで任意のアニメーション名を設定することもできます。
Hiyori.model3.json
"Motions": {
 "Idle": [
  {
   "File": "motions/Hiyori_m01.motion3.json",
   "FadeInTime": 0.5,
   "FadeOutTime": 0.5
  },
  {
   "File": "motions/Hiyori_m02.motion3.json",
   "Name": "smile",
   "FadeInTime": 0.5,
   "FadeOutTime": 0.5
  },

上記記述例の場合、1つめのアニメーションは「Idle01」、2つめは「smile」という
アニメーション名になります。
【モーションファイル名で指定する】
モーションファイル名をアニメーション名として指定することもできます。
Hiyori.model3.json
"Motions": {
 "Idle": [
  {
   "File": "motions/Hiyori_m01.motion3.json",
   "FadeInTime": 0.5,
   "FadeOutTime": 0.5
  },
  {
   "File": "motions/Hiyori_m02.motion3.json",
   "FadeInTime": 0.5,
   "FadeOutTime": 0.5
  },

上記の場合、2つめのアニメーション名は通常通り「Idle02」ですが、
「Hiyori_m02」というファイル名でも指定することができます。
説明内に出てくる用語について
【トラック】
PictureLive2D.jsではアニメーションを「トラック」という単位で管理します。
トラックは複数存在し、それぞれのトラックに設定されたアニメーションを合成して表示します。
トラック0番に「歩く」アニメーションを、トラック1番に「走る」アニメーションを設定した場合
「歩く」と「走る」を合成した中間のような動作のアニメーションを表示します。
【ウェイト】
アニメーションを合成する際、どの程度の割合で合成するかを示す値を「ウェイト」と言います。
トラック0番に「歩く」アニメーションを、トラック1番に「走る」アニメーションを設定し、
トラック1番のウェイトを「0.5」とした場合、「歩く」に「走る」を半分合成して表示します。
【タイムスケール】
アニメーションの再生速度倍率を「タイムスケール」と言います。
初期値は1.0で、タイムスケールを「2.0」とした場合、2倍の速度で再生されます。
【ミックス】
2つのアニメーションが連続で再生されるとき、1つめの終わりと2つめの始まりを重ねることを
「ミックス」と言い、重ねる時間を「ミックス値」と言います。
ミックス値を「0.5」とした場合、1つめのアニメーションの終了0.5秒前から
2つめのアニメーションがフェードインしてくるように合成されて表示されます。
setModel
ピクチャにLive2Dを紐づけます。

setModel(<name>)
<name>  
モデル名

[ ピクチャ5番に'Hiyori'を紐づける場合 ]
 $gameScreen.live2d(5).setModel('Hiyori');
ここで言うモデル名は、プラグイン設定で設定したLive2Dファイルのファイル名になります。
Live2Dファイル:img/live2d/Hiyori/Hiyori.model3.json -> モデル名:'Hiyori'
複数のフォルダに同じファイル名のモデルが存在する場合は、
フォルダ名をつけて指定することで区別することができます。
Live2Dファイル:img/live2d/HiyoriA/Hiyori.model3.json -> モデル名:'HiyoriA/Hiyori'
Live2Dファイル:img/live2d/HiyoriB/Hiyori.model3.json -> モデル名:'HiyoriB/Hiyori'
setAnimation
Live2Dにアニメーションを設定します。

setAnimation(<tack>, <animation>[, <continuance>, <interrupt>])
setAnimation(<tack>, <animations>[, <order>, <continuance>, <interrupt>])
<track>
トラック番号
<animation(s)>  
アニメーション名/アニメーション名リスト
<order>
順序オプション
<continuance>
継続オプション
<interrupt>
割り込みフラグ
order、continuance、interruptは省略可能。
ただし省略しなかった場合はそれより前の引数も省略せず指定する必要があります。

a) トラック番号
 アニメーションを表示するトラックの番号を指定します。

 [ ピクチャ5番のLive2Dのトラック1番にアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(1, 'walk');
b) アニメーション名/アニメーション名リスト
 Live2Dに登録されているアニメーション名を指定します。
 複数のアニメーションを指定する場合は[]で括って記述します。

 [ ピクチャ5番のLive2Dに'walk'という名前のアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, 'walk');
 [ ピクチャ5番のLive2Dに'walk'->'run'->'jump'の順でアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump']);
c) 順序オプション
 複数アニメーション指定時の表示順序を指定します。
 sequential  
指定した順番で表示
 random
指定したアニメーションのいずれかを1つ表示
 shuffle
指定したアニメーションの順番を入れ替えて表示
 
省略した場合は'sequential'を指定したものとします。


 [ 'walk'->'run'->'jump'の順でアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'sequential');
 [ 'walk'->'run'->'jump'のうちいずれか1つを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'random');
 [ 'walk'、run'、'jump'の順番を入れ替えて表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'shuffle');
d) 継続オプション
 指定したアニメーションの表示が終わったあとの動作を指定します。
 continue  
最後のアニメーションを繰り返し表示
 reset
最初に戻ってアニメーションを表示
 none
最後のアニメーションが終わった状態で停止
 
省略した場合は'continue'を指定したものとします。


 [ 'walk'->'run'->'jump'と表示したあと'jump'を繰り返し表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'sequential', 'continue');
 [ 'walk'->'run'->'jump'と表示したあと'walk'からもう一度表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'sequential', 'reset');
 [ 'walk'->'run'->'jump'と表示したあと'jump'の終わりの状態で停止させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, ['walk', 'run', 'jump'], 'sequential', 'none');
 
順序オプションに'random'を指定し、継続オプションに'reset'を指定した場合、
アニメーションを表示するたびにランダムで選択しなおします。
 
順序オプションに'shuffle'を指定し、継続オプションに'reset'を指定した場合、
1サイクルごとに順番を入れ替えなおしてアニメーションを表示します。

e) 割り込みフラグ
 現在表示しているアニメーションの終了を待つか、中断させて表示するかを指定します。
 true
表示中のアニメーションを中断して指定したアニメーションを表示
 false  
表示中のアニメーションの終了を待ってから指定したアニメーションを表示
 
省略した場合は'false'を指定したものとします。


 [ 表示中のアニメーションを中断して指定したアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, 'walk', 'continue', true);
 [ 表示中のアニメーションの終了を待ってから指定したアニメーションを表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(0, 'walk', 'continue', false);
f) アニメーションオプション
 アニメーション名を指定する際、アニメーションごとに以下のオプションを指定できます。
 オプションは「アニメーション名/オプション名=値」の形で記述します。
 1つのアニメーションに複数のオプションを指定する場合はカンマ区切りで記述します。
 times
表示回数(1以上)
 timeScale  
タイムスケール(0以上。1.0で等倍速)
 weight
ウェイト値(0~1.0。1.0で100%)

 [ 'walk'を2回、'run'を3回、'jump'を1回の順で表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(1, ['walk/times=2', 'run/times=3', 'jump']);
 [ 'walk'を2倍速、'run'を1.5倍速で表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(1, ['walk/timeScale=2', 'run/timeScale=1.5', 'jump']);
 [ 'walk'のウェイト値を0.3、'run'のウェイト値を0.25で表示させる場合 ]
  $gameScreen.live2d(5).setAnimation(1, ['walk/weight=0.3', 'run/weight=0.25', 'jump']);
 [ 表示回数、タイムスケール、ウェイト値をまとめて指定する場合 ]
  $gameScreen.live2d(5).setAnimation(1, 'walk/times=2,timeScale=2.5,weight=0.5');
 
順序オプションで'randam'を指定した場合、表示回数のぶんだけ選択率が高くなります。
clearAnimation
指定トラックのアニメーションをクリアします。

clearAnimation(<track>)
clearAnimation(<track>, <mixTime>)
<track>
トラック番号
<mixTime>
ミックス値(0以上。単位:秒)

[ ピクチャ5番のLive2Dのトラック1番のアニメーションをクリアする場合 ]
 $gameScreen.live2d(5).clearAnimation(1);
[ ピクチャ5番のLive2Dのトラック1番のアニメーションを0.5秒かけてクリアする場合 ]
 $gameScreen.live2d(5).clearAnimation(1, 0.5);
ミックス値を指定した場合、指定した時間をかけてフェードアウトするようにクリアされます。
setTimeScale
Live2D全体のタイムスケールを設定します。

setTimeScale(<value>)
<value>  
タイムスケール(0以上。1.0で等倍速)

[ ピクチャ5番のLive2Dのタイムスケールを0.3に設定する場合 ]
 $gameScreen.live2d(5).setTimeScale(0.3);
アニメーションに個別のタイムスケールを設定していた場合、そのタイムスケールに
このコマンドで設定したタイムスケールを掛けた結果がアニメーションのタイムスケールとなります。
setWeight
トラックごとのウェイト値を設定します。

setWeight(<track>, <value>)
<track>
トラック番号
<value>  
ウェイト値(0~1.0。1.0で100%)

[ ピクチャ5番のLive2Dのトラック1番のウェイト値を0.3に設定する場合 ]
 $gameScreen.live2d(5).setWeight(1, 0.3);
setMix
アニメーション間のミックス値を設定します。

setMix(<duration>)
setMix(<animation1>, <animation2>, <duration>)
<animation1>
切り替え前アニメーション名
<animation2>  
切り替え後アニメーション名
<duration>
ミックス値(0以上。単位:秒)

[ ピクチャ5番のLive2Dのミックス値を0.3秒に設定する場合 ]
 $gameScreen.live2d(5).setMix(0.3);
[ ピクチャ5番のLive2Dの'idle'->'walk'に切り替わるときのミックス値を0.5秒に設定する場合 ]
 $gameScreen.live2d(5).setMix('idle', 'walk', 0.5);
ミックス値のみ指定した場合は、個別に設定したものを除く
すべてのアニメーション間のミックス値がこの値になります。
setExpression
表情を設定します(名前指定)。

setExpression(<name>)
<name>  
表情名

[ ピクチャ5番のLive2Dの表情を'smile'に設定する場合 ]
 $gameScreen.live2d(5).setExpression('smile');
setCustomExpression
表情を設定します(データ指定)。

setCustomExpression(<exp3>)
<exp3>  
exp3.json形式のデータ

[ ピクチャ5番のLive2Dの表情を指定データの内容で設定する場合 ]
 $gameScreen.live2d(5).setCustomExpression({
  FadeInTime: 1,
  FadeOutTime: 1,
  Parameters: [
   {
    "Id": "ParamMouthOpenY",
    "Value": 1,
    "Blend": "Add"
   },
   {
    "Id": "ParamEyeForm",
    "Value": 0.54,
    "Blend": "Add"
   }
  ]
 });
exp3.json形式フォーマットの詳細については説明を割愛します。
実際のexp3.jsonファイルの内容を見てご理解頂くか、Live2D公式ドキュメントを参考にしてください。
(公式ドキュメント記載の「FadeIn」「FadeOut」は正しくは「FadeInTime」「FadeOutTime」です)
clearExpression
表情設定をクリアします。

clearExpression()

[ ピクチャ5番のLive2Dの表情設定をクリアする場合 ]
 $gameScreen.live2d(5).clearExpression();
setColor
アートメッシュごと、またはLive2Dモデル全体の色の割合を設定します。

setColor(<red>, <green>, <blue>, <alpha>)
setColor(<image>, <red>, <green>, <blue>, <alpha>)
<image>  
色を設定するアートメッシュ名
<red>
赤率(0~1.0)
<green>
緑率(0~1.0)
<blue>
青率(0~1.0)
<alpha>
不透明率(0~1.0)

[ ピクチャ5番のLive2Dモデル全体の色を赤に設定する場合 ]
 $gameScreen.live2d(5).setColor(1, 0, 0, 1);
[ ピクチャ5番のLive2Dの'ArtMesh01'の色を青で半透明に設定する場合 ]
 $gameScreen.live2d(5).setColor('ArtMesh01', 0, 0, 1, 0.5);
setColorは色そのものを設定するのではなく「元の色に指定値を掛ける」コマンドです。
例えばsetColor(1, 0, 0, 1)は元の色の赤成分は100%残し、青成分と緑成分を0にします。
setMosaic
アートメッシュごと、またはLive2Dモデル全体にモザイクを設定します。

setMosaic(<size>)
setMosaic(<image>, <size>)
<image>  
モザイクを設定するアートメッシュ名
<size>
モザイクのサイズ(1以上。単位:px)

[ ピクチャ5番のLive2Dモデル全体に10pxサイズのモザイクを設定する場合 ]
 $gameScreen.live2d(5).setMosaic(10);
[ ピクチャ5番のLive2Dの'ArtMesh01'に15pxサイズのモザイクを設定する場合 ]
 $gameScreen.live2d(5).setMosaic('ArtMesh01', 15);
setOffset
ピクチャ座標を基点とした相対座標を設定します。

setOffset(<x>, <y>)
<x>  
X座標(単位:px)
<y>
Y座標(単位:px)

[ ピクチャ5番のLive2D座標をピクチャのX座標+8pxに設定する場合 ]
 $gameScreen.live2d(5).setOffset(8, 0);
[ ピクチャ5番のLive2D座標をピクチャのY座標-8pxに設定する場合 ]
 $gameScreen.live2d(5).setOffset(0, -8);
setScale
拡大率を設定します。

setScale(<x>, <y>)
<x>  
横方向の拡大率(1.0で等倍)
<y>
縦方向の拡大率(1.0で等倍)

[ ピクチャ5番のLive2Dを横方向に2.5倍に拡大する場合 ]
 $gameScreen.live2d(5).setScale(2.5, 0);
[ ピクチャ5番のLive2Dを縦方向に反転する場合 ]
 $gameScreen.live2d(5).setScale(0, -1.0);
setVisible
表示/非表示を設定します。

setVisible(<visible>)
<visible>  
表示フラグ(true:表示/false:非表示)

[ ピクチャ5番のLive2Dを表示する場合 ]
 $gameScreen.live2d(5).setVisible(true);
[ ピクチャ5番のLive2Dを非表示にする場合 ]
 $gameScreen.live2d(5).setVisible(false);
resetParameters
パラメータをデフォルト値にリセットします。

resetParameters()
resetParameters(<id>)
resetParameters(<id1>, <id2>, ...)
<id>  
リセットするパラメータ名

[ ピクチャ5番のLive2Dの全パラメータをリセットする場合 ]
 $gameScreen.live2d(5).resetParameters();
[ ピクチャ5番のLive2Dの'ParamAngleX'をリセットする場合 ]
 $gameScreen.live2d(5).resetParameters('ParamAngleX');
[ ピクチャ5番のLive2Dの'ParamAngleX'と'ParamAngleY'をリセットする場合 ]
 $gameScreen.live2d(5).resetParameters('ParamAngleX', 'ParamAngleY');
playVoice
音声ファイルを再生し、リップシンクを開始します。

playVoice(<audio>)
playVoice(<audio>, <options>)
<audio>  
音声ファイルのパス
<options>  
オプション
a) 音声ファイルのパス
 再生する音声ファイルのパスを指定します。
 audioフォルダおよびそのサブフォルダにある音声ファイルを指定できます。
 拡張子は書かないでください。

 [ ピクチャ5番のLive2Dで audio/voice/ohayou.ogg を再生する場合 ]
  $gameScreen.live2d(5).playVoice('voice/ohayou');
 
audioフォルダからの相対パスで指定してください。
フォルダの区切りは半角スラッシュで記述します。
b) オプション
 音声再生やリップシンクのオプションをJSON形式で指定します。
 各項目はいずれも省略可能です。

 
{ volume: <音量>, pitch: <ピッチ>, pan: <定位>, scale: <倍率> }


 volume  
音声の音量(0~100、省略時:100)
 pitch
音声のピッチ(50~150、省略時:100)
 pan
音声の定位(-100~100、省略時:0)
 scale
リップシンクの補正倍率(省略時:1)

 i) 音声の音量
  再生する音声の音量を指定します。
  指定した値に音量オプションで設定した音量を反映したものが最終的な音量になります。
 ii) 音声のピッチ
  再生する音声のピッチを指定します。
  値が小さいほど低く遅く、大きいほど高く早く再生されます。
 iii) 音声の定位
  再生する音声の定位を指定します。
  値が小さいほど左側から聞こえ、大きいほど右側から聞こます。
 iv) リップシンクの補正倍率
  リップシンクで口を開く際の補正倍率を指定します。
  口の開きが小さい場合、倍率を増やすことで大きく開くようになります。

 [ 音声の音量50、ピッチ150で再生する場合 ]
  $gameScreen.live2d(5).playVoice('voice/ohayou', { volume: 50, pitch: 150 });
 [ 音声の定位70、リップシンク補正倍率2倍で再生する場合 ]
  $gameScreen.live2d(5).playVoice('voice/ohayou', { pan: 70, scale: 2 });
stopVoice
再生中の音声とリップシンクを停止します。

stopVoice()

[ ピクチャ5番のLive2Dで再生中の音声とリップシンクを停止する場合 ]
 $gameScreen.live2d(5).stopVoice();
プラグイン製作者向け情報
本プラグインを通じてLive2Dを運用したい方は下記コードを参考にしてください。

let live2d = new Game_Live2D();
let sprite = new Sprite_Live2D(live2d);
this.addChild(sprite);
live2d.setModel('Hiyori').setAnimation(0, 'walk');
Game_Live2DのインスタンスにはLive2Dアニメーションの状態がリアルタイムで記録されます。
これを保存しておき、Sprite_Live2Dのインスタンス生成時の引数として使用することで
保存したときの状態を復元することができます。
利用規約
下記内容は当サイトで公開しているプラグインの共通規約です。
Live2D/Cubsimの許諾、利用規約との齟齬が生じる部分についてはLive2D/Cubism許諾、
利用規約を優先するものとします。
本プラグインの利用は、RPGツクール/RPG Makerの正規ユーザーに限られます。
商用、非商用、有償、無償、一般向け、成人向けを問わず、利用可能です。
利用の際、連絡や報告は必要ありません。また、製作者名の記載等も不要です。
プラグインを導入した作品に同梱する形以外での再配布、転載はご遠慮ください。
本プラグインにより生じたいかなる問題についても、一切の責任を負いかねます。
更新履歴
ver.1.00
2022.02.19
ver.1.07
2023.01.05
マスク処理の負荷軽減
複数モデル同時読み込み時に表示されないことがある問題の応急処置
ver.1.08
2023.01.25
アニメーション間はモーションのフェードを適用しないように変更
パラメータをデフォルト値に戻す機能を追加(resetParametersコマンド)
ver.1.04の更新の影響で発生した不具合の修正
トラック指定の仕方によってはエラーになる問題を修正
モーション埋め込みのフェード値が反映されていなかった問題を修正
表情のフェード値を0msにすると1000msになっていた問題を修正
負荷軽減対策
ver.1.09
2023.01.31
リップシンクを実装(playVoice/stopVoiceコマンド)
ver.1.10
2023.02.14
ボイス再生に適用する音量オプションを選択できるプラグイン設定を追加
$gameScreen.live2dの引数に変数指定の制御文字を使用できるように変更
ボイス再生中にsetModelコマンドを実行するとエラーになる問題を修正
ver.1.11
2023.04.20
メニュー開閉やデータロード時に表情が崩れることがある問題を修正
存在しないアニメーション名を指定したときその名前を含むエラーを出すように修正
ver.1.12
2023.06.12
トラックの指定の仕方によってはセーブデータがロードできなくなる問題を修正