---
sidebarDepth: 1
---
# 序列帧
## Bind
客户端
method in mod.client.component.frameAniEntityBindComp.FrameAniEntityBindComp
- 描述
绑定entity
- 参数
| 参数名 |
数据类型
| 说明 |
| :--- | :--- | :--- |
| bindEntityId | str | 绑定的entity的ID |
| offset | tuple(float,float,float) | 绑定的偏移量 |
| rot | tuple(float,float,float) | 绑定的旋转角度 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniEntityBind(frameEntityId)
comp.Bind(entityId, (0, 1, 0), (0, 0, 0))
```
method in mod.client.component.frameAniSkeletonBindComp.FrameAniSkeletonBindComp
- 描述
绑定骨骼模型
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| modelId | int | 绑定的骨骼模型的ID(见model组件的GetModelId) |
| boneName | str | 绑定具体骨骼的名称 |
| offset | tuple(float,float,float) | 绑定的偏移量 |
| rot | tuple(float,float,float) | 绑定的旋转角度 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniSkeletonBind(frameEntityId)
comp.Bind(modelId, "root", (0, 1, 0), (0, 0, 0))
```
## CreateEngineSfx
客户端
method in mod.client.system.clientSystem.ClientSystem
- 描述
创建序列帧特效
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| path | str | 特效资源路径,不用后缀名 |
| pos | tuple(float,float,float) | 创建位置,可选,没传则可以创建完用frameAniTrans组件设置 |
| rot | tuple(float,float,float) | 角度,可选,没传则可以创建完用frameAniTrans组件设置 |
| scale | tuple(float,float,float) | 缩放系数,可选,没传则可以创建完用frameAniTrans组件设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| int或None | frameEntityId或者None |
- 备注
- 创建序列帧后,可以用返回的frameEntityId创建序列帧分类中的相关组件,设置所需属性,以实现各种表现效果
- 切换维度后会自动隐藏非本维度创建的而且没有绑定实体的序列帧, 回到该维度后会自动重新显示
- 需要注意,序列帧创建之后需要调用frameAniControl组件的play函数才会播放,如果播放非本维度创建的序列帧,会同时修改该序列帧的创建维度为当前维度
- 示例
```python
import mod.client.extraClientApi as clientApi
class MyClientSystem(ClientSystem):
# 创建
def createSfx(self):
frameEntityId = self.CreateEngineSfx("textures/sfxs/snow_3")
frameAniTransComp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
frameAniTransComp.SetPos((10,10,10))
frameAniTransComp.SetRot((0,0,0))
frameAniTransComp.SetScale((1,1,1))
frameAniControlComp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
frameAniControlComp.Play()
# 删除
def removeSfx(self, frameEntityId):
self.DestroyEntity(frameEntityId)
```
## CreateEngineSfxFromEditor
客户端
method in mod.client.system.clientSystem.ClientSystem
- 描述
指使用资源包中effects/xxx.json,按照编辑器中编辑好的参数创建序列帧。支持环状序列帧
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| path | str | 特效配置路径,需要为"effects/xxx.json","xxx"为编辑器创建序列帧时填写的名称 |
| pos | tuple(float,float,float) | 创建位置,可选,没传则可以创建完用frameAniTrans组件设置,一般需要设置播放的位置 |
| rot | tuple(float,float,float) | 角度,可选,没传则可以创建完用frameAniTrans组件设置 |
| scale | tuple(float,float,float) | 缩放系数,可选,没传则可以创建完用frameAniTrans组件设置 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| int或None | frameEntityId或者None |
- 备注
- 创建序列帧后,可以用返回的frameEntityId创建序列帧分类中的相关组件,设置所需属性,以实现各种表现效果
- 需要注意,序列帧创建之后需要调用frameAniControl组件的play函数才会播放
- 根据editor配置生成序列帧后还需要设置位置或绑定,以及进行播放。
- 示例
```python
import mod.client.extraClientApi as clientApi
class MyClientSystem(ClientSystem):
# 创建
def createSfxFromEditor(self):
frameEntityId = self.CreateEngineSfxFromEditor("effects/mySfx.json")
frameAniTransComp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
frameAniTransComp.SetPos((10,10,10))
frameAniTransComp.SetRot((0,0,0))
frameAniTransComp.SetScale((1,1,1))
frameAniControlComp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
frameAniControlComp.Play()
# 删除
def removeSfx(self, frameEntityId):
self.DestroyEntity(frameEntityId)
```
## GetPos
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
获取序列帧特效的位置
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| tuple(float,float,float) | 返回序列帧特效的世界坐标位置。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
comp.GetPos()
```
## GetRot
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
获取序列帧特效的旋转角度
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| tuple(float,float,float) | 返回序列帧特效的旋转角度。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
comp.GetRot()
```
## GetScale
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
获取序列帧特效的缩放值
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| tuple(float,float,float) | 返回序列帧特效的缩放值。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
comp.GetScale()
```
## Pause
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
暂停播放,序列帧定格在当前时刻,再次调用Play时继续播放
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
comp.Pause()
```
## Play
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
播放序列帧
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
comp.Play()
```
## SetDeepTest
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧是否透视,默认为否
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| deepTest | bool | False表示透视,则被物体/方块阻挡时仍然能看到序列帧 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置为透视
comp.SetDeepTest(False)
```
## SetFaceCamera
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧是否始终朝向摄像机,默认为是
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| face | bool | True表示朝摄像机 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置为不始终朝摄像机
comp.SetFaceCamera(False)
```
## SetFadeDistance
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧开始自动调整透明度的距离。序列帧与摄像机之间的距离小于该值时会自动调整序列帧的透明度,距离摄像机越近,序列帧越透明
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| fadeDistance | float | 自动调整透明度的距离,应为正数,负数将视作零来处理 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置该序列帧在与相机距离小于3时会自动调整透明度
comp.SetFadeDistance(3)
```
## SetLayer
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧渲染层级,默认层级为1,当层级不为1时表示该特效开启特效分层渲染功能。特效(粒子和帧动画)分层渲染时,层级越高渲染越靠后,层级大的会遮挡层级低的,且同一层级的特效会根据特效的相对位置产生正确的相互遮挡关系。
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| layer | int | 粒子渲染层级,总共包含0-15的层级。 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 备注
- 该接口只针对序列帧进行设置,粒子特效请使用particleControl组件
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置为渲染层级为2
comp.SetLayer(2)
```
## SetLoop
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧是否循环播放,默认为否
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| loop | bool | True表示循环播放 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置为循环播放
comp.SetLoop(True)
```
## SetMixColor
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧混合颜色
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| color | tuple(float,float,float,float) | 颜色的RGBA值,范围0-1 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置颜色为红色半透明
color = (1, 0, 0, 0.5)
comp.SetMixColor(color)
```
## SetPos
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
设置序列帧的位置
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| pos | tuple(float,float,float) | 世界坐标 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
comp.SetPos((0, 5, 0))
```
## SetRot
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
设置序列帧的旋转
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| rot | tuple(float,float,float) | 按顺序绕局部坐标系的+x,-y,+z轴旋转的角度 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
# 绕y轴旋转90度,然后绕z轴旋转90度
comp.SetRot((0, 90, 90))
```
## SetRotUseZXY
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
设置序列帧的旋转,旋转顺序按照绕z,x,y轴旋转
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| rot | tuple(float,float,float) | 绕局部坐标系的+z,+x,+y轴旋转的角度,旋转顺序按照绕z,x,y轴旋转。 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
# 绕z轴旋转90度,然后绕y轴旋转90度
comp.SetRotUseZXY((0, 90, 90))
```
## SetScale
客户端
method in mod.client.component.frameAniTransComp.FrameAniTransComp
- 描述
设置序列帧的缩放
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| scale | tuple(float,float,float) | 对于平面序列帧,第一个参数为贴图横向上的缩放,第二个参数为纵向上的缩放,第三个参数无用。对于环状序列帧,为三个坐标轴上的缩放 |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
# 横向拉伸为2倍,纵向不变
comp.SetScale((2, 1, 1))
```
## SetUsePointFiltering
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
设置序列帧是否使用点滤波
- 参数
| 参数名 | 数据类型
| 说明 |
| :--- | :--- | :--- |
| use | bool | True为使用点滤波,False为使用双线性插值(默认使用) |
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 备注
- 使用点滤波的图像通常边缘清晰、可能会有较强烈的锯齿感;使用双线性插值的图像通常比较平滑、可能会使图像一定程度上变得模糊
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置该序列帧使用点滤波
comp.SetUsePointFiltering(True)
```
## Stop
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
- 描述
停止序列帧(不是暂停)
- 参数
无
- 返回值
| 数据类型
| 说明 |
| :--- | :--- |
| bool | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
comp.Stop()
```