MML是一种用于描述基于HTML的3D多用户交互式元对象和经验的标记语言。
访问https://mml.io/以开始使用MML。
请查看https://github.com/mml-io/mml-starter-project,开始自己运行MML文档。
请查看https://github.com/mml-io/mml-playground,以找到一个3D Web体验的示例,其中可能包括MML文档。
“ MML堆栈”是两个主要零件的组合,通常合并在一起:
MML(语言) -3D HTML元素和用于描述3D对象和体验的属性
网络DOM(网络) - 用于在服务器上运行MML/HTML文档的库和网络协议,以便多用户可以在多用户模式下与它们进行交互。
例如
<M-Cube ID =“ my-cube” color =“ red”> </m-cube> <script>
constuce = document.getElementById('my-cube');
cube.AddeventListener('click',()=> {cube.setAttribute('color','blue');
}); </script>html和javaScript的形式(文档对象模型)为描述和突变元素的层次结构提供了现有的基础。 MML使用此基础具有新的元素和属性来允许描述3D概念。
在普通用例中,MML文档在服务器上运行,并由多个用户观察并与之交互。
通过使用名为“网络DOM”的库(明确构建的MML构建)在服务器上运行MML文档来实现此功能。
支持此多用户模式所需的服务器和网络组件独立于HTML的MML添加(可以与常规2D HTML一起使用)。
然后,可以使用网络的DOM服务器和MML客户端来允许多个用户同时与对象的同一实例进行交互,并将这些对象带入游戏引擎和Web虚拟世界体验。
熟悉度:MML基于HTML,这是网络作者文档的最常见方法。这使其适用于广泛的创作者。
生态系统:HTML生态系统非常广泛,并且由于MML基于HTML,因此创建者可以利用这一现有的库,框架和学习资源的生态系统。
可移植性:MML文档可以在任何现代的Web浏览器中运行,使其易于共享和查看。
合成性:MML文档可以由在不同服务器上运行的多个文档组成,从而可以创建复杂的虚拟世界对象,而无需在单个服务器上提供所有计算功率和技术功能。
MML是一组HTML元素和属性,可用于描述3D对象和体验。
这些元素和属性无需网络即可使用。但是,当在服务器上运行包括MML标签的HTML文档并通过WebSocket曝光的多个用户可以同时与文档的同一实例进行交互。
./packages/mml -web -Web Triph.js MML库
./packages/mml-web-client-网络三。
./packages/mml-web-runner-Web Runner(用于在Web浏览器中运行MML文档而不是服务器)
./packages/schema- XML模式定义语言(XSD)中的MML模式
./packages/schema-validator-用于使用MML模式验证MML文档的软件包
MML基于一组称为“网络DOM”的库(明确构建的MML)。
支持多用户模式所需的服务器和网络组件独立于HTML的MML添加(可以与常规2D HTML一起使用)。
网络DOM
./packages/networked-dom-web-网络网络DOM库
./packages/networked-dom-web-client-网络网络dom客户端
。
。
./packages/observable-dom-common-可观察的dom common
./packages/observable-dom-可观察的DOM(JSDOR执行)库
./packages/networked-dom-document-网络DOM文档库
此存储库包含MML的库和架构定义。使用此存储库的最可能方法是将其作为其他项目的库。
克隆仓库
npm install
npm run iterate构建并开始从来源逐步构建包装伪像
服务器应启动以示例:
http:// localhost:7070 -MML示例服务器
http:// localhost:7071-网络示例服务器
要在另一个项目中使用此存储库中的任何库,您可以使用npm link使这些依赖关系可连接到其他NPM项目。
npm run link-all运行所有可能出版的软件包中的npm link ,以允许使用作为本地依赖关系来开发。它还将打印命令以链接依赖项。
下图显示了在Web浏览器中使用MML文档的网络浏览器中使用的MML系统的高级体系结构。
图TD
子图网络服务器
网络dom-server [网络DOM服务器]
网络模拟文件[网络DOM文档]
jsdom [jsdom]
Websocket [Websocket处理程序]
网络dom-server->网络dom文档
网络dom文档 - > jsdom
结尾
mml-source [“ MML源代码(HTML)”]
MML-source->网络模拟文档
子图Web浏览器
Web-Browser [Web浏览器]
子图“ 3D网络体验”
三JS-SCENE [TRIX.JS场景]
子图网络dom客户端
网络dom-client [网络DOM客户端]
DOM [“ DOM(HTML)”]
网络dom-client-> dom
结尾
子图MML客户库库
Web-browser-mml-client [mml remotendocument实例]
mml-three-js [mml three.js]
mml-three-js-事件 - > web-browser-mml-client
Web-browser-mml-client-> mml-three-js
结尾
dom-由 - > mml-three-js渲染
mml-three-js-组成 - > - > 3-JS-SCENE
结尾
结尾
网络dom-client-> ws-addr
WS-ADDR-> WebSocket
ws-addr [“ ws:// ...”]
websocket->网络服务器服务器
Web-Browser-> Web-browser-MML-Client
Web-browser-mml-client->网络dom-client 加载中