ポーズについて

ポーズとは複数の同種パーツのうち、単一のパーツだけをモーションに基づいて切り替え表示する機能です。
モーション内のパーツ不透明度の操作を最終的にパーツへ適用する処理部分でもあります。

 

モーションからのパーツ不透明度操作の流れ

Frameworkでは、不透明度によるパーツの切り替え処理はCubismPoseクラスで行っているため、
通常にFrameworkからプログラムを作成した場合、
モーションからのパーツ不透明度への操作がPose機能への登録なしに設定することはできません。

下記はCubismMotion::DoUpdateParameters関数の一部抜粋ですが、
PartOpacityの設定中の書き込み要素がパラメータになっていることに注目してください。

またパラメータIDを取得するときにパーツのIDで取得している点も注目してください。

 

つぎのコードはCubismPose::DoFade関数の前半です。

表示しているパーツの状態取得にパラメータから状態を取得しています。
これは、先ほどCubismMotionインスタンスで設定した仮想的なパラメータへのアクセスを行っています。

これらのことから、Framework向けのパーツの切り替えを伴うモーションの作成には

・pose3.jsonファイルの設定のないパーツはFrameworkをそのまま使った状態では操作が影響しない

・パーツを消すという操作が必ずしも想定通り動くとは限らない。パーツを切り替える必要がある

以上のことをプログラマだけでなく、モデルやモーションを作成するデザイナ側とも共有する必要があります。

※UnitySDK側ではパーツの操作はそのまま反映されます。

 

インスタンスの生成(.pose3.jsonファイルの読み込み)

ポーズは.pose3.jsonファイルに保存され、CubismPoseクラスを使用します。
生成にはCubismPose::Create関数を使用します。

 

 

ポーズの適用

ポーズの適用にはCubismPose::UpdateParameters関数を使用します。
事前にモーションの適用など仮想的なパラメータの計算を済ませておく必要があります。

 

 

破棄

モデルが解放されるタイミングでCubismPoseインスタンスも破棄する必要があります。

Copyright © 2018 Live2D Inc.