更新日期:2021 年 12 月 20 日。
usdzconvert
Xcode 13、12、11 中的命令
在macOS Monterey中,Big Sur和Catalina USDZ converter
拥有丰富的命令集,并且支持比之前版本更多的输入格式进行转换。但在使用之前,您需要下载USDZ Tools。并且不要忘记为 Python usdz 工具设置一个全局变量。以下是终端中新命令的外观:
usdzconvert ~/Desktop/file.gltf -diffuseColor albedo.png -metallic brass.jpg
- 在 macOS Monterey、Big Sur 和 Catalina 中,默认的命令 shell 是 ZSH。
创建外壳资源文件
如果您想使用USDPython
工具,您需要创建一个 Shell 资源文件.zshrc
。
change directory
为此,使用终端中的命令转到主页区域:
cd /Users/<UserName>
使用命令检查您是否在那里parent working directory
:
pwd
然后键入目录内容的ls
命令,listing
包括隐藏文件:
ls -a
现在您已准备好创建一个隐藏.zshrc
文件:
touch ~/.zshrc
使用以下命令打开此文件:
open ~/.zshrc
现在您可以将这些行添加到 zsh 资源文件中:
export PATH="/Users/yourUserName/usdpython/USD:$PATH"
export PATH="/Users/yourUserName/usdpython/usdzconvert:$PATH"
export PYTHONPATH="/Users/yourUserName/usdpython/USD/lib/python:$PYTHONPATH"
echo "Now I can use USDPython commands here."
保存并重新启动终端。
usdzconvert
是一个 Python 脚本,可将以下资产转换为usdz
:
- 对象
- gltf
- FBX
- 美国广播公司
- 美国农业部
- 美元兑美元
- 美元
如果您需要使用FBX
格式转换,您必须下载并安装FBX Python SDK。
然后在文件中再添加.zshrc
一行:
export PYTHONPATH="/Applications/Autodesk/FBXPythonSDK/2020.0.1/lib/Python27_ub:$PYTHONPATH"
保存.zshrc
文件并重新启动终端。
这是您可以在终端中看到的完整选项列表,键入usdzconvert -h
:
# DON'T USE usdzconvert 0.63 BECAUSE IT CAUSES ERRORS.
# USE usdzconvert 0.64
# or
# USE usdzconvert 0.62
outputFile Output .usd/usda/usdc/usdz files.
-h, --help Show this help message and exit.
-f <file> Read arguments from <file>
-v Verbose output.
-url <url> Add URL metadata
-copyright "copyright message" Add copyright metadata
-copytextures Copy texture files (for .usd/usda/usdc) workflows
-metersPerUnit value Set metersPerUnit attribute with float value
-loop Set animation loop flag to 1
-no-loop Set animation loop flag to 0
-m materialName Subsequent material arguments apply to this material.
-iOS12 Make output file compatible with iOS 12 frameworks
-texCoordSet name The name of the texture coordinates to use for current material.
-diffuseColor r,g,b Set diffuseColor to constant color r,g,b with values in the range [0 .. 1]
-diffuseColor <file> fr,fg,fb Use <file> as texture for diffuseColor.
fr,fg,fb: (optional) constant fallback color, with values in the range [0..1].
-normal x,y,z Set normal to constant value x,y,z in tangent space [(-1, -1, -1), (1, 1, 1)].
-normal <file> fx,fy,fz Use <file> as texture for normal.
fx,fy,fz: (optional) constant fallback value, with values in the range [-1..1].
-emissiveColor r,g,b Set emissiveColor to constant color r,g,b with values in the range [0..1]
-emissiveColor <file> fr,fg,fb Use <file> as texture for emissiveColor.
fr,fg,fb: (optional) constant fallback color, with values in the range [0..1].
-metallic c Set metallic to constant c, in the range [0..1]
-metallic ch <file> fc Use <file> as texture for metallic.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
-roughness c Set roughness to constant c, in the range [0..1]
-roughness ch <file> fc Use <file> as texture for roughness.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
-occlusion c Set occlusion to constant c, in the range [0..1]
-occlusion ch <file> fc Use <file> as texture for occlusion.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
-opacity c Set opacity to constant c, in the range [0..1]
-opacity ch <file> fc Use <file> as texture for opacity.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
-clearcoat c Set clearcoat to constant c, in the range [0..1]
-clearcoat ch <file> fc Use <file> as texture for clearcoat.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
-clearcoatRoughness c Set clearcoat roughness to constant c, in the range [0..1]
-clearcoatRoughness ch <file> fc Use <file> as texture for clearcoat roughness.
ch: (optional) texture color channel (r, g, b or a).
fc: (optional) fallback constant in the range [0..1]
或者,您可以使用Reality Converter应用程序 (GUI),而不是使用命令行转换工具 (CLI)。新的应用程序可以轻松地.usdz
在 Mac 上转换、查看和自定义对象。只需拖放常见的 3D 文件格式,例如.obj
、.gltf
和.usd
,即可查看转换.usdz
结果,使用您自己的纹理自定义材质属性,并编辑文件元数据。您甚至可以.usdz
使用内置 IBL 选项在各种照明和环境条件下预览对象。
USDZ Export
Reality Composer 中的命令
在Xcode 13/12的Reality Composer中,您可以直接从 Reality Composer 的 UI导出模型。为此,您只需在 RealityComposer –首选项菜单中激活 USDZ 导出。usdz
您还可以使用AR USD Schemas,当然还有Autodesk Maya 2022工作流程。
从 SceneKit 的场景创建 USDZ 文件
获取 USDZ 文件的另一个好方法是使用write(to:options:delegate:progressHandler:)实例方法从 SCNScene 创建它。
让我们看一下代码:
import ARKit
class ViewController: UIViewController {
@IBOutlet var sceneView: ARSCNView!
let scene = SCNScene(named: "art.scnassets/ship.scn")!
override func viewDidLoad() {
super.viewDidLoad()
sceneView.scene = scene
let path = FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask)[0]
.appendingPathComponent("model.usdz")
scene.write(to: path, options: nil,
delegate: nil, progressHandler: nil)
print(path)
}
}
xcrun usdz_converter
Xcode 10 中的命令
在macOS Mojave 10.14和Xcode 10 USDZ converter
中,参数和标志集略有不同。下面是旧命令在终端中的样子:
xcrun usdz_converter file.obj file.usdz -color_map color.jpg -ao_map ao.png
- 在 macOS Mojave 中,默认的命令 shell 是 BASH。
这是您可以在终端中看到的完整选项列表,键入xcrun usdz_converter -h
:
-g groupName [groupNames ...] Apply subsequent material properties to the named group(s).
-m materialName [materialNames ...] Apply subsequent material properties to the named material(s).
-h Display help.
-a Generate a .usda intermediate file. Default is .usdc.
-l Leave the intermediate .usd file in the source folder.
-v Verbose output.
-f filePath Read commands from a file.
-texCoordSet set The name of the texturemap coordinate set to use if multiple exist (no quotes).
-opacity o Floating point value 0.0...1.0
-color_default r g b a Floating point values 0.0...1.0
-normal_default r g b a Floating point values 0.0...1.0
-emissive_default r g b a Floating point values 0.0...1.0
-metallic_default r g b a Floating point values 0.0...1.0
-roughness_default r g b a Floating point values 0.0...1.0
-ao_default r g b a Floating point values 0.0...1.0
-color_map filePath
-normal_map filePath
-emissive_map filePath
-metallic_map filePath
-roughness_map filePath
-ao_map filePath