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

Ursina 3D动画制作报错:Entity对象无指定动画属性求助

Ursina序列帧3D动画正确实现方案

错误原因

你用错了方法:animate()是Ursina用来给Entity的**属性(如位置、缩放)**做补间动画的方法,不是播放预定义帧动画的。报错是因为它把你传入的路径当成了Entity的属性名,自然找不到。

正确实现步骤

  1. 定义动画时用字典映射名称
    把animations参数从列表改成字典,给你的动画起一个简洁的名称(比如'walk'),对应到Animation对象。这样后续可以通过名称调用动画。
  2. 用play_animation()播放帧动画
    播放预定义的帧动画需要调用play_animation()方法,而不是animate()。

修正后的代码

from ursina import *
from ursina.animation import Animation

app = Ursina()

# 定义Entity,animations用字典,键为动画名称,值为Animation对象
model = Entity(
    model="animation_walk/Pokemon_dresseur1.obj",
    collider="mesh",
    texture="Texture_dresseur.png",
    position=(-2, -9.5, 0),
    flipped_faces=False,
    double_sided=True,
    # 字典形式定义动画,名称为'walk',对应序列帧1-24
    animations={
        'walk': Animation('animation_walk/Pokemon_dresseur', 1, 24)
    }
)

model.animation_speed = 2  # 设置动画播放速度
model.play_animation('walk', loop=True)  # 播放walk动画,循环播放

app.run()

额外注意事项

  • 确保你的序列帧文件命名规范:Pokemon_dresseur1.obj、Pokemon_dresseur2.obj...Pokemon_dresseur24.obj,Animation类会自动按序号加载这些文件。
  • 如果需要切换动画,直接调用model.play_animation('新动画名称')即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:05:42