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 載入中