模型转换 USDZ 的 N 种方法,ios 端测试 USDZ 的 AR 体验

3,032 阅读3分钟

原文发表于 github

来源

在浏览 awwwards 时发现了 Gucci 的新网页,里面有不用 mark 码的 AR 体验,所以根据同事的指引,发现了苹果支持了在 ios12 及以上手机查看模型并支持 AR,所以搜索汇总了模型转换USDZ的几种方法,并在iphone实际测试效果,确实挺好玩的,但应该是不支持安卓的。

将模型转USDZ的多种方式实测

保存后的安装包
链接: https://pan.baidu.com/s/143SAcI7BkUqCWSucN4mlCQ 提取码: wfot

方式一,使用 Apple 提供的 Python 工具包转换

tips: 这种方式导出的usdz好像有问题(转换后的 USDZ,动画的方向反了,并且导出的模型比例也有问题,转换的非常小),也可能是我少用了某些参数的问题。

1. 执行安装命令

xcode-select --instal 时候提示:xcode-select: error: command line tools are already installed, use "Software Update" to install updates,使用 Software Update 也无效。搜索了一下执行以下命令ok了

    softwareupdate --list

2. 安装 Command Line Tools for Xcode

执行以下命令会出现弹窗,询问是否要安装命令行工具,一直下一步就行,最后提示软件已经安装。

    xcode-select --install     

3. 下载 Apple USDPython 0.64 转换工具

下载地址需要登陆苹果账号,签协议成为苹果开发者。双击 pkg 安装,完成后在 usdpython 文件夹下双击打开 USD.command

4. 用法

在 USD.command 终端内执行。

    usdzconvert someobject.obj

5. 创建环境变量

5.1 首先移动到根目录下
    cd /Users/<UserName>
5.2 使用 parent working directory 检查目录是否正确
    pwd
5.3 查看目录内容,包括隐藏文件
    ls -a
5.4 检查是否有 .zshrc 文件,如果有就打开 .open ~/.zshrc,如果没有就创建它 touch ~/.zshrc,然后增加环境变量,就能全局使用了。
    # usdpython
    export PATH="/Applications/usdpython/USD:$PATH"
    export PATH="/Applications/usdpython/usdzconvert:$PATH"
    export PYTHONPATH="/Applications/usdpython/USD/lib/python:$PYTHONPATH"

    echo "Now I can use USDPython commands here."

    export PYTHONPATH="/Applications/Autodesk/FBXPythonSDK/2020.0.1/lib/Python27_ub:$PYTHONPATH"
    # usdpython end 
5.5 测试

保存后,重启终端,检测是否成功

    usdzconvert -h

6. FBX(可选)

转换 FBX 需要安装FBX Python SDK)下载FBX Python SDK


方式二,使用 Reality Composer

唯一的不好就是,还是没有解决我的问题(转换后的 USDZ,动画的方向反了,但解决了比例的问题),并且在预览中能发现就是转换的问题。也是可以查看任何转换成功的 USDZ。

1. 安装

下载 Reality Composer 官网安装包

2. 使用

安装后,将模型拖拽进去,就能直接转换成 USDZ,并且还能预览!!使用体验大大升级。导出的文件直接就是 USDZ 的格式。


方式三,使用 Kivicube AR 模型编辑器

在 Reality Composer 中查看没问题,但在手机端显示的时候还是有比例问题,但动画是正常播放的。

1. 安装

需要到官网关注公众号获取下载编辑器软件。

2. 使用

安装后,直接拖拽模型文件进去查看,选择 usdz 格式导出,在 Reality Composer 中查看实际样子。


方法四,在线转换


使用 model-viewer 创建 USDZ 可查看页面(ios)

模型是在 model-viewer 官网下载的,然后用上一步转换方法转成的 USDZ。启动一个静态服务器就可以在手机上体验了。比如 http-server
增加了动画播放、ar等相关参数。

    <!doctype html>
    <html>

    <head>
        <title>3D Test</title>
        <style>
            .model {
                width: 100%;
                height: 600px;
            }
        </style>
    </head>

    <body>
        <div id="model">
            <model-viewer class="model" autoplay src="test.glb" alt="A 3D model of a robot" auto-rotate=""
                camera-controls="" background-color="#455A64" ar ios-src="test.usdz"></model-viewer>
        </div>

        <!-- Loads model-viewer for modern browsers -->
        <script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.js"></script>
        <!-- Loads model-viewer for older browsers -->
        <script nomodule src="https://unpkg.com/@google/model-viewer/dist/model-viewer-legacy.js"></script>

    </body>

    </html>

参考文档: