我有一個在我的啓動項目中使用的海洋模型,在運行時會無法控制地擡離地面。我導入fbx
資源,將動畫類型設置爲humanoid
,並通過自動映射配置化身,設置一個僅包含正在運行的動畫的動畫控制器。下面是關於幾秒鐘後打:角色在Unity中使用類人動畫類型慢慢向上移動
但使用通用動畫類型時,一切工作正常。任何建議,以解決這個問題,同時仍然使用化身系統?
UPDATE:我的3D模型的
配置:
我有一個在我的啓動項目中使用的海洋模型,在運行時會無法控制地擡離地面。我導入fbx
資源,將動畫類型設置爲humanoid
,並通過自動映射配置化身,設置一個僅包含正在運行的動畫的動畫控制器。下面是關於幾秒鐘後打:角色在Unity中使用類人動畫類型慢慢向上移動
但使用通用動畫類型時,一切工作正常。任何建議,以解決這個問題,同時仍然使用化身系統?
UPDATE:我的3D模型的
配置:
這顯然是由根部運動引起的。會發生什麼情況是,動畫的一個循環會使字符略高一些。添加這些細微的變化,你會得到你所得到的。如果你不需要根運動(看起來不像你這樣做),請禁用它(從動畫組件的設置中)。如果這樣做,請編輯動畫以確保其合適,或者禁用沿Y軸的根運動(可以從動畫的導入設置中執行此操作)。
如果您不知道根運動是什麼,那麼您的模型的根骨應用了動畫。你顯然不能創造整個動畫角色在你的關卡上下運行,直到最近(雖然不是最近很多)角色在現場動畫,並通過代碼程序化移動(我知道虛幻競技場3使用的事實這個方法,就像任何UDK用戶一樣)。然後,人們開始想知道如何讓他們的角色更真實?我的意思是,它不像你以4公里/小時的恆定速度前行,你往往在步行週期的不同部分減速並加速。使用稱爲根運動的技術也可以應用於視頻遊戲角色。
通過根運動,您實際上在動畫期間將角色向前移動。這會導致動畫在max或maya中顯得非常糟糕,因爲在循環之後角色會回到原來的位置。然而,這些數據在遊戲引擎中被智能地使用:不是使用動畫產生的絕對位置,而是在每兩幀之間取出速度,並根據該速度移動角色(虛幻引擎實際上具有非常好的加速度應用根運動的模式,儘管我不確定這與速度模式有什麼不同)。這會使你的角色以動畫的速度向前移動,因此實際上可以動畫角色的動作以及肢體和關節。而且,由於您使用的是速度而不是動畫中的位置數據,因此它看起來完全如您所願。如果您對此技術感興趣,請查看他們在資產商店中的Mechanim演示包。它廣泛使用根部運動來移動角色。
我有同樣的問題,前幾天。我發現問題在於Animator腳本中的Apply Root Motion。確保它沒有被選中。
標記您的播放器與「玩家」在現場 和使用這個腳本
float y;
GameObject player;
void Start()
{
player = GameObject.FindGameObjectWithTag("Player");
y = player.transform.position.y;
}
// Update is called once per frame
void Update()
{
float diff = player.transform.position.y;
player.transform.Translate (0, 0,z - diff);
y = player.transform.position.y;
}
是有點哈克soultion但作品! 注意:如果您想在某個點使用y運動,只需計算並將其添加到差異變量。
我的公司有類似的問題,但我們仍然想保持「應用根運動」切換選中。當同一個動畫在循環中播放時,模型會保持原樣,但如果連續播放幾個不同的動畫,則會導致模型旋轉/移位。 我們的解決方案是在每個動畫的動畫設置中勾選這些複選框。根變換旋轉,根變換位置(Y),根變換位置(XZ)。
你可以在編輯器中發佈完整3d模型配置的圖片嗎? – VicM
動畫還有翻譯嗎?嘗試凍結或鎖定(不記得)編輯器 – VicM
@VicM在3D模型配置中的Y軸我發佈了配置。我是一名新手,我不知道動畫中是否有翻譯,我從資產商店中下載的舊項目中複製模型,該項目不使用化身系統或人形動畫。而且我還沒有爲我的角色添加一個剛體,我會嘗試並凍結y軸。但是旋轉也存在。 – zoujyjs