LoginSignup
2

More than 5 years have passed since last update.

setParamFloatとaddToParamFloatの違い

Last updated at Posted at 2016-04-02

Live2Dアプリ作ってると軽くハマるポイントなので書いておこうかと。
自分だけかと思ったら、同じようにハマってる人がいました。

Live2Dフォーラム - Unityでのモーション再生がうまくいきません

Unityに限らず、どのプラットフォームでも共通かと思います。

開発環境

・Live2D Unity SDK 2.1.00_1
・Unity5.3.1

2つのAPIの違い

Live2Dドキュメント-パラメータの操作やサンプルソースを見ると、パラメーター操作にはsetParamFloat、addToParamFloat、multParamFloatがあります。
このsetParamFloatとaddToParamFloatの違いですが、値を上書きするか加算するかの違いがあります。

// 上書き
live2DModel.setParamFloat("パラメーターID", );
// 加算
live2DModel.addToParamFloat("パラメーターID", );

SDKサンプルのDemoプロジェクトを見ると、setParamFloatが使われています。
(Demoプロジェクトはマウスドラッグした方に顔を向けるサンプル)

<Demo - setParamFloat()>
001.gif
では、これをaddToParamFloatに変えてみます。

<Demo - addToParamFloat()>
002.gif
加算されるので、マウスドラッグし続けるとぐいっと顔を向けて不自然ですね。
「うん、これじゃない。addToParamFloatは使う必要ないな」と思った時期がありました。

はまりポイント

実はaddToParamFloatは、モーション再生とマウスドラッグ処理を併用する際に有効です。
僕もsetParamFloatで値を上書きしてモーションが正しく再生されないって時がありました。

・setParamFloatの場合、モーションで動かすパラメーターも上書きされて正しく再生されない
003.gif

・addToParamFloatの場合、加算なのでモーションで動かすパラメーターを上書きしない
004.gif

setParamFloatで上手くいかない場合はaddToParamFloatを使ってみて下さい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2