# 序列帧
# Bind
客户端
method in mod.client.component.frameAniEntityBindComp.FrameAniEntityBindComp
描述
绑定entity
参数
参数名 数据类型说明 bindEntityId str 绑定的entity的ID offset tuple(float,float,float) 绑定的偏移量 rot tuple(float,float,float) 绑定的旋转角度 返回值
数据类型说明 bool 设置是否成功 示例
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 设置是否成功 示例
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函数才会播放,如果播放非本维度创建的序列帧,会同时修改该序列帧的创建维度为当前维度
示例
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配置生成序列帧后还需要设置位置或绑定,以及进行播放。
示例
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) 返回序列帧特效的世界坐标位置。 示例
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) 返回序列帧特效的旋转角度。 示例
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) 返回序列帧特效的缩放值。 示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniTrans(frameEntityId)
comp.GetScale()
# Pause
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
描述
暂停播放,序列帧定格在当前时刻,再次调用Play时继续播放
参数
无
返回值
数据类型说明 bool 设置是否成功 示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
comp.Pause()
# Play
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
描述
播放序列帧
参数
无
返回值
数据类型说明 bool 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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组件
示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 示例
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 设置是否成功 备注
- 使用点滤波的图像通常边缘清晰、可能会有较强烈的锯齿感;使用双线性插值的图像通常比较平滑、可能会使图像一定程度上变得模糊
示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
# 设置该序列帧使用点滤波
comp.SetUsePointFiltering(True)
# Stop
客户端
method in mod.client.component.frameAniControlComp.FrameAniControlComp
描述
停止序列帧(不是暂停)
参数
无
返回值
数据类型说明 bool 设置是否成功 示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateFrameAniControl(frameEntityId)
comp.Stop()