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

如何在Godot 4中播放GIF?GDscript实现及替代方案咨询

Godot 4中播放GIF与视频的实现方案

一、播放GIF文件

Godot 4没有原生的GIF专属播放组件,但可以通过两种方式实现播放:

1. 用AnimatedSprite2D逐帧播放

先把GIF拆成单独的帧图片(可用PS、免费在线工具完成拆分),导入Godot后创建SpriteFrames资源并导入所有帧,再给AnimatedSprite2D组件绑定该资源,最后用代码控制播放:

extends AnimatedSprite2D

func _ready():
    # 提前在编辑器给sprite_frames赋值拆分后的帧资源
    play()
    # 强制开启循环(也可直接在SpriteFrames面板设置)
    set_animation_loop(true)

2. 用TextureRect+GDScript动态加载帧

借助Godot的Image类读取GIF的帧数据和延迟时间,定时切换TextureRect的纹理:

extends TextureRect

var gif_frames: Array[Texture2D] = []
var frame_delays: Array[float] = []
var current_frame: int = 0
var timer: Timer = null

func _ready():
    var gif_image = Image.load("res://video.gif")
    if gif_image:
        # 提取所有帧和每帧延迟时间
        for i in range(gif_image.get_frame_count()):
            gif_image.set_current_frame(i)
            gif_frames.append(ImageTexture.create_from_image(gif_image))
            # 把毫秒转成秒
            frame_delays.append(gif_image.get_frame_delay(i) / 1000.0)
        
        # 创建定时器控制帧切换
        timer = Timer.new()
        add_child(timer)
        timer.timeout.connect(_on_timer_timeout)
        timer.wait_time = frame_delays[current_frame]
        timer.start()

func _on_timer_timeout():
    current_frame = (current_frame + 1) % gif_frames.size()
    texture = gif_frames[current_frame]
    timer.wait_time = frame_delays[current_frame]
    timer.start()

二、播放视频文件

Godot 4原生支持视频播放,直接用VideoPlayer组件即可:

  1. 给场景添加VideoPlayer节点
  2. 在编辑器的属性面板里,把stream设置为你的视频文件(支持MP4、WebM等格式,推荐用H.264编码的MP4或VP9编码的WebM)
  3. 用代码控制播放逻辑:
extends VideoPlayer

func _ready():
    stream = load("res://your_video.mp4")
    play()
    # 监听播放结束事件
    finished.connect(_on_video_finished)

func _on_video_finished():
    print("视频播放完毕")

三、替代方案

  • 若GIF拆分帧太麻烦,可直接在Godot资源库搜索安装GIFPlayer第三方插件,用插件提供的节点一键播放GIF。
  • 若视频出现编码不兼容无法播放的情况,用FFmpeg等工具把视频转成Godot支持的编码格式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:27:05