cocos / cocos-engine

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
https://www.cocos.com/en/creator
Other
8.21k stars 1.94k forks source link

处理 fbx 文件的meta时 出现不一致的bug. #17681

Open finscn opened 3 weeks ago

finscn commented 3 weeks ago

Cocos Creator version

3.8.3

System information

macOS

Issue description

9月30日版 的3.8.4 也有这个问题. 同一个 fbx, 在两台不同的机器里打开 ( 两天机器用的同样版本的cocos , 同样版本的操作系统) , 会生成不同的 meta文件. 差异主要有两个 , 如下图:

一个在 subMetas 下会生成更多的 内容, 一个不会:

image

一个 isUuid = true , 一个 isUuid = false:

image

Relevant error log output

No response

Steps to reproduce

如上所述

Minimal reproduction project

No response

finscn commented 3 weeks ago

@minggo 两台电脑之前都是 macos 14, 后来都升级到了 macos 15 , 但无论怎么折腾, 都有这个问题.

另外 并不是所有 fbx 都有这个问题. 那些没有这个问题的fbx文件 都是主贴截图里的左边那种情况 ( 有更多的subMetas, 且 isUuid = true ). 但是这些 fbx 都是用统一的方式制作和生成的. 所有参数都一样.

minggo commented 3 weeks ago

那你能提供个有问题的 demo 吗?

finscn commented 3 weeks ago

那你能提供个有问题的 demo 吗?

怎么私聊? 不能把项目里的 fbx 发到公网

minggo commented 3 weeks ago

论坛私信?

finscn commented 2 weeks ago

论坛私信?

已发

knoxHuang commented 2 weeks ago

2 种情况出现的条件

  1. 单独导入 fbx 模型,没有贴图时:

只有 uuid 没有 img 的 url 是 "db://xxx",

  1. 反之如果先有贴图在导入 fbx 模型的话,就会出现 'db://xxxx'

初步怀疑是资源导入的时序问题,先导入了 fbx,解析不到贴图,用了默认的贴图

finscn commented 2 weeks ago

2 种情况出现的条件

  1. 单独导入 fbx 模型,没有贴图时:

只有 uuid 没有 img 的 url 是 "db://xxx",

  1. 反之如果先有贴图在导入 fbx 模型的话,就会出现 'db://xxxx'

初步怀疑是资源导入的时序问题,先导入了 fbx,解析不到贴图,用了默认的贴图

没看懂啥意思. 是我这边的操作顺序出错了? 我也没做什么操作啊. 就是把fbx文件 直接放到了项目里. 我怎么控制cocos导入fbx和贴图的时序呢

finscn commented 2 weeks ago

@knoxHuang 对了 我再补充个情况 就是 fbx的meta 有时候也会不一致, hasAlpha 的值 在有的机器上为true 有的 为false. 不知道是不是也是类似原因.

我之前提过 issue https://github.com/cocos/cocos-engine/issues/17322

knoxHuang commented 2 weeks ago

2 种情况出现的条件

  1. 单独导入 fbx 模型,没有贴图时:

只有 uuid 没有 img 的 url 是 "db://xxx",

  1. 反之如果先有贴图在导入 fbx 模型的话,就会出现 'db://xxxx'

初步怀疑是资源导入的时序问题,先导入了 fbx,解析不到贴图,用了默认的贴图

没看懂啥意思. 是我这边的操作顺序出错了? 我也没做什么操作啊. 就是把fbx文件 直接放到了项目里. 我怎么控制cocos导入fbx和贴图的时序呢

就是,需要先拖 fbx 的贴图到编辑器中,再导入 fbx 文件,这样导入 fbx 文件时,才能读取到 fbx 贴图的资源,否则他会创建 fbx 自带的默认贴图资源


这个时序问题我们可能要考虑一下如何处理

finscn commented 2 weeks ago

@knoxHuang 不仅仅是 fbx 文件. 我们项目里的 effect文件 也遇到了类似问题.

image

图里的那个 .json 有的机器 有的机器没有...