我正在嘗試在實體化場景時播放影片。這是一個簡單的影片,將 y 從 -5 轉換為 5。影片播放但它在 x = 0 和 z = 0 播放。我理解這是因為影片中各個坐標的平移值設定為 0 . 我的播放器場景中有一個空間節點,可以獲取變換資訊并將其傳遞給我的影片場景,但我不知道如何動態更改腳本中關鍵幀的 x 和 z 值。
uj5u.com熱心網友回復:
這個答案包含三個問題的解決方案......
定位子資源
如果我理解正確,您只想為y坐標設定影片,而其他坐標保持不變。也就是說,您不想為translation矢量設定影片。您想要為子屬性y或設定影片translation。這是開箱即用的,但 UI 不會提供給您。
首先從影片編輯器創建軌道。您單擊“添加跟蹤”,選擇“屬性跟蹤”,然后單擊您想要的物件,然后選擇翻譯。現在,當軌道為空(尚未插入關鍵幀)時,將軌道名稱修改:y為末尾。
曲目將使用名稱創建,例如SpatialNodeName:translation,您要將其更改為SpatialNodeName:translation:y。
之后,當您添加關鍵幀時,它們將用于translation.y. 注意:做SpatialNodeName:transform:origin:y或什至SpatialNodeName:global_transform:origin:y也有效。同樣,您可以想象如何僅用于旋轉或縮放等。
創建自定義屬性并為其設定影片
我還將提到另一個選項是使用Tween節點(更容易從代碼創建)。
而且,這兩個Tween和AnimationPlayer可以影片任何財產。因此,如果您需要為不可用的內容設定影片,請考慮添加一個屬性(請參閱setget)。
例如:
export var y:float setget set_y, get_y
func set_y(new_value:float) -> void:
transform.origin.y = new_value
func get_y() -> float:
return transform.origin.y
然后,您可以為自定義屬性添加一條軌跡,并像其他影片一樣對其進行影片處理。
順便說一句,還要注意AnimationPlayer也可以有“呼叫方法”軌道。
修改影片
從代碼操作影片也是可能的。我在別處看到過一個例子。你可以叫get_animation上AnimationPlayer獲得影片。然后在回傳的影片上,您可以呼叫track_get_key_value和track_set_key_value。但是,這很少是您在實踐中想要做的(除非您正在制作一個創建或修改影片或類似內容的 Godot 插件)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324356.html
上一篇:如何將整數值轉換成時間戳格式?
