Interface IVrm
- Namespace
- VMagicMirror.Buddy
サブキャラとしてVRMのロードと操作を行うAPIです。 本APIは作成途上のものであり、VMagicMirror v4.0.0の時点では本APIは利用できません。
public interface IVrm
Remarks
本APIはVRMのロードと操作を行うためのAPIです。 VMagicMirror v4.0.0の時点では機能整備が完了していないため、本APIの利用手段は提供していません。 ここでは、想定している機能を提示する目的でドキュメントを公開しています。
VRMやGLBによる3Dオブジェクトをサブキャラとして表示する機能は、 v4.0.0 以降のマイナーアップデートとして提供予定です。
Properties
Transform
オブジェクトの基本姿勢に関する値を取得します。
ITransform3D Transform { get; }
Property Value
Methods
GetBlendShape(string, bool)
ロードしたモデルについて、ブレンドシェイプの現在値を取得します。
float GetBlendShape(string name, bool customClip)
Parameters
Returns
- float
現在適用されているブレンドシェイプの値
Remarks
指定したブレンドシェイプがモデルに存在しない場合、この関数は 0
を返します。
GetCustomBlendShapeNames()
モデルに定義されたカスタムブレンドシェイプの名称の一覧を取得します。
string[] GetCustomBlendShapeNames()
Returns
- string[]
HasBlendShape(string)
ロードしたモデルに指定した名称のカスタムブレンドシェイプが存在するかどうかを取得します。
bool HasBlendShape(string name)
Parameters
name
stringカスタムブレンドシェイプの名称
Returns
- bool
指定した名称のカスタムブレンドシェイプが存在すれば
true
、そうでなければfalse
Hide()
モデルを非表示にします。
void Hide()
LoadAsync(string)
ファイルパスを指定してVRMをロードします。
Task LoadAsync(string path)
Parameters
path
stringVRMのファイルパス
Returns
LoadPresetAsync(string)
名称を指定してプリセットVRMをロードします。
Task LoadPresetAsync(string name)
Parameters
name
string
Returns
Remarks
プリセットVRMとは、アプリケーション本体に組み込まれたVRMのことです。 このメソッドでVRMをロードする場合、事前にVRMを用意する必要はありません。
v4.0.0では name
に指定できる値は "A"
のみです。
これ以外の名称を指定した場合、 LoadAsync(string) で存在しないファイルを指定した場合と同様のエラーになります。
RunVrma(IVrmAnimation, bool, bool)
VRM Animationを再生します。
void RunVrma(IVrmAnimation animation, bool loop, bool immediate)
Parameters
animation
IVrmAnimation対象になるVRM Animation
loop
boolVRM Animationをループ実行したい場合は
true
、そうでなければfalse
immediate
bool補間を行わずにただちに指定したアニメーションを再生する場合は
true
、現在のポーズとの補間を行う場合はfalse
Remarks
v4.0.0の時点では immediate
オプションの値によらず、補間を行わない動作が適用されます。
このフラグは将来のバージョンで参照されるようになります。
バージョンアップによる挙動変更を避けたい場合、 immediate
の値としては true
を指定してください。
SetBlendShape(string, bool, float)
ロードしたモデルについて、ブレンドシェイプの値を適用します。
void SetBlendShape(string name, bool customClip, float value)
Parameters
name
stringブレンドシェイプの名称
customClip
boolVRM1.0の標準ブレンドシェイプに値を適用する場合は
false
、カスタムのブレンドシェイプに適用する場合はtrue
value
float適用するブレンドシェイプの値。 [0, 1] の範囲で指定します
Remarks
指定したブレンドシェイプがモデルに存在しない場合、この関数を呼んでも何も起こりません。
SetBoneRotation(HumanBodyBones, Quaternion)
ボーンのローカル回転を設定します。
void SetBoneRotation(HumanBodyBones bone, Quaternion localRotation)
Parameters
bone
HumanBodyBones回転を設定するボーン
localRotation
Quaternionボーンのローカル回転
Remarks
指定したボーンが任意ボーンであり、そのボーンが存在しない場合、この関数を呼び出しても何も起こりません。
SetBoneRotations(IReadOnlyDictionary<HumanBodyBones, Quaternion>)
ロードしたモデルについて、ボーンのローカル回転を一括で適用します。
void SetBoneRotations(IReadOnlyDictionary<HumanBodyBones, Quaternion> localRotations)
Parameters
localRotations
IReadOnlyDictionary<HumanBodyBones, Quaternion>回転を適用したいボーンをキー、ローカル回転を値としたディクショナリ
Remarks
ボーン回転を更新したくないボーンについては、キーを含めないようにします。 任意ボーンについて、モデルに該当するボーンが存在しない場合、その値は無視されます。
SetHipsLocalPosition(Vector3)
ロードしたモデルについて、Hipsボーンの位置をローカル座標扱いで指定してモデルの現在位置を更新します。
void SetHipsLocalPosition(Vector3 position)
Parameters
position
Vector3Hipsボーンの位置
Remarks
SetParent(IReadOnlyTransform3D) などで親オブジェクトを指定している場合、
position
は親要素に対するローカルな位置として扱われます。
そうでない場合、position
はワールド座標の位置として扱われます。
SetHipsPosition(Vector3)
ロードしたモデルについて、Hipsボーンの位置をワールド座標扱いで指定してモデルの現在位置を更新します。
void SetHipsPosition(Vector3 position)
Parameters
position
Vector3Hipsボーンの位置
SetMuscles(float?[])
ロードしたモデルについて、モデルの姿勢をMuscle値ベースで適用します。
void SetMuscles(float?[] muscles)
Parameters
muscles
float?[]Muscle値の一覧
Remarks
この関数はUnityのHumanoidの仕様を十分理解している場合に、効率的に姿勢を適用する目的で使用します。
muscles
は長さが 95
の配列であるのが期待値です。
muscleの一部のみを更新する場合、更新したいmuscleの値のみを有効な値とし、それ以外は null
にします。
Show()
LoadAsync(string) でロードしたモデルを表示します。
void Show()
StopVrma(bool)
RunVrma(IVrmAnimation, bool, bool) で再生したVRM Animationを停止します。
void StopVrma(bool immediate)
Parameters
immediate
bool補間を行わずにただちに停止させる場合は
true
、現在のポーズとの補間を行いながら停止させる場合はfalse
Remarks
VRM Animationを再生していない状態でこの関数を呼び出した場合、何も起こりません。
v4.0.0の時点では immediate
オプションの値によらず、補間を行わない動作が適用されます。
このフラグは将来のバージョンで参照されるようになります。
バージョンアップによる挙動変更を避けたい場合、 immediate
の値としては true
を指定してください。