我从设计师那里得到一个 Spine 的导出文件,其中包含3个 Spine 动画名称:animation_01、animation_02、animation_03。三个动画中的角色是在动画中的位置是重合的。
SpinePlayer 组件中的 viewport:
viewport: {
debugRender: true,
padTop: 0,
padLeft: 0,
padBottom: 0,
padRight: 0,
...props.layout,
},
Spine 容器设置了宽、高,应用不同 animation 时,容器大小不变。
当我不设置 layout 的 x、y、width、height 的时候,animation_03 是正常的,animation_01、animation_02 中角色的位置在视口中有偏移。
当我设置 layout 的 x、y、width、height 的时候,就一切正常了,三个动画的角色位置完全正常。
:layout="{
x: 0,
y: 0,
width: 2560,
height: 1754,
}"
而动画设计师表示,3个动画在编辑器中的大小位置是一样的,这是什么原因呢?
看起来确实是三个动画的坐标都是(0, 0),大小也一致。但是 视口自动行为到底指的是什么?
然后保持视口长宽比后被嵌入到Web Player的可用空间中.
这种自动视口机制可以通过Web Player的配置来定制. 如果没有给出视口配置, Web Player默认为上述的自动行为.
x和y属性指定视口的左下角在skeleton的世界坐标空间中的位置. width和height属性指定了视口的尺寸.
x, y 属性如果不指定,会怎么应用呢?为什么其中一个从(0, 0)开始(和设置layout一样),其中2个有偏移呢?