ETH官方钱包

創作內容

4 GP

Unity Animator deltaPosition (2)

作者:Adisa│2019-08-09 15:55:38│巴幣:8│人氣:955
上一篇

在更改成Apply root motion後依然會有問題,就是當這個動作本身就是會位移的,那麼就算是沒有把那個動作的bake into pose給enable,依然會產生大量位移後又回到原點的問題。

                                 ▲可以看到人物爬上去後被拉回地面,造成很奇怪的現象

▲這個動作本身就會有垂直(y軸)的變動

所以就算如上篇所說把apply root motion給enable依然有其他問題,但disable掉又會有取不到deltaPosiotn的問題,因此在努力的查詢之下,藉由這篇中得知官方原本也是認為是bug因此要那篇的原po進行回報,但在回報之後官方卻定調這個情況是他們所想要的,因此不列為bug了,其理由可能是節省cpu運算。

而官方也有提供了解決方案,因為總是會有開發者比如正在寫這篇文章的在下,會想要自行計算位移,因此方法就是使用OnAnimatorMove

在一番研究後,發現的確可以完整的解決了之前的問題,讓專案回到2018.1的情況,不需要額外再設計動作,真是可喜可賀可以省下一筆開銷了,以下就是使用方法。

在那個本身有著Animator component的角色身上掛載著自己寫的OnAnimatorMove的Script,
▲掛載一個內容為空的OnAnimatorMove
之所以為空的原因是因為,本專案在計算root motion的地方原本就是放在別的script上,也就是說不需要移動code 過來到OnAnimatorMove依然有用,又是一件可喜可賀的事情,不需要大動作的翻修程式。

在掛載這個script後就可以看到原本apply root motion那邊有打勾地方變了變成Handled by script。
▲未掛載的狀態
▲掛載後的狀態

接著就可以看到動作終於變正常了,大師兄......痾,不對,是unitychan你終於回來了,真的是開心啊啊啊啊。
引用網址:http://www.jamesdambrosio.com/TrackBack.php?sn=4489285
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Unity|unity|Animator|Root Motion|deltaPosition|獨立遊戲|OnAnimatorMove

留言共 4 篇留言

ays.
所以樓主最後是類似針對不同動畫用不同的deltaPosition來把動作變成想要的樣子嗎?

另外也想問我之前是直接bake root transform position y, 然後用程式直接改 transform.position, 不知道這樣的做法有沒有甚麼問題?

謝謝大大 <(_ _)>

08-09 23:16

Adisa
1.我是把deltaPosition取出值後進行加法乘法計算根號之類的運算再跟原本的transform.position做運算,來做到動作所需要的偏移量。
2.就我的理解上,若是用bake into pose而且apply root motion為true,這個變動值只會寫到body tranform 也就是pose裡面,而root transform的postion依然會為原始值不會變動,因此若這時候又修改transform.position就代表說會有兩個大量的變動值,以我的觀點來說影響挺大的。08-10 13:31
ays.
了解了,謝謝您

08-11 01:24

??求出處學術用??
請問下OnAnimatorMove裡 大大寫哪些東西 才會讓unity chan爬上平臺 如有冒犯敬請見諒

10-21 22:39

Adisa
如同上方所提的本專案的OnAnimatorMove是空的,並不作任何行為。這邊主要是講說要如何不讓模型動作影響程式的位移計算。unitychan往上移動,單純點可以用unity本身所提供的Rigidbody.AddForce提供垂直力量或是Transform.Translate又或著Vector3.MoveTowards都可以做到,更甚著是直接勾選Apply root motion,程式不做任何位移計算,直接讓模型的動作來移動都可以。10-24 11:16
??求出處學術用??
謝謝大大

10-24 11:14

我要留言提醒:您尚未登入,請先登入再留言

4喜歡★Adisa 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:[輕小說] 赤瞳的伊莉雅... 後一篇:Unity shader...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】