Shop Forum More Submit  Join Login
I noticed the next version of Blender, i.e., Blender 2.80, for 64-bit Windows OS is going to be compiled using Visual Studio 2015 and uses Python 3.6 (see builder.blender.org/download/).  This means, the Bos FBX Importer/Exporter I posted will not work.  Since this importer/exporter may be useful, I tried to prepare for that change.

What I did:
1. Download umio code from github.com/uimac/umio (direct link to the zip: github.com/uimac/umio/archive/…)
2. Download Autodesk FBX SDK from www.autodesk.com/products/fbx/…
3. Download boost from www.boost.org/
4. Download Python 3.6 from www.python.org/
5. Extract umio-master.zip to a folder
6. Install Autodesk FBX SDK
7. Install Python 3.6
8. Create a folder fbxsdk2018 under umio's lib folder
9. Copy the include folder of Autodesk FBX SDK to fbxsdk2018 created in the previous step
10. Copy the x64 folder of Autodesk FBX SDK (which is under lib\vs2015) to fbxsdk2018 created in the previous step
11. Create a folder python36 under umio's lib folder
12. Copy the include folder of Python36 to python36 created in the previous step
13. Create the x64 folder under python36 created in the previous step
14. Create the Release folder under x64 created in the previous step
15. Copy the python36.lib from Python36 (which is under libs) to Release created in the previous step
16. Extract boost to a folder
17. Open the Developer Command Prompt for Visual Studio 2015
18. Set the PATH to include the path where Python36 is installed at that command prompt
19. In that command prompt, cd to the path where boost is extracted
20. In that command prompt, run the batch file bootstrap.bat
21. In that command prompt, run b2 with the argument architecture=x86 address-model=64 to create the Windows 64-bit lib
22. Create the include folder under umio's lib\boost folder
23. Copy the boost folder from where boost is extracted to include created in the previous step
24. Copy the libboost_python*.lib from boost's stage\lib folder to either umio's lib\boost\x64\Debug or lib\boost\x64\Release folder.  The one with the name has a string "-gd-" should go to the Debug folder
25. Open the umio's umio.sln with Visual Studio 2015 and let it convert the solution and projects. Once it finished, make umio_exe_fbx2015 as the StartUp project, then save the changes and close the Visual Studio 2015.
26. Edit the following project files:
  • project\umio_lib_nofbx\umio_lib_nofbx.vcxproj
  • project\umio_lib_obj\umio_lib_obj.vcxproj
  • project\umio_pyd_nofbx\umio_pyd_nofbx.vcxproj
  • project\umio_pyd_fbx2015\umio_pyd_fbx2015.vcxproj
  • project\umio_lib_fbx2015\umio_lib_fbx2015.vcxproj
  • project\umio_exe_fbx2015\umio_exe_fbx2015.vcxproj
Replace WITH_FBX2014 with WITH_FBX2015
Replace python34 with python36
Replace v140_xp with v140
Replace libboost_python-vc120-mt-gd-1_57.lib with libboost_python3-vc140-mt-gd-x64-1_66.lib
Replace libboost_python-vc120-mt-1_57.lib with libboost_python3-vc140-mt-x64-1_66.lib

27. Reopen the umio's umio.sln with Visual Studio 2015.  Go to the project umio_pyd_fbx2015 and edit UMPython.cpp
28. It is because passing non-pointer-like types to uninitialized_copy, uninitialized_copy_n, or uninitialized_fill fails to compile in Visual C++ (see msdn.microsoft.com/vs-knowniss…), the following code lines have to be added to UMPython.cpp before the line #endif //WITH_PYTHON at the end of the file:

  namespace ex = umio;

  namespace boost {
    template <>
    inline umio::UMMesh const volatile * get_pointer(class umio::UMMesh const volatile *em) {
       return em;
    }

    template <>
    inline umio::UMSkeleton const volatile * get_pointer(class umio::UMSkeleton const volatile *em) {
      return em;
    }

    template <>
    inline umio::UMCamera const volatile * get_pointer(class umio::UMCamera const volatile *em) {
      return em;
    }

    template <>
    inline umio::UMNode const volatile * get_pointer(class umio::UMNode const volatile *em) {
      return em;
    }

    template <>
    inline umio::UMObject const volatile * get_pointer(class umio::UMObject const volatile *em) {
      return em;
    }
  }

29. Select "Release" and "x64" rebuild the solution.
30. The results should be found in out\x64\Release
31. Copy umio_fbx2015.exe to umconv folder to where Blender is installed.  Then rename it to umconv_bos_fbx2018_win64.exe
32. Create the python36 folder under win64bit folder where the original Bos FBX Importer/Exporter is installed.  
32. Copy umio_fbx2015.pyd to python36 created in the previous step.  Then rename it to UMIO.pyd 
33. Modify the import_bos_fbx.py and export_bos_fbx.py to use the pyd and exe.  


Bos FBX Importer/Exporter for Blender 2.80 (Windows 64-bit Only)

Download
www.dropbox.com/s/yeszxycl1g99…

Overview
This addon is based on Bos FBX Importer/Exporter created by Kazuma Hatta. The original can be found at blenderfbx.render.jp/
Blender 2.80 uses Python 3.6, therefore the original Bos FBX Importer/Exporter does not work anymore.
This addon is built with original source code with boost 1.66.0 (www.boost.org/) and Autodesk FBX SDK 2018.1.1 (www.autodesk.com/products/fbx/…)
The Python code is modified to use the UMIO.pyd for Python 3.6 and the umconv_bos_fbx2018_win64.exe for Autodesk FBX SDK 2018.1.1.

Installation
1. Copy umconv folder to where Blender is installed.
2. Run Blender
3. Open User Preferences.
4. Select Add-ons, then click Install from File.
5. Locate the io_scene_bos_fbx.zip, then click Install from File.
6. Enable the Add-ons, then click Save User Settings
Add a Comment:
 
:iconpenny6:
Penny6 Featured By Owner May 1, 2018  Hobbyist Traditional Artist
Thank you for the addon!
Reply
:iconamyaimei:
amyaimei Featured By Owner May 1, 2018
You're welcome.
Noted that it is for newer version of Blender.  I tested it with the builds found at builder.blender.org/download/  
It will not work with the 2.79b and before.
If you try the version 2.80 or even the 2.79 (New Compiler), you may not even need it because these newer versions of Blender have better FBX supports.
Reply
:iconpenny6:
Penny6 Featured By Owner May 2, 2018  Hobbyist Traditional Artist
Well, I upgraded my blender program to the newest one; 2.79.

What does 2.79”b” stand for?
Reply
:iconamyaimei:
amyaimei Featured By Owner May 2, 2018
If you're using that version, you have to use amyaimei.deviantart.com/art/Bo…

2.79b means the second minor update for 2.79
The way they are labeled:
2.79
2.79a
2.79b
The current stable release is 2.79b
Reply
:iconpenny6:
Penny6 Featured By Owner May 7, 2018  Hobbyist Traditional Artist
But why do I need that version when this works pretty well?
Reply
:iconamyaimei:
amyaimei Featured By Owner May 7, 2018
If it works for you, that's fine.
The reason: This version is expected to work with Python 3.6.  Official release of Blender 2.79b uses Python 3.5.
Reply
:iconpenny6:
Penny6 Featured By Owner May 10, 2018  Hobbyist Traditional Artist
Oh, ok.
I do have python 2.7 and 3.5.
But like I said; it working for me.
Reply
:iconamyaimei:
amyaimei Featured By Owner Jan 8, 2018
Download is available at www.dropbox.com/s/yeszxycl1g99…
Reply
:iconlostbrave:
LostBrave Featured By Owner Jan 6, 2018  Hobbyist Digital Artist
:clap:Amazing Work,My Dear Friend:clap:You Are One Smart Lady:nod:
Reply
:iconamyaimei:
amyaimei Featured By Owner Jan 6, 2018
Thank you :)
I hope I don't have to use it because it is not perfect 
Reply
:iconlostbrave:
LostBrave Featured By Owner Edited Jan 6, 2018  Hobbyist Digital Artist
No worries,not yet My Love:hug:
You really do put a lot of time and effort in everything you do,And it shows:tighthug:
Reply
:iconamyaimei:
amyaimei Featured By Owner Jan 8, 2018
It is available but I guess no one will use it with the unstable release of Blender
The download link is added
Reply
:iconlostbrave:
LostBrave Featured By Owner Jan 8, 2018  Hobbyist Digital Artist
You Have Made All Effort To Make People Lives Better:huggle:
It's There If They Need It :nod:
Reply
Add a Comment:
 
×

:iconamyaimei: More from amyaimei





Details

Submitted on
January 6
Submitted with
Sta.sh Writer
Link
Thumb

Stats

Views
4,199 (2 today)
Favourites
8 (who?)
Comments
13