UnityのインバースダイナミクスIK

1. 使用方法

(1) オブジェクトの親オブジェクトにIK Managerスクリプトを追加

(2) キャラクターの手足の骨の端と笏の端に空のオブジェクトを作成します

 (3) IKノードの追加

プレーヤーの選択

追加後、Player のサブオブジェクト IK ノードが表示されることがわかります。

セプターの端にあるゲームオブジェクトをエフェクターにドラッグします

 

ChainLength を設定し、Target を作成すると、IK ノードにサブオブジェクトがあることがわかります。

(4) 移動するIKノードを選択します

 

(5) 位置を設定した後、Player が移動したときに問題が発生しないように、IK ノードを Player のサブオブジェクトとして設定します。

2. 重要なパラメータ

 

 3. 小さな演習: マウスが指す場所、指が指す場所はどこですか?

public class L39 : MonoBehaviour
{
    //两只手的ik节点(是IK节点的子对象target)
    public Transform rightHandIkPoint;
    public Transform leftHandIkPoint;

    //记录鼠标位置
    private Vector3 mousePos;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(1))
        {
            //记录鼠标位置
            mousePos = Input.mousePosition;
            //鼠标的Z轴跟摄像机的Z轴反向,摄像机Z是-10
            mousePos.z = 10;
            //屏幕坐标转世界坐标
            rightHandIkPoint.position = Camera.main.ScreenToWorldPoint(mousePos);
            leftHandIkPoint.position = Camera.main.ScreenToWorldPoint(mousePos);
        }
    }
}

おすすめ

転載: blog.csdn.net/holens01/article/details/131049633
おすすめ