--- 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) ``` ## SetGlobal 客户端 method in mod.client.component.frameAniControlComp.FrameAniControlComp - 描述 设置序列帧是否是全局的,默认为否 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | isGlobal | bool | True为全局,False为非全局 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 备注 - 全局时,不会因摄像机的视野范围而被裁剪 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId) comp.SetGlobal(True) ``` ## 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() ```