參數操作

設定參數
參數通常由動作來設定,但是也可以直接指定數值。
有以下3種方法可以設定。

1.複寫數值
使用setParamFloat函數。
第一引數輸入參數的ID;第二引數輸入數值;第三引數輸入影響度。
影響度可省略,此時該值應設定為1。
例如,如果影響度設為0.5時,將影響前項的值50%。


live2DModel->setParamFloat( "PARAM_ANGLE_X", 30 ,1 );//設定PARAM_ANGLE_X為30

2.由現有值加算
使用addToParamFloat函數。
引數與setParamFloat相同。
此處為設定後的值再加算。


live2DModel->addToParamFloat( "PARAM_ANGLE_X", 1, 1);//PARAM_ANGLE_X的值加1


3. 由現有值乘算
            使用multParamFloat函數。
            引數與setParamFloat相同。
            此處為設定後的值再乘算。


live2DModel->multParamFloat( "PARAM_ANGLE_X", 2, 1);//PARAM_ANGLE_X的值乘2倍


此外如要取得現有值請使用getParamFloat函數。

由參數的index指定

欲指定參數的ID有2個方法。
1.用"PARAM_ANGLE_X"這樣的文字列指定。2.用index指定。
用index指定可以較為快速,故呼叫頻率高時建議使用index指定。
參數的index可以用getParamIndex函數取得。


//初始化時
int paramAngleX;
paramAngleX = live2DModel->getParamIndex( "PARAM_ANGLE_X" );

//參數設定時
live2DModel->setParamFloat( paramAngleX, 30 , 1);


保存參數

欲暫時儲存模型的參數時可以使用saveParam函數。
執行此函數時可以暫時保存參數值,直到下次使用loadParam函數時再復原。


// 設定參數為30
live2DModel->setParamFloat( "PARAM_ANGLE_X", 30 ,1 );

//暫時保存目前所有參數值
live2DModel->saveParam();

// 設定為0
live2DModel->setParamFloat( "PARAM_ANGLE_X", 0 ,1 );

//output: value = 0
printf("value = %f",live2DModel.getParamFloat( "PARAM_ANGLE_X" ) );

//回復為前次使用
saveParam的狀態
live2DModel->loadParam();

//output: value = 30
printf("value = %f",live2DModel.getParamFloat( "PARAM_ANGLE_X" ) );

設定物件的透明度

欲設定與取得物件的透明度可使用setPartsOpacity函數和getPartsOpacity函數


// 設定臉物件的透明度為0.5
live2DModel->setPartsOpacity( "PARTS_01_FACE_001",0.5 );


執行參數的時機與計算

設定參數時如果只是覆寫數值將不會進行頂點計算。
參數變更後使用update函數計算頂點,隨後由draw函數使用新的參數描繪模型。

コメント