Nanashi-softプログラマ専用Unityでゲーム開発


◇Unityでゲーム開発 -Live2Dを動かしてみたい(17-

フェードイン・アウトがしたい
APIリファレンスを調べると,どうやら ALive2DModelクラスの setPartsOpacityでできるらしい
setPartsOpacity(『パーツID』,『不透明度の値』)

パーツIDと言うのは,モデラー上のパーツウィンドウの右上にあるパーツ設定ボタンをクリックした中にあります

試しに体を消してみます
OnRenderObjectメソッドの live2DModel.update()の前に,以下の行を追加する
live2DModel.setPartsOpacity("PARTS_01_BODY", 0.0f);
体が消えました

値の範囲がアルファ値と同じ,0.0f~1.0fかを確認します
半透明
live2DModel.setPartsOpacity("PARTS_01_BODY", 0.5f);

通常に戻す
live2DModel.setPartsOpacity("PARTS_01_BODY", 1.0f);

・フェードインする

string[] partslist={"PARTS_01_FACE_001","PARTS_01_EYE_001","PARTS_01_EYE_BALL_001","PARTS_01_BROW_001","PARTS_01_MOUTH_001","PARTS_01_NOSE_001","PARTS_01_EAR_001","PARTS_01_HAIR_FRONT_001","PARTS_01_HAIR_SIDE_001","PARTS_01_HAIR_BACK_001","PARTS_01_NECK","PARTS_01_BODY","PARTS_01_BACKGROUND","PARTS_01_CORE"};
if(acnt <= 1.0f){
	acnt += 1.0f * Time.deltaTime;
	foreach(string var in partslist){
		live2DModel.setPartsOpacity(var, acnt);
	}
}
パーツID配列を作る時は,先ほどのパーツ設定ダイアログの右下にある『>』ボタンをクリックして,『テキストで表示』をクリック
Ctrl+Aで全選択して,表計算ソフトに貼り付ければ,ID部分だけA列に入ります

・フェードアウトする

配列はそのままで
acnt += 1.0f * Time.deltaTime;
if(acnt <= 1.0f){
	foreach(string var in partslist){
		live2DModel.setPartsOpacity(var, 1.0f - acnt);
	}
}
パーツIDは存在しないものを指定してもエラーにはなりません
ROUGHとかをそのままにしておいてもいいです



TOPプログラマ専用Unityでゲーム開発

Melonbooks DL