我们市长(BlockRise,基于Unity)中的小角色。每个建筑物都从Blender中以Python脚本的形式输出为FBX,门户都是分离的零件命名为PORTE_something,以便游戏可以对其进行动画:当没有人在场时,门关闭;当顾客走入时,门会在1.4秒内向内旋转约80°。 处理img f30cskdzqzwh1... 第一次我们连接它时,门旋转在建筑物的中心而不是门的轴。我们最初怀疑是Blender的导出问题。然而,并不是导出问题,FBX的转换轴是正确的。我们有一个AssetPostprocessor,它会将每个零件的转换信息记录到其顶点中,以便在放置建筑物时,边界是精确的。我们也将其应用于门。结果是: - postprocessor现在跳过任何名称为PORTE_(以及一个其他需要保留转换轴的前缀)的零件 - 在运行时,如果门的原点不是零并且位于阈值的2.5米范围内,我们就信任它作为门的轴 - 如果不是,我们会从网格中找出门的轴:双门时外部边缘,门被建模为打开时的街道侧边缘 - anything低于30厘米的门都不会进行动画(一家店的“门”实际上是一把门把手和一条框架) - 后续修复:只有当店铺实际上是开放状态时,门才会打开。之前,夜间行人经过时会使一家店的门开启 image:左边的餐厅和酒吧是关闭状态,右边的餐厅和酒吧是开放状态。(黄色边框是业主的界限,之前会渗透到窗户中,现在已经修复了。)因此,转换轴从来都不是问题,我们的烘焙才是。有任何人导入大量生成的建筑的人吗?您是否将转换信息记录到网格中以获得精确的边界,还是使用其他方式计算边界?跳过列表和几何fallback方案有效,但每次出现一个奇怪的门时,它就感觉很脆弱。最新的门位于45°的切角处。