[Unity] VRIK(FinalIK)のInspectorの値をスクリプトから変更する


やり方

スクリプトを作成し、using RootMotion.FinalIK; を宣言します。

例えば、自身にAddComponentしたVRIKを参照してIK全体のweightを変更する場合、以下のように記述します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RootMotion.FinalIK;

public class IKChange : MonoBehaviour
{
    VRIK VRIKscript;//スクリプト

    void Start()
    {
        VRIKscript = gameObject.GetComponent<VRIK>();
        //weightの値変更
        VRIKscript.solver.IKPositionWeight = 0.5f;
    }
}


できた!

詳しく

Inspectorから操作できるVRIK(Script)のあれこれはnamespaceとして用意してあるため、宣言するだけで簡単に扱えます。扱える変数等は公式のリファレンスから。
IKのweightを徐々に小さくしていくことで、モーションデータからアニメーションのモーフィングができるはずです(試していません)。また、VRMをランタイムで読み込んでVRIKをアタッチさせるなんてことも可能だそう。