用骨骼做一個柔軟毛筆筆頭。

原料:一個被動作綁定過骨骼的毛筆
原理:原理其實很簡單,通過判斷毛筆移動的方向,對筆頭的骨骼做一個相反方向的運動,骨骼從下到上的運動量呈衰減狀態


毛筆.gif
public class TestMaobi : MonoBehaviour {

   

    public Transform[] childBone;//筆頭的骨骼節點
    public Vector3[] BoneLocalPos;


    private Vector3 lastPostion;
    private Vector3 nowPostion;
    // Use this for initialization
    void Start () {

        BoneLocalPos = new Vector3[childBone.Length];
        for (int i=0;i<BoneLocalPos.Length;i++)
        {
            BoneLocalPos[i] = childBone[i].localPosition;
        }
        lastPostion = this.transform.position;
        nowPostion = this.transform.position;
    }
    public Vector3 m_MoveDir;
    void LateUpdate()
    {
        lastPostion = nowPostion;
        nowPostion = this.transform.position;
        Vector3 moveDir = nowPostion - lastPostion;
        m_MoveDir = moveDir.normalized;
        if (!moveDir.Equals(Vector3.zero))
        {
            for (int i = 0; i < childBone.Length; i++)
            {



                Vector3 _moveDir = childBone[i].InverseTransformDirection(m_MoveDir);
                
                childBone[i].localPosition = Vector3.Lerp(childBone[i].localPosition, BoneLocalPos[i] - new Vector3(Mathf.Clamp(_moveDir.x * i * Time.deltaTime * 30f, -0.0015f * i, 0.0015f * i), 0, Mathf.Clamp(_moveDir.z * i * Time.deltaTime * 30f, -0.0015f * i, 0.0015f * i)), Time.deltaTime * 10f);




            }
        }
       
        
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容