Ik反向動(dòng)力學(xué)

一般我們都是通過(guò)父節(jié)點(diǎn)來(lái)調(diào)動(dòng)子節(jié)點(diǎn)運(yùn)動(dòng)房午,而在實(shí)際開發(fā)過(guò)程中矿辽,有時(shí)候我們需要子節(jié)點(diǎn)帶動(dòng)父節(jié)點(diǎn)進(jìn)行相應(yīng)的動(dòng)作。這種情況就是反向動(dòng)力學(xué)郭厌。其實(shí)在國(guó)內(nèi)的游戲中很少看見IK動(dòng)畫袋倔,一般而言國(guó)外的游戲較多。例如刺客信條折柠,手部帶動(dòng)身體的爬行宾娜。
通俗講:使用場(chǎng)景中的各種物體來(lái)控制和影響角色身體部位的運(yùn)動(dòng)

案例

首先我們先打開IK并設(shè)置權(quán)重為1


Paste_Image.png

然后我們創(chuàng)建一個(gè) Avatar Mask設(shè)置其固定骨骼


Paste_Image.png
隨后我們創(chuàng)建腳本Iktext 并寫入一下代碼,
public class Iktext : MonoBehaviour
{
    public Animator ani;
    public Transform sphere;
    private GameObject shoulei;//游戲?qū)ο?    public Transform shou;//手的位置
    private Rigidbody body;
    private float speed;//速度

    public Transform cube;
    
    void Start ()
    {
        speed = 500;
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.GetKey(KeyCode.W))
        {
            sphere.transform.Translate(new Vector3(0, 0,0.1f));
        }
        if (Input.GetKey(KeyCode.S))
        {
            sphere.transform.Translate(new Vector3(0, 0, -0.1f));
        }
        if (Input.GetKey(KeyCode.A))
        {
            sphere.transform.Translate(new Vector3(-0.1f, 0, 0));
        }
        if (Input.GetKey(KeyCode.D))
        {
            sphere.transform.Translate(new Vector3(0.1f, 0, 0));
        }
        if (Input.GetKey(KeyCode.J))
        {
            sphere.transform.Translate(new Vector3(0, 0.1f, 0));
        }
        if (Input.GetKey(KeyCode.N))
        {
            sphere.transform.Translate(new Vector3(0, -0.1f, 0));
        }
        if (Input.GetKeyDown( KeyCode.Space))
        {
            ani.Play("Throw 0");
        }
    }
    void OnAnimatorIK(int layerIndex)//IK反向動(dòng)力學(xué)
    {
        ani.SetLookAtWeight(1,1,1,1);//設(shè)置頭部扇售,身體前塔,手,腳都跟著游戲?qū)ο髣?dòng)
        if (sphere)
        {
            ani.SetLookAtPosition(sphere.position);//看向Ik視覺(jué)的位置
        }
        if (cube)
        {
            ani.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1);//設(shè)置IK(反向)位置的權(quán)重(設(shè)置左腳缘眶,設(shè)置權(quán)重為1)
            ani.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);//設(shè)置IK(反向)旋轉(zhuǎn)的權(quán)重(設(shè)置左手嘱根,設(shè)置權(quán)重為1)

            ani.SetIKPosition(AvatarIKGoal.LeftFoot, cube.transform.position);//設(shè)置IK (反向)位置(設(shè)置左腳位置,按照Cube的位置來(lái)設(shè)置動(dòng)畫人物的左腳的位置)
            ani.SetIKRotation(AvatarIKGoal.RightHand, cube.transform.rotation);//設(shè)置IK (反向)旋轉(zhuǎn)(旋轉(zhuǎn)左手巷懈,按照Cube的旋轉(zhuǎn)來(lái)設(shè)置動(dòng)畫人物的左手旋轉(zhuǎn))
        }
    }
    void NewEvent()//動(dòng)畫事件系統(tǒng)
    {
       shoulei= GameObject.CreatePrimitive(PrimitiveType.Sphere);
        shoulei.AddComponent<destory>();
        shoulei.transform.localScale=new Vector3(0.1f,0.1f,0.1f);
        shoulei.AddComponent<Rigidbody>();
        shoulei.transform.position = shou.position;
        body=shoulei.GetComponent<Rigidbody>();
        body.AddForce((sphere.transform.position-shou.transform.position)*Time.deltaTime*speed,ForceMode.Impulse);  
}
  
}

隨后我們給其賦值

Paste_Image.png
我們?cè)趯⑼肚虻臓顟B(tài)機(jī)做好讓我們給其賦動(dòng)畫的值和骨骼该抒。這樣我們大概就完成了 運(yùn)行看看效果吧
IK反向動(dòng)力效果
IK.gif

事件系統(tǒng)效果
SJ.gif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市顶燕,隨后出現(xiàn)的幾起案子凑保,更是在濱河造成了極大的恐慌,老刑警劉巖涌攻,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欧引,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡恳谎,警方通過(guò)查閱死者的電腦和手機(jī)芝此,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)因痛,“玉大人婚苹,你說(shuō)我怎么就攤上這事⊥腋啵” “怎么了膊升?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谭企。 經(jīng)常有香客問(wèn)我廓译,道長(zhǎng)评肆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任非区,我火速辦了婚禮瓜挽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘院仿。我一直安慰自己秸抚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布歹垫。 她就那樣靜靜地躺著剥汤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪排惨。 梳的紋絲不亂的頭發(fā)上吭敢,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音暮芭,去河邊找鬼鹿驼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辕宏,可吹牛的內(nèi)容都是我干的畜晰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瑞筐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凄鼻!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起聚假,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤块蚌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后膘格,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體峭范,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年瘪贱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纱控。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡菜秦,死狀恐怖甜害,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喷户,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布访锻,位于F島的核電站褪尝,受9級(jí)特大地震影響闹获,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜河哑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一避诽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧璃谨,春花似錦沙庐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至底扳,卻和暖如春铸抑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衷模。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工鹊汛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阱冶。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓刁憋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親木蹬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子至耻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容