2015-05-21 15 views
2

我有一個皮膚網狀的'蛇',從攪拌機中導出。 (SplineCurve3)THREE.js:製作蒙皮網格遵循樣條線

我可以計算沿樣條的點,以及這些點之間的角度,但我很掙扎設置旋轉的正確的骨頭。

問題是,每個骨骼是以前的骨骼的孩子,所以旋轉一個也旋轉其他骨骼。

下面是一個圖像:

problem

外形是蛇。

粉色線是SplineCurve3的一部分。

藍色/綠色線條是骨骼(THREE.SkeletonHelper)。

使用SplineCurve3.getTangentAt旋轉每個骨骼。因爲父母也旋轉,蛇捲起來。我基本上需要骨頭是粉紅色的線。

在計算骨骼的旋轉時,我如何「補償」父母的旋轉?

此外,圖片中的路徑是平坦的,但我的目標是將蛇移動到三維中。這是一隻飛翔的蛇。

回答

0

你能否澄清哪個旋轉是哪個(可能畫出一些角度並標註爲參考)?

如果整條蛇與軸線成一個角度,那麼只需從骨骼角度減去該角度即可。

然而,當然,骨角是相對於母骨定義的,而不是相對於軸的絕對角度?如果您使用與x軸對齊的絕對角度作爲相對角度,那麼會產生您看到的輪廓逐漸旋轉的行爲。

假設骨角應給予相對於父骨,然後你想:

childRelativeAngle = childAbsoluteAngle - parentAbsoluteAngle