模型框
- 内置模型:0:小人,1:小树,2:小猪
- 外部模型支持
.glb格式3D模型
配置项
| 名称 | 类型 | 必填 | 说明 |
| 类型 | 文本 | true | 固定值:模型 表示这是一个模型框控件 |
| 名称 | 文本 | true | 窗口中唯一标识 |
| x | 整数 | false | 默认显示坐标x |
| y | 整数 | false | 默认显示坐标y |
| 宽度 | 整数 | false | 如果设置会固定模型框包围盒的宽度,默认值为0。 |
| 高度 | 整数 | false | 如果设置会固定模型框包围盒的高度,默认值为0。 |
| 模型 | 文本/整数 | false | 文本型:素材标识 整数型:0:小人,1:小树,2:小猪 |
| 动作 | 文本 | false | 默认播放的动作 |
| 颜色 | RGBA | false | 模型的颜色 |
| 亮度 | 小数 | false | 模型的亮度,默认值为0。越大越亮,越小越暗。取值范围:-1 - 1。 |
| 缩放 | 小数 | false | 模型整体缩放倍率 (1.0=原始大小) |
| 阴影效果 | 整数 | false | 0:无阴影, 1:圆形 , 2:实时投影 |
| 水平缩放 | 数值 | false | |
| 垂直缩放 | 数值 | false | |
| 水平角度 | 数值 | false | X轴的旋转角度 0-360 |
| 播放速度 | 小数 | false | 模型动作播放速度,默认值为1。越大播放速度越快,负数表示反向播放。 |
| 播放模式 | 整数 | false | 0:播放1次, 1:循环播放 , 2:往返循环播放 |
| 镜头距离 | 小数 | false | 设置摄像机距离 (默认 1.0=原始大小, >1 放大/<1 缩小) |
| 镜头角度 | 数值 | false | 设置摄像机角度 (度, 默认 ~26.565°=2:1等距, 45°=更俯, 90°=纯俯视) |
| 影子透明 | 小数 | false | 设置影子透明度 (0=完全透明/消失, 1=完全不透明, 默认 0.35) |
| 变换矩阵 | 整数 | false | 取值范围:0-5, 0:无变换, 1:X斜切, 2:Y斜切, 3:X拉伸, 4:Y拉伸, 5:等比拉伸 |
| 矩阵系数 | 数值 | false | 组件的矩阵系数。 |
| 遮罩 | 整数 | false | 0.无 1.定义遮罩镂空的形状,有像素的区域被镂空。 2.仅在镂空的区域显示。 3.仅在镂空之外的区域显示。 |
| 气泡提示 | 文本 | false | |
| 气泡皮肤 | 文本 | false | |
| 默认可视 | 逻辑 | false | 默认是否显示 |
| 附加 | table | false | 自定义变量 |
| 鼠标事件 | 逻辑 | false | 是否响应鼠标事件 默认:false |
| 系统事件 | table | false |
{
名称 = "模型框1",
类型 = "模型框",
x = 100,
y = 200,
模型 = 0,
},
属性
可视
- 类型:
逻辑 - 读写:
读写 - 说明:是否显示控件
父窗口
- 类型:
窗口对象 - 读写:
只读 - 说明:控件的父窗口对象
调试输出(文本框1.父窗口.名称)
x
- 类型:
整数 - 读写:
读写 - 说明:控件在窗口上的x坐标
y
- 类型:
整数 - 读写:
读写 - 说明:控件在窗口上的y坐标
次序
- 类型:
数值 - 读写:
读写 - 说明:动态改变控件的显示层级,值越大越先显示。
鼠标坐标
- 类型:
{x=,y=} - 读写:
只读 - 说明:鼠标指针在模型框上的相对坐标。
鼠标焦点
- 类型:
逻辑 - 读写:
只读 - 说明:鼠标是否在模型框上。
颜色
- 类型:
整数 - 读写:
读写 - 说明:模型的颜色
亮度
- 类型:
小数 - 读写:
读写 - 说明:模型的亮度,默认值为0。越大越亮,越小越暗。取值范围:-1 - 1。
阴影效果
- 类型:
整数 - 读写:
读写 - 说明:0:无阴影, 1:圆形 , 2:实时投影
缩放
- 类型:
小数 - 读写:
读写 - 说明:模型整体缩放倍率 (1.0=原始大小)
水平缩放
- 类型:
数值 - 读写:
读写 - 说明:动画在窗口上的水平缩放
垂直缩放
- 类型:
数值 - 读写:
读写 - 说明:控件在窗口上的垂直缩放
播放速度
- 类型:
小数 - 读写:
读写 - 说明:模型动作播放速度,默认值为1。越大播放速度越快,负数表示反向播放。
播放模式
- 类型:
整数 - 读写:
读写 - 说明:0:播放1次, 1:循环播放 , 2:往返循环播放。
播放状态
- 类型:
整数 - 读写:
只读 - 说明:0:已结束/已停止, 1:播放中 , 2:暂停中。
水平角度
- 类型:
数值 - 读写:
读写 - 说明:X轴的旋转角度 0-360
模型信息
- 类型:
table {} - 读写:
只读 - 说明:动画模型中的信息
| 名称 | 类型 | 说明 |
|---|---|---|
顶点 | 整数 | 模型中的顶点数量 |
三角形 | 整数 | 模型中的三角形数量 |
图元 | 整数 | 模型中的图元数量 每次渲染drawcall次数 |
动作 | table { {名称,时长}, {名称,时长}, ...} | 模型中的所有animation |
网格 | table {} | 模型中的所有mesh |
骨骼 | table { {名称,路径}, {名称,路径}, ...} | 模型中的所有bone |
调试输出(模型框1.模型信息)
骨骼信息
- 类型:
table {kv} - 读写:
只读 - 说明:将模型信息中的骨骼信息转换为键值对格式方便获取。
调试输出(模型框1.骨骼信息["OverHead Ref Ref"])
调试输出(模型框1.骨骼信息)
模型
- 类型:
文本/整数 - 读写:
读写 - 说明:改变模型框中模型,文本型:素材标识 整数型:
0:小人,1:小树,2:小猪。
模型框.模型 = math.random(0,2)
动作
- 类型:
文本 - 读写:
读写 - 说明:改变模型框中播放的动作。
模型框.播放模式 = 0
模型框.动作 = "attack"
透明度
- 类型:
小数 - 读写:
读写 - 说明:取值范围 0-1
变换矩阵
- 类型:
整数 - 读写:
读写 - 说明:
0:无变换,1:X斜切,2:Y斜切,3:X拉伸,4:Y拉伸,5:等比拉伸
矩阵系数
- 类型:
数值 - 读写:
读写 - 说明:矩阵系数。
附加
- 类型:
table - 读写:
读写 - 说明:读写控件的附加信息。
方法
| 网格染色 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 设置指定网格(Mesh)的染色。 | ||||||||||||
示例 |
| 网格可视 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 说明:设置或者取回网格(mesh)可见状态。 | ||||||||||||||||||
示例
注意事项 1、可视为nil时,取回当前网格的可视状态。 |
| 设置平行光 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 设置为方向光 (如太阳, 平行光线)。 | ||||||||||||
示例注意事项 1、平行光和点光源同时只存在一个。 |
| 设置点光源 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 设置为2D点光源 (如火把/灯泡, 不同位置的模型影子不同)。 | ||||||||||||||||
示例注意事项 1、平行光和点光源同时只存在一个。 |
| 取骨骼坐标 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 获取指定骨骼的屏幕坐标。 | |||||||||||||||||
示例
注意事项 1、x,y是相对于模型框坐标的偏移量。 |
系统事件
🔹 载入完成
模型框中的模型载入完成后触发
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框对象 |
示例
系统事件 = {
载入完成 = function (模型框)
调试输出(模型框.名称,模型框.模型信息)
end
}
🔹 焦点
控件焦点变化时触发, 需要启用 鼠标事件
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框对象 | |
| 焦点状态 | 逻辑 |
示例
系统事件 = {
焦点 = function(模型框,焦点状态)
if (焦点状态) then
模型框.颜色 = 0xFFFF00FF
模型框.亮度 = 0.5
else
模型框.颜色 = 0xFFFFFFFF
模型框.亮度 = 0
end
end,
}
🔹 鼠标按下
- 鼠标按下时触发,需要启用
鼠标事件。 - 返回
true可以阻止事件的继续传递。
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框对象 | |
| 键值 | 整数 | 0:左键 1:右键 2:中键。 |
| 功能键 | 整数 | 1:Ctrl 2:Shift 3:Alt 是否处于按下状态 |
示例
系统事件 = {
鼠标按下 = function(模型框,键值,功能键)
调试输出(模型框.名称)
return true
end,
}
🔹 鼠标弹起
- 鼠标弹起时触发,需要启用
鼠标事件。 - 返回
true可以阻止事件的继续传递。
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框 | |
| 键值 | 整数 | 0:左键 1:右键 2:中键。 |
| 功能键 | 整数 | 1:Ctrl 2:Shift 3:Alt 是否处于按下状态 |
示例
系统事件 = {
鼠标弹起 = function(模型框,键值,功能键)
end,
}
🔹 鼠标移动
- 鼠标在组件上移动时触发,需要启用
鼠标事件。 - 返回
true可以阻止事件的继续传递。
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框 | |
| 功能键 | 整数 | 1:Ctrl 2:Shift 3:Alt 是否处于按下状态 |
示例
系统事件 = {
鼠标移动 = function(模型框,功能键)
调试输出("鼠标移动",模型框.名称,模型框.鼠标坐标.x,模型框.鼠标坐标.y)
end,
}
🔹 鼠标滚轮
- 鼠标在组件上滚轮滚动时触发,需要启用
鼠标事件。 - 返回
true可以阻止事件的继续传递。
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框 | |
| 滚动状态 | 数值 | 滚轮滚动值。 |
示例
系统事件 = {
鼠标滚轮 = function(模型框,滚动状态)
调试输出("鼠标滚轮",滚动状态)
end,
}
🔹 点击
控件被点击时触发, 需要启用 鼠标事件
| 回调参数 | 类型 | 说明描述 |
| 模型框 | 模型框对象 |
示例
系统事件 = {
点击 = function(模型框)
引擎.创建缓动().to(模型框,{透明度=0},300)
end,
}
