long story short:
To use blender models in Unity you need to install a Blender Version 2.X since the (in Unity integrated) python script that converts the models doesn't support 3.X yet.
Edit: As it stands now Unity and Blender 3.0.1 and onwards work properly together.
(source: https://forum.unity.com/threads/unity-issues-with-blender-3-0-version-reading-issue.1207444/)
Original Question:
I got a new PC and tried to open my Unity (2021.1.5f) Project, which uses blender models. When opening the project i got errormessages saying "Blender could not convert the .blend file to .fbx file" and when i hit play there were spawning a bunch of empty Gameobjects called "missing prefab (dummy)". Also not all models were missing. Only the blender files (i think).
So it looks to me, that there might be a problem with blender 3.0.0, which is the newest version to download. In the unity Forum the user "Kurt-Dekker" already is helping people indicating to a Python script in the UnityEditor Directory "Unity-BlenderToFBX" but i didn't find an updated script that fix the issue with blender 3.0.0.
In case anyone is getting similar issues, i solved the issue by installing an older blender version (i use 2.8).
Is there anyone who knows how to fix the script for blender 3.0.0? :)
Hope i could help someone bypassing the problem for now and have a good day
I am new in Unity development and I have good experience in Autocad development. Is it possible to use 3d solids & 3d mesh terrains created in autocad and display it in the Unity interface and also get its properties (such as 3D solid color, dimensions, handles etc..)
Unity supports .FBX, .dae (Collada), .3DS, .dxf and .obj files. If your Autocad can export to any of these then the answer is yes. It is possible but read below.
Objects produced in Autocad, SolidWorks or other similar software should not be imported to Unity directly by any means. Its too heavy for Unity. If you want to use your models from any of these software, export them to software such as Maya or Blender then clean the models up. Reduce the poly counts before importing into Unity.
Note that it will take time to clean the models up. You should spend that time making new models in Maya or Blender. If your goal is to make a game, then you need to learn either Maya or Blender. Autocad is not used for that. Since you are already using Autocad, I suggest you use Maya since the UIs are now made to look similar.
EDIT:
I see an answer below suggesting that it's totally fine to use Autocad models in Unity or model the objects in Autocad. It's not just about creating models. You have to do some work on the models to make it look good and even work properly with Unity's render engine. Here are many reasons not to use Autocad to model your game objects:
1.UV mapping/unwrapping.
You have to unwrap the model's UV before importing the model into a game engine. Without this, it's hard to do texturing and you'll run into issues. Not to mention one of the biggest issue called "texture seams".
2.Texturing the model.
Again, this is done inside programs like Maya and Blender not Autocad.
3.Baking textures/Map
You need to bake maps most of the times when working with high detailed models. When generating materials from V-ray or any renderer in Maya with complex materials, you need to to bake the final result into may types of maps such as color, normal, alpha.... This also applies to light baking.
4.Map Transfer
Initially, you model high poly then transfer the map to a low poly. You can't do this with Autocad. This is very import as it reduces the number of polys in your game.
Everything mentioned above are very important when it comes to game development but Autocad is not made to handle those.
Use the right tool for the job. Use Autocad for engineering and Maya or Blender for games, movies and art. It's as simple as that.
To export from AutoCad, use the OBJ format, or FBX. The Unity "what files can I import" page is misleading because exported file formats differ with each new year and new versions of the exporting programs are often not compatible with Unity. It takes Unity devs a few years to get around to updating the import process, unfortunately.
In regards to optimizing your models, "cleaning them up" in Maya is a joke because Maya will also export "heavy" models depending on the format you use. There is a precedence for cleaning a model up, but AutoCad products are the best in the industry, and if you clean them up in a CAD program and then export in OBJ or FBX, it should be fine. Maya is also an AutoCad product, I'm just saying that you don't have to juggle a file around in different programs. If you use the OBJ or FBX export format and if your file is mostly a CG model, then it will work fine going straight from a CAD program into Unity, usually. CAD programs have utilities to clean up models, as do programs like Sketchup, DAZ3D and others. You don't need to triangulate faces, and usually OBJ will work great.
Your best option for importing to Unity is to use OBJ if possible, from any source program. Most models will sustain this if you don't have animations or "bones". If you export to OBJ and choose the option to NOT triangulate all the faces, and DO include the textures, you should be fine. If your model includes animations then you should use FBX format which will have a considerably higher file size cost.
In addition, it works better to drag-and-drop the .obj file, .mtl file and textures folder into the Unity Asset folder where you want it (better than trying the "import asset" native Unity feature).
Be advised that many of the formats that Unity claims to import on its "what files can I import" page are invalid based on the version of the exporting program. For example, DXF files must be an earlier version, not the most recent. Programs like Sketchup and .skp will only import into Unity if you use an earlier version, as far back as 2013, at this time, as of Unity 5.6.0f3.
Usually, if you are aware of these issues and you are willing to try a few methods of CG model exporting/importing, you will find success. Obviously, game devs keep using Unity because they value the engine enough to tolerate these kind of imperfections.
V3D file and i have a 3D studio Max plug-in but i don't have 3DS Max and I was wondering if it might be able to be converted to a Blender plug-in?
PS.if you need the plug-in click me
PS.2.the V3D file is a Volition 3D file for the games Red Faction and Summoner by THQ and Volition
Thanks Jared
No you can't.
3D Studio plugins are binary libraries that are linked specifically against the 3D Studio application, they cannot be used with other applications.
Blender uses python to add customised features. If you know how the plugin achieves it's results you could create an addon for blender that performs a similar task.
When I copy .blend file in Unity's Assets folder it says
Blender could not convert the .blend file to FBX file.
You need to use Blender 2.45-2.49 or 2.58 and later versions for direct Blender import to work.
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEditor.DockArea:OnGUI()
But I am currrently using version 2.7. I am using a .blend file from internet source to use in my game. Does re-saving help in getting rid of errors or is there another possible and efficent way to resolve this issue ?
Although Unity has full function over .Blend files I belive downloading the .Blend file from the internet is the problem
( You may test that theory by exporting a simple model of your own and see if it works with Unity )
If your test model works then it's obviously something wrong downloading it from the internet.
I've had problems with this before and to date have had no solution I suggest trying to copy the model and model it for your self ( perhaps even copy and paste it from one project file to another)
One obvious sign that it will not export correctly is if editing your model in blender sends the model into a orange tint and the object would not be able to be edited....
In conclusion the best thing you can do if it's the internet to blame is attempt to recreat the model and/or animations :) hope it helps and good luck :)
I dont want to use any 3D engine like SIO2 etc engines in my project. But I still want to use .blender 3d files in my normal projects.
Can anyone please guide me how I can proceed with that.
Thanks
The .blend format is not much more than a python pickle object with some binary header fields. It unfortunately is neither very optimized nor easy to load data from.
Also blender format is prone to version differences which are very subtle and will be handled by upgraded blender versions but you will lose a lot of time learning all the differences between the .blend file versions.
I recommend you either roll your own exporter for your own preferred format (should it not exist in the blender community or addons) or use a generic format, some good all-round formats are :
Collada (Builtin)
Direct X format (Builtin)
Check for more blender import and export plugins
Export your blend file to another format.
http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts#Import-Export_Scripts
Which you choose depends upon how you will render your objects. Check out the "raw" exporter, since you are rolling your own renderer.