03. 腕の切り替えがあるモーション作成
腕の切り替えに対応したモデル(腕の切り替えについての方式で作成したモデル)を使った場合の、モーションの作成方法について説明します。
腕の切り替えがあるモーションの作成方法
腕の切り替えに対応したモデルを素材として読み込むと、下のように腕が2本表示されます。
[Live2Dパーツ表示]の「1 ワンピース 左腕A」~「1 ワンピース 右腕B」まで、パラメータがすべて「1」になっています。
これは、cmox で保存したパーツの表示状態がそのまま反映されて、表示されてるパーツだと「1」、非表示のパーツだと「0」になります。
モーションをつけるときに、まず、腕のパーツ表示切替のパラメータを設定します。
腕セットAを表示させる場合は、下表のようにAセットを「1」、Bセットを「0」にします。
下図のように一番はじめのフレームに設定しておくと分かりやすいです。
腕セットBを表示する場合は下図のようになります。
パーツ表示切替のキーを打ったら、通常どおりモーションを作成します。
ここで注意することは、基本的にモーション中に腕の切り替えを行わないということです。
パーツの表示切替は、0と1しかパラメータ値がありませんので、モーション中に切り替えを行うと不透明度の変化なしに一瞬で切り替わります。
そういう演出を使うのなら問題ありませんが、モーションごとにクロスフェードで腕を切り替えたい場合は適していません。
腕セットAの場合
腕セットBの場合
モーションができたら、mtn に書き出します。
書き出し設定は下記のようにすると[パーツ表示切替]のキーも書き出せます。
TIPS : mtnファイルの中身
ここで、書き出した mtn ファイルを見てみましょう。
mtn をメモ帳などのテキストエディタで開くと下のようになります。
haru_normal_01.mtn
# Live2D Animator Motion Data
$fps=30
PARAM_BROW_L_ANGLE=0
PARAM_ANGLE_Z=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.73,-10.97,-9.77,-8.2,-6.36,-4.24,-1.93,0.51,3,5.49,7.93,10.24,12.36,14.2,15.77,16.97,17.73,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18
PARAM_BODY_ANGLE_X=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.93,-0.75,-0.48,-0.16,0.16,0.48,0.75,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
PARAM_BODY_ANGLE_Y=0
PARAM_BODY_ANGLE_Z=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.92,-0.71,-0.38,0.05,0.54,1.08,1.64,2.21,2.77,3.3,3.77,4.19,4.53,4.79,4.95,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
PARAM_ARM_R_B=0
PARAM_BREATH=0
PARAM_ANGLE_Y=0,0.21,0.76,1.55,2.54,3.63,4.78,5.93,7.06,8.11,9.06,9.84,10.46,10.86,11,10.86,10.49,9.93,9.22,8.41,7.52,6.57,5.63,4.66,3.75,2.89,2.09,1.39,0.82,0.38,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
PARAM_BROW_R_Y=0
PARAM_ANGLE_X=0
PARAM_BROW_R_X=0
PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.36,0.73,0.36,0,0.004,0.008,0.39,0.77,0.68,0.59,0.3,0.02,0.29,0.57,0.48,0.4,0.31,0.22,0.44,0.67,0.45,0.24,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
PARAM_MOUTH_FORM=1
PARAM_EYE_L_OPEN=0
PARAM_BUST_Y=0
PARAM_EYE_FORM=0
PARAM_EYE_L_SMILE=1
PARAM_BROW_L_FORM=0
PARAM_EYE_BALL_FORM=0
PARAM_BROW_L_X=0
PARAM_BROW_L_Y=0
PARAM_BROW_R_ANGLE=0
PARAM_EYE_R_SMILE=1
PARAM_ARM_R_A=0.5,0.5,0.5,0.5,0.5,0.497,0.487,0.473,0.456,0.436,0.42,0.39,0.374,0.357,0.343,0.333,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5
PARAM_BROW_R_FORM=0
PARAM_EYE_R_OPEN=0
PARAM_TERE=0
PARAM_HAIR_BACK=0,0.03,0.1,0.21,0.33,0.46,0.58,0.69,0.76,0.79,0.76,0.7,0.6,0.47,0.34,0.2,0.05,-0.09,-0.22,-0.34,-0.44,-0.51,-0.56,-0.58,-0.571,-0.55,-0.5,-0.45,-0.39,-0.32,-0.24,-0.16,-0.07,0.01,0.09,0.17,0.24,0.3,0.35,0.4,0.42,0.43,0.419,0.39,0.36,0.33,0.31,0.28,0.266,0.26
PARAM_HAIR_FRONT=0,0.02,0.08,0.17,0.27,0.38,0.48,0.57,0.63,0.65,0.63,0.57,0.49,0.4,0.29,0.17,0.06,-0.06,-0.16,-0.26,-0.33,-0.4,-0.44,-0.45,-0.442,-0.42,-0.38,-0.33,-0.28,-0.21,-0.14,-0.07,0.01,0.09,0.16,0.23,0.3,0.35,0.4,0.44,0.46,0.47,0.454,0.42,0.37,0.33,0.29,0.25,0.23,0.22
PARAM_ARM_L_A=0.5,0.5,0.5,0.5,0.5,0.497,0.489,0.477,0.461,0.444,0.425,0.406,0.389,0.373,0.361,0.353,0.35,0.356,0.371,0.39,0.42,0.44,0.47,0.49,0.51,0.526,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5
PARAM_EYE_BALL_X=0
PARAM_EYE_BALL_Y=0
PARAM_ARM_L_B=0
VISIBLE:PARTS_01_ARM_L_A_001=1
VISIBLE:PARTS_01_ARM_R_A_001=1
VISIBLE:PARTS_01_ARM_L_B_001=0
VISIBLE:PARTS_01_ARM_R_B_001=0
「PARAM_BROW_L_ANGLE」や「PARAM_BODY_ANGLE_X」などの顔や体のパラメータの下に、
VISIBLE:PARTS_01_ARM_L_A_001=1
VISIBLE:PARTS_01_ARM_R_A_001=1
VISIBLE:PARTS_01_ARM_L_B_001=0
VISIBLE:PARTS_01_ARM_R_B_001=0
とあります。
これがパーツ表示切替のパラメータ値です。
プログラムでは再生する mtn ファイルを読み込んだときに、この項目を見て
VISIBLE:PARTS_01_ARM_L_A_001=1 だから 「1 ワンピース 左腕A」を表示
VISIBLE:PARTS_01_ARM_R_A_001=1 だから 「1 ワンピース 右腕A」を表示
VISIBLE:PARTS_01_ARM_L_B_001=0 だから 「1 ワンピース 左腕A」を非表示
VISIBLE:PARTS_01_ARM_R_B_001=0 だから 「1 ワンピース 右腕A」を非表示
という具合にどの腕を表示するのか判断するのです。