A-frame 的 gltf 支援


(Yuan Chao) #1

想知道 a-frame 的 gltf 有哪些限制可以從那邊查?
自己有試過一些簡單的cube之類是可以。
最近有拿到一個從 unity 轉出來的 model 在 sketchfab:

https :// sketchfab.com /models/da19c1065baa4655a74ef220e837b9a9
這個在 a-frame 就似乎沒有反應。不太確定是自己哪裡有寫錯,
或是其實是 a-frame 支援度的問題?


(BobChao) #2

有可能是因為 glTF 2.0 還不支援的關係,可以考慮用 A-Frame extras 的 「gltf-model-next」試試看 https://github.com/donmccurdy/aframe-extras/tree/master/src/loaders

glTF 2.0 會在 A-frame 0.7.0 起支援

也有可能只是因為太慢…
無論如何開一下 web console 看看或許 three.js 有發現啥錯誤

試成功的話請分享一下心得唷


(Yuan Chao) #3

問題不少… 除了js裡面的rawgit得加上cdn之外,這個 require 我就不懂了…

ReferenceError: require is not defined


(BobChao) #4

剛剛去丟進 https://gltf-viewer.donmccurdy.com/ 可以看… three.js 可以用按理說就能讀進 A-Frame,我也找時間研究一下好了…


(BobChao) #5

https://cerulean-freon.glitch.me/

我用了目前 aframe master 來放放看,也有問題,不過看起來是解析 glTF 2.0 時發生了什麼狀況 – 不確定是誰的問題就是。但總之這樣好像方便點,你可以先參考看看要不要繼續追問題在哪。


(Yuan Chao) #6

就 “require” 跟 “model” 都未定義,不知道是缺了什麼 lib 之類的?(那個 gltf model loader 居然用相對路徑拉 lib,我也是只能呵呵…)


(BobChao) #7

https://cerulean-freon.glitch.me/

我拿 glTF 2.0 的範例 model 來載入是 ok 的… 不知道那邊缺什麼,我看到的 error 都是寫 JSON parsing error


(BobChao) #8

試著用 Validator 去跑,很多 Unity 轉出來的 glTF 2.0 都有 Error… :confused: 但不知道這是否為主因就是(畢竟有其他的線上 Viewer 可以容錯)

http://github.khronos.org/glTF-Validator/


(Kevin Yeh) #9

試試看:

    <html>
      <head>
        <script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
      </head>
      <body>
        <a-scene>
            <a-assets>
                <a-asset-item id="belleii" src="belleii_vr/scene.gltf"/>
            </a-assets>
            <a-entity gltf-model="#belleii" position="0 1 -2" scale="0.1 0.1 0.1"></a-entity>
        </a-scene>
      </body>
    </html>

或是:

<html>
  <head>
    <script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
        <a-entity gltf-model="src: url(belleii_vr/scene.gltf);" position="0 1 -2" scale="0.1 0.1 0.1"></a-entity>
    </a-scene>
  </body>
</html>

如果使用 aframe-extras載入 glTF2的模型,可以這樣做:

<a-entity gltf-model-next="src: url(model_path);"/>

之前在aframe 0.6.1 測試載入 glTF 2.0 的模型需要使用 aframe-extras,現在只要 aframe 0.7.0 就可以了。


(Yuan Chao) #10

感謝, aframe 0.7 看起來方便很多。
然後我知道問題出在哪裡了… 這個從 sketchfab 載下來的,其實是個「偽」gltf,後面還跟著一個 ~270MB 的 bin 檔。先前我以為兩個是等價的就沒放上 server,也沒注意到 console 其實有顯示載不到檔案。 XD

Now it’s sort of working!