前往
大廳
主題

紅蓮後空翻01

夏洛爾 | 2022-02-03 22:35:44 | 巴幣 2 | 人氣 84


誘導方式:
把平滑角速度投影到Root.forward軸上,以便是以人物的面向來判定旋轉
並且確保方向性,只有在方向符合時(逆向旋轉不得分),根據投影向量給予得分

Vector3 projectVelocity = Vector3.Project(smoothAvgVelocity, gurrenRoot.forward);
float projectAngle = Vector3.Angle(projectVelocity, gurrenRoot.forward);

if(projectAngle < 90f)
{
lastReward = projectVelocity.magnitude * 0.1f;
}
else
{
lastReward = 0f;
}

AddReward( lastReward );


然後總結Unity ML (0.16)當前使用現況
1.無法中斷訓練取得Model
在官方文件有註明是當前已知bug,建議都等到訓練完成再取用model

2.時移不會導致出錯
只要physics iteration設定夠高,就算在加速環境下訓練也能得出有效成果

3.Resume訓練有可能導致出錯
尚未驗證,但由於當前也無法中斷訓練取得model,因此建議寧願高倍率時移,也讓訓練一次完成

而關於近期遭遇執行檔環境和編輯器環境對於同model表現完全不同的問題
在官方論壇發問後沒有得到有效的解答

目前觀察上,有可能是在執行檔環境,不知為什麼紅蓮的左腳膝蓋好像常常可以做出逆折的動作,並且借用逆折後的彈性來動作


但在編輯器環境,膝蓋就會正常而完全無法逆折,但也因此導致行為導致的結果與紅蓮預期有落差

再以跑步模型來比較
這是執行檔環境,可以看到左腳膝蓋有逆折現象

這是編輯器環境,可以看到左腳膝蓋不會出現逆折現象,也因此導致紅蓮右腳預期高度不對

目前是重新處理紅蓮的關節
原本大腿和小腿的碰撞框有一點距離,調整成更服貼身體比例
另外考慮Unity關節好像有避免一些特定角度,例如極限是175 而非180度
因此將膝關節調整成伸直是5度 彎曲極限是150度

看看能不能避免執行環境發生逆折現象,雖然可能也要研究為什麼兩個環境會有觀察模擬落差

由於後空翻一次成功了,下個實驗將挑戰側翻

創作回應

更多創作