物理演算について
最終更新: 2024年9月19日
物理演算とは
Cubismでは、顔の振り向きにあわせてリアルタイムで髪揺れの動きがつくような、物理演算を設定して書き出すことができます。
このページでは、[物理演算設定]ダイアログ内の[物理演算]の設定項目を解説しています。
物理演算の設定手順については『物理演算の設定方法』をご覧ください。
物理演算は[モデリング]メニュー →[物理演算設定を開く]から、設定を行えます。
※[物理演算設定]ダイアログ内には[プレイリスト]タブもありますので
[物理演算]タブが選択されていることをご確認ください。
物理演算タブの構成
番号 | 項目 | 詳細 |
---|---|---|
① | 計算FPS | 物理演算を行う時のフレームレートを設定します。 FPSは以下の4種類から選択するか、任意の値を入力してリストに登録できます。 15/30/60/120 使用するシーンのFPSに合わせて物理演算の設定を作成することで、違和感のない再現が可能となります。 用途が未定の場合は初期値の60fpsを推奨します。 60fpsに設定することで、SDK R5 beta2以前の環境でも物理演算の出力結果の変化の影響が少なくなります。 詳しくは「Cubism 4.2機能のSDK互換性について」の「物理演算のFPS対応」をご覧ください。 物理演算メニューの [計算FPSを初期化] で初期状態の60fpsにリセットできます。 ※Cubism 5.0beta1から初期値を30fpsから60fpsに変更しました。 計算FPSを変更することで、物理演算の出力結果が変化しますので必ず動きをご確認ください。 |
② | グループ設定 | モデルに追加する物理演算の設定はグループ単位で扱われます。 「前髪揺れ」「スカート揺れ」のように、揺らしたい各部位毎にグループを作成できます。 |
③ | 入力設定 | 物理演算の入力として扱うパラメータの設定を行うための項目です。 振り子でいう”糸を吊っている部分”に関する設定を行います。 ここで指定したパラメータの影響度が変動することで、後述する[出力設定]の値に影響します。 |
④ | 出力設定 | 計算した揺れを出力するための設定を行う項目です。 |
⑤ | 物理モデル設定 | 実際に動かしたときの揺れ方を設定するための項目です。 振り子でいう”おもり”に関する設定を行います。 [入力設定]で設定されたパラメータの値の変化をもとに計算するための設定項目になります。 |
⑥ | 振り子プレビュー | [入力設定]と[物理モデル設定]で計算された結果を振り子の動きとしてプレビューします。 |
計算FPSについて:
FPSの情報は[物理演算・シーンブレンド設定]を開くことでモデルファイルに設定されます。
([計算FPS]の値も変更した時点でモデルファイルに設定されます。)
FPSの情報はCubism Editor 4.1.02のバージョンからモデルファイルに保存されるようになりました。
4.1.01 以前で作成されたモデルファイルにはFPS情報が設定されていない場合があります。
モデルファイルに対するFPS情報の設定に関して、詳しい情報はSDKマニュアルの『Cubism 4.2機能のSDK互換性について』のページをご覧ください。
Unityのフェードにおいての注意点:
Unityではレイヤーという概念を使用して、モーションのフェードを含めた結果を更にブレンドできます。
Viewerでの再生結果は、Unityの仕組みを完全に再現するものではないため、再生結果が異なることがあります。
グループ設定
項目 | 詳細 |
---|---|
グループ名 | [入力設定][出力設定][物理モデル設定]を行うグループを選択します。 |
有効 | チェックをいれることで選択中のグループの物理演算の有効/無効を一時的に切り替えます。 物理演算設定ファイルの書き出しには影響しません。 物理演算設定ダイアログを閉じる際にこの有効フラグは全てリセットされます。 |
追加 | 新しいグループを作成し、追加します。 |
複製 | 選択中のグループを複製します。 |
グループ編集 | 各グループの編集をします。 |
入力設定
入力プリセット
[入力][種別][影響度]があらかじめ設定されている[入力]プリセットの設定を読み込み、瞬時に[入力設定]を行うことができます。
自分で作成した設定はプリセットとして保存し、使いまわすことも可能です。
項目 | 詳細 |
---|---|
名前 | 保存されているプリセットを選択します。 デフォルトで「頭 入力」「胴体 入力」「胸 入力」の3種類が用意されています。 |
読み込み | 選択したプリセットを読み込みます。 |
追加 | 現在の設定をプリセットとして追加します。 |
上書き保存 | 選択したプリセットに現在の設定を上書き保存します。 |
名前変更 | 選択したプリセットの名前を変更します。 |
削除 | 選択したプリセットを削除します。 |
入力設定項目
項目 | 詳細 |
---|---|
追加 | [入力]として扱うパラメータを追加します。 |
削除 | 選択した[入力]パラメータを削除します。 |
↑ | 選択した[入力]パラメータの位置を上に一つ移動します。 |
↓ | 選択した[入力]パラメータの位置を下に一つ移動します。 |
入力 | [入力]として扱うパラメータです。 このパラメータの値が変化することで、[出力]に設定しているパラメータに揺れが生じます。 プルダウンからパラメータを変更することも可能です。 |
種別 | 設定したパラメータの値の変化を、どういう動きとして扱うかを設定します。 位置X:横方向の移動として扱う 角度:Z軸方向の傾きとして扱う |
影響度(%) | 複数のパラメータを[入力]として設定している場合、どの[入力]がどういう割合で影響するかを設定できます。 同一グループ内に同じ[種別]のパラメータが複数ある場合は、値が大きく設定されたパラメータの影響を大きく受けます。 ※同じ[種別]の影響度は、合計で「100%」以上に設定できません。 違う種別の場合は、それぞれ最大で100%に設定することができます。 |
反転 | チェックを入れると[入力]パラメータの+と-を反転します。 [入力]を反転させたい場合に使用します。 |
入力の正規化
頭などの傾きに応じて、髪が重力に向かって真下に垂れて静止するようにするための調整です。
モデルに設定した「頭」や「体」の傾きは、それぞれのモデルで角度が違うため、
必要に応じて角度の入力を正規化するとクオリティを上げることが出来ます。
(位置に関しては、特殊なモデルの場合に使用しますので、デフォルト値でも大丈夫です)
項目 | 詳細 |
---|---|
角度 | 角度の正規化を設定できます。 [最小][中心][最大]はデフォルトで「-10.0」~「0.0」~「10.0」に設定されています。 この値は任意で変更が可能です。 |
位置X | 位置の正規化を設定できます。 [最小][中心][最大]はデフォルトで「-10.0」~「0.0」~「10.0」に設定されています。 この値は任意で変更が可能です。 |
一般的なモデルは、デフォルトのままでもおおよその正規化は行えているのですが、
より細かく調整したい場合は正規化の調整を行ってみましょう。
「角度」の正規化の値について
入力で指定されるパラメータの最小・最大の定義を、入力の正規化で指定される最小~最大の範囲に変換する処理を[入力の正規化]といいます。
(中心は、パラメータ定義の最小最大の中間の値が、正規化の中心になるように変換します)
各パラメータの正規化された値の中で、種別を[角度]としているものに対し、
影響度を考慮してブレンドした1つの値が一番上の振り子の角度として反映されます。
物理モデル設定
物理モデルプリセット
[長さ][揺れやすさ][反応速度][全体の速度]があらかじめ設定されている[物理モデル]プリセットの設定を読み込み、瞬時に物理モデル設定を行うことができます。
自分で作成した設定はプリセットとして保存し、使いまわすことも可能です。
項目 | 詳細 |
---|---|
名前 | 保存されているプリセットを選択します。 |
読込み | 選択したプリセットを読み込みます。 |
追加 | 現在の設定をプリセットとして追加します。 |
上書き保存 | 選択したプリセットに現在の設定を上書き保存します。 |
名前変更 | 選択したプリセットの名前を変更します。 |
削除 | 選択したプリセットを削除します。 |
物理モデル設定項目
項目 | 詳細 |
---|---|
追加 | 新しい振り子を追加します。 |
複製 | 選択した振り子を複製して一番下に追加します。 |
削除 | 選択した振り子を削除します。 |
↑ | 選択した振り子の位置を上に一つ移動します。 |
↓ | 選択した振り子の位置を下に一つ移動します。 |
No | 振り子を多段設定にする場合、上から順番に番号が割り振られます。 この番号は後述する[出力設定]で使用します。 |
長さ | 揺れのスピードを設定できます。 値が小さければ素早く動き、大きくなるほど揺れがゆっくりになります。 パラメータ値の変化量を変えずに速度だけ変更したい場合は、[反応速度]の項目を調整してください。 |
揺れやすさ | 揺れの大きさを設定できます。 値が大きいほど、少しの入力でも大きく揺れるようになります。 目安として、0.7~0.99の範囲で設定を行ってください。 |
反応速度 | 揺れの反応速度を設定できます。 入力に対してどれだけ機敏に反応するかの設定です。 「1」で等倍となっており、「1」より大きければ機敏に、小さければ反応が鈍くなります。 振り子が多段になっている場合は、親の振り子の動きに対して子の振り子がどれほど機敏に反応するかの設定になっています。 |
収束の早さ | 揺れが収まるまでの早さを設定できます。 「1」で等倍となっており、「1」より大きければ収束が早く、小さければ遅くなります。 |
振り子のプレビュー
項目 | 詳細 |
---|---|
プレビュー | [物理モデル設定]上で計算された振り子本来の動きをプレビューします。 ただし、[入力設定][出力設定]で設定された影響度は振り子には反映されません。 振り子の設定で[追加]をクリックすると、下に向かって振り子が追加されていきます。 プレビュー上でマウスホイールを操作することで、スケールを調整することが出来ます。 |
原寸 | プレビューを原寸で表示します。 |
全体 | 振り子全体を表示します。 |
左回転/右回転 | プレビューの角度が45度回転します。 ここで変更された角度は、振り子の揺れ方には影響しません。 |
右クリックメニュー
項目を右クリックするとメニューが表示されます。
項目は複数選択もできるため、複製や削除を一括で行うことも可能です。
出力設定
出力設定項目
項目 | 詳細 |
---|---|
追加 | [出力]として扱うパラメータを追加します。 |
削除 | 選択した[出力]パラメータを削除します。 |
↑ | 選択した[出力]パラメータの位置を上に一つ移動します。 |
↓ | 選択した[出力]パラメータの位置を下に一つ移動します。 |
最大出力を自動更新 | チェックを外すと、[最大出力(%)]の自動更新が停止します。 |
振り子No | [物理モデル設定]で設定した振り子のうち、どれを使用して出力するかを指定します。 |
出力 | [出力]として扱うパラメータです。 設定したパラメータに、各項目の設定から計算した揺れが適用されます。 プルダウンからパラメータを変更することも可能です。 |
影響度(%) | Cubismの物理演算では、複数のパラメータを入力することが可能です。 複数の物理演算の結果からパラメータの値へ出力する場合、どの出力が何対何の比で影響するかを、この項目で設定します。 |
反転 | チェックを入れると出力パラメータが反転します。 |
倍率 | 計算された値に掛ける値です。 この値が大きいほど大きく揺れ、小さいほど揺れが小さくなります。 |
最大出力(%) | 最大出力(%)は、倍率をかけた結果の出力値が、出力先のパラメータの0から最大値の何%まで動いたかを表します。 |
出力調整(アップ) | [最大出力]が100%まで届いておらず、振り子の動きが小さい場合、[最大出力]が100%になるように倍率を自動で調整します。 |
出力調整(ダウン) | [最大出力]が100%以上で振り子の動きが振り切れていた場合、[最大出力]が100%になるように倍率を自動で調整します。 |
倍率のリセット | [倍率]を1.0へリセットします。 |
最大出力をリセット | [最大出力]をリセットします。 |
Tips
倍率は、振り子Noで指定される振り子の角度(親振り子との相対角度)がラジアンとして取り出され、
そこにこの倍率を掛けた値を出します。
そして、その値と現在のパラメータ値を、影響度を考慮してブレンドします。(100%なら上書きします)
(複数のグループで、同じパラメータが影響を受けるように定義している場合は、グループの順番で上記の計算を繰り返します。)
右クリックメニュー
項目 | 詳細 |
---|---|
追加 | 出力項目を追加します。 |
一括でグループとして分離 | 選択中の出力設定項目全てを含むグループをひとつ新規作成します。 入力設定項目も複製されます。 |
個別のグループとして分離 | 選択中の出力設定項目を全てひとつひとつ個別のグループとして新規作成します。 入力設定項目も複製されます。 |
削除 | 出力項目を削除します。 複数選択して削除することも可能です。 |
コピー | 出力項目をコピーします。 複数選択してコピーすることも可能です。 |
貼り付け | コピーした出力項目を貼り付けます。 他のグループへ貼り付けることも可能です。 |