You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程向Animation Player(GUI工具)添加/批量加载.tres动画?

批量向Animation Player GUI添加.tres动画资源的实现方法

核心逻辑

要实现编辑器GUI里加载按钮的等效功能,得用Godot的编辑器API写编辑器脚本,直接操作Animation Player的动画库,和编辑器原生加载逻辑完全一致。

具体实现代码

创建一个后缀为.gd的编辑器脚本,代码如下:

@tool
extends EditorScript

func _run():
    # 获取当前选中的Animation Player节点
    var selected_nodes = EditorSelection.get_singleton().get_selected_nodes()
    if selected_nodes.empty() or not selected_nodes[0] is AnimationPlayer:
        print("请先选中一个Animation Player节点")
        return
    
    var anim_player = selected_nodes[0] as AnimationPlayer
    # 替换成你的.tres动画存放目录
    var anim_dir = "res://animations/"
    var dir = Directory.new()
    
    if not dir.open(anim_dir):
        print("打不开目标目录: ", anim_dir)
        return
    
    dir.list_dir_begin(true, true)
    var file_name = dir.get_next()
    while file_name != "":
        if file_name.ends_with(".tres"):
            var anim_path = anim_dir + file_name
            var animation = load(anim_path)
            if animation is Animation:
                var anim_name = file_name.get_basename()
                # 避免覆盖已存在的动画
                if anim_player.has_animation(anim_name):
                    print("跳过已存在的动画: ", anim_name)
                    file_name = dir.get_next()
                    continue
                # 添加动画到Animation Player,会直接显示在GUI面板里
                anim_player.add_animation(anim_name, animation)
                print("已添加动画: ", anim_name)
        file_name = dir.get_next()
    
    dir.list_dir_end()
    print("批量添加完成")

使用步骤

  1. 把脚本保存为BatchAddAnimations.gd
  2. 在Godot编辑器里,选中场景中的Animation Player节点
  3. 点击顶部菜单的Script > Run Editor Script,选择刚才保存的脚本即可

注意事项

  • 脚本里的anim_dir要改成你实际存放.tres动画的目录路径
  • 如果想遍历子目录,保持dir.list_dir_begin(true, true)的参数即可(第二个true表示包含子目录)
  • 代码里做了重名检查,避免覆盖已有的动画,你也可以改成自动给重名动画加后缀(比如anim_name_1)

内容的提问来源于stack exchange,提问作者allingfin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:52:45