C# Unity Fehlermeldung Blender

Paul8384747

Newbie
Registriert
Jan. 2023
Beiträge
4
Hallo,
Ich habe das Problem, dass ich eine Datei aus Blender in Unity benutzen möchte, aber sobald ich auf ,,Import New Asset" gehe kommt die Fehlermeldung ,,Blender could not be found".
Ich habe Blender installiert und Blender zum öffnen von .blend Dateien als Standard gesetzt aber es hat trotzdem nichts gebracht. Kann irgendjemand weiterhelfen?
 

Anhänge

  • IMG_20230109_222212.jpg
    IMG_20230109_222212.jpg
    1,7 MB · Aufrufe: 146
sind blender und unity auf der gleichen partition?

magst du die fehlermeldung mal komplett kopieren?
ist nervig abzutippen :)
 
Zuletzt bearbeitet:
aronlad schrieb:
Um es dann auch nur auf Google zu suchen? :D
Ein teil der Antwort wie viele Leute das hin bekommen wuerde dich verunsichern.


Hier war einige zeit ein Entwickler unterwegs, der gefuehlt jede Stelle an der er nicht weiter kam, hier postete. Meist reicht es den Titel in goolge zu kopieren.
 
Sag ja gar nix gegen. Mache und sehe das ja auch so. Das war auch eher ein Hinweis an den TE.
 
habs eben mal gegoogled.

zwig doch mal bitte den inhalt der datei Unity-BlenderToFBX.py
liegt grob da:
C:\Program Files\Unity\Hub\Editor\2022.1.0a1\Editor\Data\Tools\Unity-BlenderToFBX.py

Version halt entsprechend anpassen;)
die unity leute scheinen da gern digne zu hardcoden
 
madmax2010 schrieb:
zwig doch mal bitte den inhalt der datei Unity-BlenderToFBX.py
liegt grob da:
Was muss ich daran ändern?


import bpy
blender249 = True
blender280 = (2,80,0) <= bpy.app.version

try:
import Blender
except:
blender249 = False

if not blender280:
if blender249:
try:
import export_fbx
except:
print('error: export_fbx not found.')
Blender.Quit()
else :
try:
import io_scene_fbx.export_fbx
except:
print('error: io_scene_fbx.export_fbx not found.')
# This might need to be bpy.Quit()
raise

# Find the Blender output file
import os
outfile = os.getenv("UNITY_BLENDER_EXPORTER_OUTPUT_FILE")

# Do the conversion
print("Starting blender to FBX conversion " + outfile)

if blender280:
import bpy.ops
bpy.ops.export_scene.fbx(filepath=outfile,
check_existing=False,
use_selection=False,
use_active_collection=False,
object_types= {'ARMATURE','CAMERA','LIGHT','MESH','OTHER','EMPTY'},
use_mesh_modifiers=True,
mesh_smooth_type='OFF',
use_custom_props=True,
bake_anim_use_nla_strips=False,
bake_anim_use_all_actions=False,
apply_scale_options='FBX_SCALE_ALL')
elif blender249:
mtx4_x90n = Blender.Mathutils.RotationMatrix(-90, 4, 'x')
export_fbx.write(outfile,
EXP_OBS_SELECTED=False,
EXP_MESH=True,
EXP_MESH_APPLY_MOD=True,
EXP_MESH_HQ_NORMALS=True,
EXP_ARMATURE=True,
EXP_LAMP=True,
EXP_CAMERA=True,
EXP_EMPTY=True,
EXP_IMAGE_COPY=False,
ANIM_ENABLE=True,
ANIM_OPTIMIZE=False,
ANIM_ACTION_ALL=True,
GLOBAL_MATRIX=mtx4_x90n)
else:
# blender 2.58 or newer
import math
from mathutils import Matrix
# -90 degrees
mtx4_x90n = Matrix.Rotation(-math.pi / 2.0, 4, 'X')

class FakeOp:
def report(self, tp, msg):
print("%s: %s" % (tp, msg))

exportObjects = ['ARMATURE', 'EMPTY', 'MESH']

minorVersion = bpy.app.version[1];
if minorVersion <= 58:
# 2.58
io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile,
global_matrix=mtx4_x90n,
use_selection=False,
object_types=exportObjects,
mesh_apply_modifiers=True,
ANIM_ENABLE=True,
ANIM_OPTIMIZE=False,
ANIM_OPTIMIZE_PRECISSION=6,
ANIM_ACTION_ALL=True,
batch_mode='OFF',
BATCH_OWN_DIR=False)
else:
# 2.59 and later
kwargs = io_scene_fbx.export_fbx.defaults_unity3d()
io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile, **kwargs)
# HQ normals are not supported in the current exporter

print("Finished blender to FBX conversion " + outfile)
 
Die restlichen Fragen haben ihren grund


ich bin mal so frei und habe auf codeblock geklickt
Python:
import bpy
blender249 = True
blender280 = (2,80,0) <= bpy.app.version

try:
import Blender
except:
blender249 = False

if not blender280:
if blender249:
try:
import export_fbx
except:
print('error: export_fbx not found.')
Blender.Quit()
else :
try:
import io_scene_fbx.export_fbx
except:
print('error: io_scene_fbx.export_fbx not found.')
# This might need to be bpy.Quit()
raise

# Find the Blender output file
import os
outfile = os.getenv("UNITY_BLENDER_EXPORTER_OUTPUT_FILE")

# Do the conversion
print("Starting blender to FBX conversion " + outfile)

if blender280:
import bpy.ops
bpy.ops.export_scene.fbx(filepath=outfile,
check_existing=False,
use_selection=False,
use_active_collection=False,
object_types= {'ARMATURE','CAMERA','LIGHT','MESH','OTHER','EMPTY'},
use_mesh_modifiers=True,
mesh_smooth_type='OFF',
use_custom_props=True,
bake_anim_use_nla_strips=False,
bake_anim_use_all_actions=False,
apply_scale_options='FBX_SCALE_ALL')
elif blender249:
mtx4_x90n = Blender.Mathutils.RotationMatrix(-90, 4, 'x')
export_fbx.write(outfile,
EXP_OBS_SELECTED=False,
EXP_MESH=True,
EXP_MESH_APPLY_MOD=True,
EXP_MESH_HQ_NORMALS=True,
EXP_ARMATURE=True,
EXP_LAMP=True,
EXP_CAMERA=True,
EXP_EMPTY=True,
EXP_IMAGE_COPY=False,
ANIM_ENABLE=True,
ANIM_OPTIMIZE=False,
ANIM_ACTION_ALL=True,
GLOBAL_MATRIX=mtx4_x90n)
else:
# blender 2.58 or newer
import math
from mathutils import Matrix
# -90 degrees
mtx4_x90n = Matrix.Rotation(-math.pi / 2.0, 4, 'X')

class FakeOp:
def report(self, tp, msg):
print("%s: %s" % (tp, msg))

exportObjects = ['ARMATURE', 'EMPTY', 'MESH']

minorVersion = bpy.app.version[1];
if minorVersion <= 58:
# 2.58
io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile,
global_matrix=mtx4_x90n,
use_selection=False,
object_types=exportObjects,
mesh_apply_modifiers=True,
ANIM_ENABLE=True,
ANIM_OPTIMIZE=False,
ANIM_OPTIMIZE_PRECISSION=6,
ANIM_ACTION_ALL=True,
batch_mode='OFF',
BATCH_OWN_DIR=False)
else:
# 2.59 and later
kwargs = io_scene_fbx.export_fbx.defaults_unity3d()
io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile, **kwargs)
# HQ normals are not supported in the current exporter

print("Finished blender to FBX conversion " + outfile)
Ergänzung ()

aber was das skript im prinzip tut ist: je nach blenderversion blender files auf unterschiedliche weise in FBX dateien umwandeln.
 
Zurück
Oben