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

如何在Ursina引擎中实现已绑定骨骼模型的动画效果?

Ursina引擎骨骼动画处理方案

Ursina引擎完全支持已绑定骨骼(rigged)的模型动画处理,具体操作流程如下:


操作步骤

  • 准备模型资源
    优先将绑定好骨骼、做完动画的模型导出为glTF/GLB格式,导出时需勾选「骨架」「顶点权重」「动画」相关选项,不要将动画烘焙为网格关键帧。
  • 加载动画模型
    直接通过Entity加载模型即可,Ursina会自动识别内嵌的骨骼动画数据:
    from ursina import *
    app = Ursina()
    # 加载带骨骼动画的角色,默认播放待机动画
    player = Entity(model='character.glb', anim='idle', scale=1)
    
  • 基础动画控制
    加载完成后通过.anim属性即可控制动画状态:
    • 播放指定动画:player.anim.play('run', loop=True, transition_time=0.2),transition_time参数用于设置不同动画切换的过渡时长,避免动作跳变
    • 暂停动画:player.anim.pause()
    • 停止动画并重置到初始帧:player.anim.stop()
    • 调整播放速度:player.anim.speed = 1.5(数值小于1为慢放,大于1为快放)
  • 单骨骼自定义控制
    如果需要手动修改某块骨骼的姿态(比如实现IK、角色看向指定位置等需求),可以直接访问骨骼对象调整属性:
    # 获取头部骨骼,调整抬头角度
    head_bone = player.armature.bones['head']
    head_bone.rotation_x = 30
    

常见问题说明

  • 目前Ursina对FBX格式的骨骼动画兼容性较差,使用glTF/GLB格式可以避免绝大多数加载失败、动画丢失的问题
  • 如果模型内嵌多段动画,Ursina会自动识别所有动画名称,直接调用对应名称播放即可
  • 动画权重、骨骼层级复杂的模型加载前建议先在Blender中做简化处理,避免运行时性能损耗过高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:36:00