#godot #fbx
Вопрос:
привет, я пытаюсь перепаковать файл fbx в читаемый файл для движка Godot, и до сих пор мне это не удается:
func fbx_to_scn(node):
var spi = Spatial.new()
add_child(spi)
spi.name = node
node = get_node(node "/RootNode")
var ps
var mesh
for i in node.get_child_count():
if node.get_child(i).get_class() == "Skeleton":
ps = node.get_child(i)
elif node.get_child(i).get_class() == "MeshInstance":
mesh = node.get_child(i)
if not ps == null:
var new_sklet : Skeleton = Skeleton.new()
for i in ps.get_bone_count():
new_sklet.add_bone(ps.get_bone_name(i))
new_sklet.set_bone_rest(i,ps.get_bone_rest(i))
if ps.get_bone_parent(i) == -1:
continue
new_sklet.set_bone_parent(i,ps.get_bone_parent(i))
spi.add_child(new_sklet)
new_sklet.owner = spi
new_sklet.name = "Skeleton"
var mi = MeshInstance.new()
mi.name = "MeshInstance"
mi.mesh = mesh.mesh
spi.add_child(mi)
mi.owner = spi
if not ps == null:
mi.skeleton = "../Skeleton"
var pack = PackedScene.new()
pack.pack(spi)
if ResourceSaver.save("res://save_file/" spi.name ".scn",pack) == OK:
print("file saved")
else:
print("some thing went wrong")
все идет хорошо, и файл создается следующим образом
но буровая установка такая плохая
левая форма-файл fbx, а правая-файл scn. установка полностью перевернута, и она даже не такая же (были некоторые изменения).
Комментарии:
1. Есть ли причина, по которой вы не упаковываете узел напрямую? Правка: если упаковка узла напрямую не работает для вас, вы можете использовать
duplicate
узлы для создания копий.2. Я совершенно забыл использовать дубликат и протестировать этот метод и работать очень хорошо (если перепаковать фальсифицированный файл), но моя цель состоит в том, чтобы создать новую установку для файла, который не фальсифицирован (и внести некоторые изменения в установку), поэтому протестируйте этот метод и ту же проблему, всплывающее окно ее фальсифицировано, но неправильно