godot 4 通过代码生成动画文件,并批量保存为tres文件【素材来源网络,仅供学习参考】

  1. 素材
    站立.png (8行10列)
    在这里插入图片描述
    跑动.png(8行8列)
    在这里插入图片描述
  2. 脚本路径
    在这里插入图片描述
  3. 批量生成脚本代码
@tool
extends EditorScript


func _run():
	save_one_tres("站立", 8, 10)
	save_one_tres("跑动", 8, 8)
	

# 保存单个动画文件
# texture_name 纹理集名字
# sprite_rows_number  纹理行数,每行一个动画
# sprite_columns_number  纹理列数,每列是一个动画中的一帧 
func save_one_tres(texture_name, sprite_rows_number, sprite_columns_number):
	# 保存路径
	var save_path = "res://" + texture_name + ".tres"
	# 纹理路径
	var texture_path = "res://素材//人物//巫蛮儿//" + texture_name + ".png"
	# 设置纹理
	var texture = ResourceLoader.load(texture_path)
	var base_frame = AtlasTexture.new()
	base_frame.atlas = texture
	
	# 帧宽和高
	var sprite_width = texture.get_width() / sprite_columns_number
	var sprite_height = texture.get_height() / sprite_rows_number

	# 批量添加动画集
	var sprite_frames = get_animations(base_frame, texture_name, sprite_width, sprite_height, sprite_rows_number, sprite_columns_number)
	
	# 保存动画集文件
	ResourceSaver.save(sprite_frames, save_path, ResourceSaver.FLAG_REPLACE_SUBRESOURCE_PATHS)


# 批量添加动画集
func get_animations(base_frame, animation_library_name, sprite_width, sprite_height, sprite_rows_number, sprite_columns_number):
	var sprite_frames = SpriteFrames.new()
	sprite_frames.remove_animation("default")
	
	for x in range(sprite_rows_number):
		var animation_name = animation_library_name + "_" + String.num(x)
		
		sprite_frames.add_animation(animation_name)
		for y in range(sprite_columns_number):
			var frame = base_frame.duplicate()
			frame.region = Rect2(y * sprite_width, x * sprite_height, sprite_width, sprite_height)
			sprite_frames.add_frame(animation_name, frame)
			
	return  sprite_frames
  1. 运行结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Godot XML文件是一种用于描述Godot游戏引擎中场景和资源的XML格式文件。这些文件通常使用`.tscn`和`.tres`文件扩展名,分别表示场景和资源。 Godot XML文件包含以下内容: 1. 版本信息:Godot XML文件的第一行是版本信息,用于指定使用的Godot版本和文件格式。 2. 根节点:根节点是文件中的最上层元素,它包含了场景或资源的所有内容。根据文件类型,根节点的标签名称可能是`Scene`或`Resource`。 3. 节点:节点是场景或资源中的一个元素,它可以是一个对象、一个组或一个自定义节点。每个节点都有一个类型和一个名称,以及一组属性和子节点。 4. 属性:属性是节点的一个元素,用于描述节点的各种属性,例如位置、旋转、缩放等。每个属性都有一个名称和一个值。 5. 子节点:子节点是一个节点的一个元素,用于描述节点的子节点。子节点可以包含其他节点,这些节点可以是对象、组或自定义节点。 6. 资源引用:在Godot中,资源是可重用的对象,它们可以被多个场景使用。为了在场景中使用资源,需要使用资源引用,它是一个字符串,指向资源的路径或ID。 一个简单的Godot XML文件示例,如下所示: ```xml <?xml version="1.0" encoding="UTF-8"?> <root> <Scene format="2"> <environment> <background_color> <color r="0" g="0" b="0" a="1"/> </background_color> </environment> <node name="Sprite" type="Sprite"> <position x="0" y="0"/> <scale x="1" y="1"/> <texture import="ExtResource( 1 )"> <filter_mag>1</filter_mag> <filter_min>1</filter_min> <flip_h>0</flip_h> <flip_v>0</flip_v> <offset> <x>0</x> <y>0</y> </offset> <region> <enabled>0</enabled> <rect> <x>0</x> <y>0</y> <width>0</width> <height>0</height> </rect> </region> <tex_flags>7</tex_flags> </texture> </node> </Scene> </root> ``` 该示例是一个Godot场景文件,包含一个名为"Sprite"的Sprite节点。节点有位置、规模和纹理等属性。节点的纹理属性是一个资源引用,指向场景中的一个纹理资源。 ### 回答2: Godot XML 文件是指在Godot游戏引擎中使用的一种文件格式,用于存储游戏资源和场景数据。XML是一种可扩展标记语言,被广泛应用于数据交换和配置文件等领域。 Godot XML 文件使用标签、属性和文本内容来描述游戏资源和场景的属性和结构。通过使用不同的标签和属性,可以定义游戏中的角色、场景、音频、动画等相关信息。XML文件具有良好的可读性和可扩展性,能够方便地进行修改和维护。 通过Godot引擎的内置工具,我们可以使用XML文件导入和导出游戏资源和场景数据。首先,我们可以创建一个XML文件,并按照Godot引擎的规定格式编写内容。然后,通过Godot引擎中提供的相关函数,可以将XML文件导入到游戏项目中,或者将游戏资源和场景数据导出为XML文件。 使用Godot XML 文件可以实现游戏资源和场景的共享和复用。通过将资源和场景数据存储为XML文件,我们可以方便地在不同的项目中进行导入和导出。这样,我们可以更好地管理和组织游戏开发过程中的各种资源,提高开发效率。 总之,Godot XML 文件是一种使用XML格式存储游戏资源和场景数据的文件。它具有可读性和可扩展性的特点,可以方便地在Godot游戏引擎中进行导入和导出。通过使用XML文件,我们可以更好地组织和管理游戏开发过程中的资源和数据。 ### 回答3: Godot XML 文件是一种在Godot游戏引擎中使用的文件格式。它用于存储场景、资源和节点的信息,以便在游戏中进行序列化和反序列化操作。 Godot XML 文件是一种基于文本的文件格式,可以通过文本编辑器打开和修改。它使用层次结构的标记来表示节点之间的关系,并通过属性和值来描述节点的属性。 通过Godot XML 文件,开发者可以保存和加载游戏场景,包括场景中的节点、材质、贴图等。它还可以用于导出和导入自定义资源,例如动画、音频和脚本文件。 使用Godot XML 文件,开发者可以方便地进行版本控制和团队协作。他们可以将修改后的XML文件上传到代码仓库中,以便团队成员共享和合并。 此外,Godot XML 文件还可以作为游戏配置文件使用。开发者可以使用XML文件来存储玩家的偏好设置、游戏进度、成就等信息。 总而言之,Godot XML 文件是Godot游戏引擎中使用的一种文件格式,用于存储和描述场景、资源和节点的信息。它方便游戏开发者进行序列化、反序列化、版本控制和配置管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值