BlueRoseNote/06-DCC/Blender/转换NinjaRipper Blender Scene To FBX.md

1.9 KiB
Raw Permalink Blame History

使用方法使用Blender打开NinjaRipper截取的文件并保存成blend文件后执行该脚本。注意运行完之后需要手动导出fbx。

import bpy

def convert_image_tga(sourceImagePath):
    image = bpy.data.images.load(sourceImagePath)
    image.file_format = "TARGA"
    image.save_render(sourceImagePath.replace(".dds",".tga"))

# Unpack
blendPath=bpy.data.filepath
fbxPath=blendPath.replace(".blend",".fbx")
print(fbxPath)

bpy.ops.file.unpack_all()
bpy.ops.wm.save_as_mainfile()

for i in bpy.data.images:
    if i.filepath == '':
        continue

    currentFilePath=bpy.path.abspath(i.filepath)
    print(currentFilePath)
    convert_image_tga(currentFilePath)
    i.filepath = i.filepath.replace('.dds', '.tga')

# Save Blender Project
bpy.ops.wm.save_as_mainfile()
# Export FBX
# bpy.ops.export_scene.fbx(fbxPath)

贴图格式转换


#dds 转 jpg ------
import bpy

for i in bpy.data.images:
    i.filepath = i.filepath.replace('.dds', '.jpg')


#dds 转 png ------
import bpy

for i in bpy.data.images:
    i.filepath = i.filepath.replace('.dds', '.png')

#dds 自动转 tga 并关联 fbx
import bpy

def convert_image_tga(sourceImagePath):
    image = bpy.data.images.load(sourceImagePath)
    image.file_format = "TARGA"
    image.save_render(sourceImagePath.replace(".dds",".tga"))

# Pack
bpy.ops.file.pack_all()
# Unpack
blendPath=bpy.data.filepath
fbxPath=blendPath.replace(".blend",".fbx")
print(fbxPath)
bpy.ops.file.unpack_all()
bpy.ops.wm.save_as_mainfile()

for i in bpy.data.images:
    if i.filepath == '':
        continue

    currentFilePath=bpy.path.abspath(i.filepath)
    print(currentFilePath)
    convert_image_tga(currentFilePath)
    i.filepath = i.filepath.replace('.dds', '.tga')

# Save Blender Project
bpy.ops.wm.save_as_mainfile()
# Export FBX

# bpy.ops.export_scene.fbx(fbxPath)