我有一个用于3D对象的OBJ文件,我正在使用“导入场景格式资产”将其转换为SFA,但这样做总是给我错误提示 无法在磁盘上找到'sampledata / models / plc.mtl'
您会看到红色框。
其中一个可以看到gradle已为sceneform.asset创建了背景代码 但由于缺少mtl,它无法继续前进。
另外, 在Google的默认arcore项目中,SFB文件位于原始文件夹中,但正在资产文件夹中创建。
请参见下图。
有人可以帮我这个忙吗?我是ARCore开发的新手。
答案 0 :(得分:1)
请遵循此步骤,如有任何问题,请告诉我
您需要 .obj 和 .mtl 。使用示例数据目录在Android中创建一个文件夹(以避免使它成为项目的一部分)
在此文件夹中添加.obj和.mtl
转到Android 首选项> 插件,然后搜索“ Google Sceneform Tools(Beta)”
在.obj上单击鼠标右键,可以选择“导入Sceneform资产” 这将创建已经准备使用的.sfb和.sfa文件。
在您的 App Gradle 中,您应该找到类似以下的新行:
sceneform.asset('sampledata/NAME_OF_FILE.obj',
'default',
'sampledata/NAME_OF_FILE.sfa',
'src/main/assets/NAME_OF_FILEl')
答案 1 :(得分:0)
您应该在某个地方有一个plc.mtl。该文件定义了OBJ文件中使用的材料。只需将其复制到您的模型文件夹中,一切就可以正常工作。通常,它与OBJ文件一起提供,因此请检查从中获取OBJ的源。
答案 2 :(得分:0)
我遇到同样的错误,我通过在以下行中添加此行来解决
build.gradle(:app)
sceneform.asset('path of obj', 'default','path for sfa','path for sfb')
在我的情况下是
sceneform.asset('sampledata/Hamburger.obj', 'default','sampledata/Hamburger.sfa','src/main/res/raw/hamburger')
并确保是否将输出放入 res 目录中,请从文件名中删除大写字母。 希望对您有用。