使用MML(元宇宙标记语言)为Otherside元宇宙及其他兼容环境构建3D场景与交互体验。适用于...
MML( Metaverse Markup Language).是一项面向实际任务的技能,主要用于Full 编译的参考文献: /home/ubuntu/.ope是一项面向实际任务的技能,主要用于它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
完整编译版参考文档:
/home/ubuntu/.openclaw/workspace/research/mml-reference.md
来源:mml.io + DashBODK Studio(dashbodk.vercel.app/docs)。涵盖所有元素、属性、事件及碰撞模式。
MML 是一种类 HTML 的标记语言,用于构建 3D 场景。文档通过 WebSocket 提供服务,并由客户端(Web 端基于 Three.js 或 Unreal Engine)进行渲染。MML 支持通过内联 标签执行脚本(使用标准 DOM API)。
x y z rx ry rz sx sy sz visible id classcollision-interval(毫秒),即可接收 collisionstart、collisionmove 和 collisionend 事件 标签进行标准 DOM 操作,如 document.getElementById()、addEventListener()、setAttribute() 等| 元素 | 用途 | 关键属性 |
|---|---|---|
m-group |
容器,对其子元素统一应用变换 | (仅支持变换相关属性) |
m-cube |
3D 立方体 | width height depth color opacity |
m-sphere |
3D 球体 | radius color opacity |
m-cylinder |
3D 圆柱体 | radius height color opacity |
m-plane |
平面表面 | width height color opacity |
m-model |
加载 3D 模型(支持 GLTF/OBJ/FBX) | src anim-src anim-loop anim-enabled start-time pause-time |
m-character |
3D 角色(可嵌套 m-model 子元素组合使用) |
src anim-src anim-loop anim-enabled start-time pause-time |
m-light |
点光源或聚光灯 | type intensity distance angle enabled cast-shadows color |
m-image |
在 3D 空间中显示图像 | src width height emissive opacity |
m-video |
在 3D 空间中播放视频(支持 WHEP 流式传输) | src width height emissive loop enabled volume start-time pause-time |
m-audio |
空间音频 | src loop loop-duration enabled volume cone-angle cone-falloff-angle start-time pause-time |
m-label |
贴于平面上的文字 | content width height font-size font-color padding alignment color emissive |
m-frame |
嵌入另一个 MML 文档 | src min-x max-x min-y max-y min-z max-z load-range unload-range |
m-link |
可点击链接(无视觉表现) | href target |
m-prompt |
点击后触发用户文本输入 | message placeholder prefill onprompt |
m-interaction |
在空间某一点定义交互行为 | range in-focus line-of-sight priority prompt oninteract |
m-position-probe |
追踪用户位置 | range interval onpositionenter onpositionmove onpositionleave |
m-chat-probe |
接收聊天消息 | range onchat |
m-attr-anim |
关键帧动画(与文档时间同步) | attr start end start-time pause-time duration loop easing ping-pong ping-pong-delay |
m-attr-lerp |
属性平滑过渡 | attr duration easing |
m-frame 组合多个文档适用于 m-attr-anim 和 m-attr-lerp:
easeInQuad、easeOutQuad、easeInOutQuad、easeInCubic、easeOutCubic、easeInOutCubic、easeInQuart、easeOutQuart、easeInOutQuart、easeInQuint、easeOutQuint、easeInOutQuint、easeInSine、easeOutSine、easeInOutSine、easeInExpo、easeOutExpo、easeInOutExpo、easeInCirc、easeOutCirc、easeInOutCirc、easeInElastic、easeOutElastic、easeInOutElastic、easeInBack、easeOutBack、easeInOutBack、easeInBounce、easeOutBounce、easeInOutBounce
若省略 easing 属性,则默认使用线性插值。
| 事件 | 触发源 | 关键属性 |
|---|---|---|
click |
任意可点击元素 | detail.connectionId、detail.position |
collisionstart |
设置了 collision-interval 的元素 |
detail.connectionId、detail.position |
collisionmove |
设置了 collision-interval 的元素 |
detail.connectionId、detail.position |
collisionend |
设置了 collision-interval 的元素 |
detail.connectionId |
positionenter |
m-position-probe |
detail.connectionId、detail.position、detail.rotation |
positionmove |
m-position-probe |
detail.connectionId、detail.position、detail.rotation |
positionleave |
m-position-probe |
detail.connectionId |
chat |
m-chat-probe |
detail.message、detail.connectionId |
interact |
m-interaction |
detail.connectionId |
prompt |
m-prompt |
detail.value、detail.connectionId |
connected / disconnected |
文档级事件 | detail.connectionId |
大多数元素同时支持 Web 和 Unreal 平台。例外情况如下:
m-link:仅 Web 支持m-attr-lerp:仅 Web 支持m-frame 的边界控制(min-x/max-x 等)与 load-range:仅 Web 支持socket 属性:仅 Web 支持各元素详细属性列表,请参阅 references/elements.md。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.6万人学习
共89课时 | 133.2万人学习
共49课时 | 82.1万人学习
最新文章