<div dir="ltr">Hi,<div><br></div><div>I work at Oniria Company and we make simulators for huge companies, like Vale, Petrobras, CaseIH, etc. They hired me to migrate the workflow to Blender 6 years ago. So, since that day, our mainly workflow is to develop Art in Blender and code in Unity. I just told about our clients to you know how important this script was and is to make possible to use Blender in a project so demanding. This new version is an amazing improvement for this workflow.</div>


<div><br></div><div>How do we work here?</div><div>At the beginning we use to let Unity import .blend directly. There is a .py at Unity/Data/Tools folder to use a Blender installation to do that. It probably generates a .fbx at Library folder, or something like that. But it was horrible, because Unity use to broke the references when importing. So we had to fix it by hand. Dull work.</div>

<div>So we decide to always delete this .py and use Blender to generate our .FBX. It was a great decision and gave us some good results:</div><div>- Better control about what is importing or not;</div><div>- We can let huge .blend files inside the Assets folder and Unity will never take that long long time to import it anymore (Best Unity error: Unity was unable to import a Blender file!);</div>

<div>- So Unity imports only .fbx;</div><div>- We could set groups to export. Sometimes after some months we use to forget what objects from the file we should export and grouping was a good solution for this;</div><div>
- Easy to export multiple .fbx files from one .blend using groups;</div>
<div>- Faster workflow: no more .blend import time and easily export .fbx to the same .blend folder.</div><div>I know it sounds a little bit repetitive, but working with it every day it is kind of important for us.<br></div>

<div><br></div><div>So, soon the buildbot was released I made some tests here:</div><div><br></div><div><b>Working</b></div><div>Apply Transform - Thank you so much for this one! Z up vs Y up are alwas a mess for us;</div>

<div>Linked Mesh - It is a great deal indeed! Exporting a forest, for example, wouldn&#39;t be better!</div><div><br></div><div>
<br></div><div><b>Not Working</b></div><div>Armature Apply Transform: Still exporting as X -90;</div><div>Groups: it is not considering the Group Center, only the scene center.</div><div><br></div><div><b>Some thoughts</b></div>


<div>Custom proprieties is a good addition and I saw Shape Keys are planned to 2.72 version. For me, exporting to Unity, Custom Proprieties will make a lot of sense with Shape Keys implemented, mainly for facial animation. Thank you guys again!</div>



<div><br></div><div><div><b>Not Tested Yet</b></div><div>NLA export list. I saw the document and it looks a great workflow. I will test it soon.</div></div><div><br></div><div><b>Presets</b><br></div><div>And, as always, I would like to sugest some presets. Would be great to come with some presets, like:</div>


<div>Unity - Scale 100, Smoothing Face...</div><div>Unity without Animation</div><div>Unity Groups</div><div>Unreal - Scale 100</div><div>Legacy (FBX 6.1)</div><div>etc.</div><div>
<br></div><div>I will make more tests and, if you may I, I would like to make more suggestions further. Blender is the best 3D tool with the best workflow. Now it is becoming the best tool for ANY workflow, thank to you, guys! Did I said thank you already? THANK YOU SO MUCH!!</div>

<div><br></div><div>Cheers.</div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Moraes Jr - aka mangojambo<br>Animator &amp; 3D Artist<br>+55 43 88133399<a href="http://www.oniria.com.br" target="_blank"></a></div>

</div>
<br><br><div class="gmail_quote">On 18 June 2014 12:41, Simon Broggi <span dir="ltr">&lt;<a href="mailto:simon.broggi@gmail.com" target="_blank">simon.broggi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Just changed my Unity installation to automatically use the new exporter.<div>To do this change the Tools/Unity-BlenderToFBX.py in the Unity installation.</div><div>Here&#39;s the edited script that works for me (lines added marked with  #changed to use binary fbx exporter) :</div>


<div><br></div><div><div>blender249 = True</div><div><br></div><div>try: import Blender</div><div>except:</div><div><span style="white-space:pre-wrap">        </span>blender249 = False</div><div><span style="white-space:pre-wrap">        </span>import bpy<span style="white-space:pre-wrap">        </span></div>


<div><br></div><div>if blender249:</div><div><span style="white-space:pre-wrap">        </span>try: import export_fbx</div><div><span style="white-space:pre-wrap">        </span>except:</div><div><span style="white-space:pre-wrap">                </span>print(&#39;error: export_fbx not found.&#39;)</div>


<div><span style="white-space:pre-wrap">                </span>Blender.Quit()</div><div>else:</div><div><span style="white-space:pre-wrap">        </span>try:</div><div><span style="white-space:pre-wrap">                </span>import io_scene_fbx.export_fbx</div>


<div><span style="white-space:pre-wrap">                </span>import io_scene_fbx.export_fbx_bin #changed to use binary fbx exporter</div><div><span style="white-space:pre-wrap">        </span>except:</div><div><span style="white-space:pre-wrap">                </span>print(&#39;error: io_scene_fbx.export_fbx not found.&#39;)</div>


<div><span style="white-space:pre-wrap">                </span># This might need to be bpy.Quit()</div><div><span style="white-space:pre-wrap">                </span>raise</div><div><br></div><div># Find the Blender output file</div><div>import os</div>


<div>outfile = os.getenv(&quot;UNITY_BLENDER_EXPORTER_OUTPUT_FILE&quot;)</div><div><br></div><div># Do the conversion</div><div>print(&quot;Starting blender to FBX conversion &quot; + outfile)</div><div><br></div><div>if blender249:</div>


<div><span style="white-space:pre-wrap">        </span>mtx4_x90n = Blender.Mathutils.RotationMatrix(-90, 4, &#39;x&#39;)</div><div><span style="white-space:pre-wrap">        </span>export_fbx.write(outfile,</div><div><span style="white-space:pre-wrap">                </span>EXP_OBS_SELECTED=False,</div>


<div><span style="white-space:pre-wrap">                </span>EXP_MESH=True,</div><div><span style="white-space:pre-wrap">                </span>EXP_MESH_APPLY_MOD=True,</div><div><span style="white-space:pre-wrap">                </span>EXP_MESH_HQ_NORMALS=True,</div>


<div><span style="white-space:pre-wrap">                </span>EXP_ARMATURE=True,</div><div><span style="white-space:pre-wrap">                </span>EXP_LAMP=True,</div><div><span style="white-space:pre-wrap">                </span>EXP_CAMERA=True,</div>
<div><span style="white-space:pre-wrap">                </span>EXP_EMPTY=True,</div><div><span style="white-space:pre-wrap">                </span>EXP_IMAGE_COPY=False,</div><div><span style="white-space:pre-wrap">                </span>ANIM_ENABLE=True,</div>
<div><span style="white-space:pre-wrap">                </span>ANIM_OPTIMIZE=False,</div><div><span style="white-space:pre-wrap">                </span>ANIM_ACTION_ALL=True,</div><div><span style="white-space:pre-wrap">                </span>GLOBAL_MATRIX=mtx4_x90n)</div>


<div>else:</div><div><span style="white-space:pre-wrap">        </span># blender 2.58 or newer</div><div><span style="white-space:pre-wrap">        </span>import math</div><div><span style="white-space:pre-wrap">        </span>from mathutils import Matrix</div>


<div><span style="white-space:pre-wrap">        </span># -90 degrees</div><div><span style="white-space:pre-wrap">        </span>mtx4_x90n = Matrix.Rotation(-math.pi / 2.0, 4, &#39;X&#39;)</div><div><span style="white-space:pre-wrap">        </span></div>


<div><span style="white-space:pre-wrap">        </span>print(&quot;moo&quot;)</div><div><span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">        </span>class FakeOp:</div><div><span style="white-space:pre-wrap">                </span>def report(self, tp, msg):</div>


<div><span style="white-space:pre-wrap">                        </span>print(&quot;%s: %s&quot; % (tp, msg))</div><div><span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">        </span>exportObjects = [&#39;ARMATURE&#39;, &#39;EMPTY&#39;, &#39;MESH&#39;]</div>


<div><span style="white-space:pre-wrap">                </span></div><div><span style="white-space:pre-wrap">        </span>minorVersion = bpy.app.version[1];<span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">        </span>if minorVersion &lt;= 58:</div>


<div><span style="white-space:pre-wrap">                </span># 2.58</div><div><span style="white-space:pre-wrap">                </span>io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile,</div><div><span style="white-space:pre-wrap">                        </span>global_matrix=mtx4_x90n,</div>


<div><span style="white-space:pre-wrap">                        </span>use_selection=False,</div><div><span style="white-space:pre-wrap">                        </span>object_types=exportObjects,</div><div><span style="white-space:pre-wrap">                        </span>mesh_apply_modifiers=True,</div>


<div><span style="white-space:pre-wrap">                        </span>ANIM_ENABLE=True,</div><div><span style="white-space:pre-wrap">                        </span>ANIM_OPTIMIZE=False,</div><div><span style="white-space:pre-wrap">                        </span>ANIM_OPTIMIZE_PRECISSION=6,</div>


<div><span style="white-space:pre-wrap">                        </span>ANIM_ACTION_ALL=True,</div><div><span style="white-space:pre-wrap">                        </span>batch_mode=&#39;OFF&#39;,<span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">                        </span>BATCH_OWN_DIR=False)</div>


<div><span style="white-space:pre-wrap">        </span>else:</div><div><span style="white-space:pre-wrap">                </span># 2.59 and later</div><div><span style="white-space:pre-wrap">                </span>kwargs = io_scene_fbx.export_fbx_bin.defaults_unity3d() #changed to use binary fbx exporter</div>


<div><span style="white-space:pre-wrap">                </span>io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile, **kwargs)</div><div><span style="white-space:pre-wrap">        </span># HQ normals are not supported in the current exporter</div>


<div><br></div><div>print(&quot;Finished blender to FBX conversion &quot; + outfile)</div></div><div class="gmail_extra"><div><div dir="ltr"></div></div>
<br><br><div class="gmail_quote"><div class="">On Fri, Jun 6, 2014 at 3:18 AM, Mitchell Stokes <span dir="ltr">&lt;<a href="mailto:mogurijin@gmail.com" target="_blank">mogurijin@gmail.com</a>&gt;</span> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div class="h5">
<div dir="ltr">We have a new binary FBX exporter in Blender thanks to the efforts of Bastien Montagne. You can find more information in this recent <a href="http://code.blender.org" target="_blank">code.blender.org</a> post: <a href="http://code.blender.org/index.php/2014/06/supporting-game-developers-with-blender-2-71/" target="_blank">http://code.blender.org/index.php/2014/06/supporting-game-developers-with-blender-2-71/</a><div>




<br></div><div>We&#39;ve run various tests ourselves, but we&#39;d really like to get feedback from people actually using Blender to create assets for use in engines such as Unity, UDK, UE4, or just about any engine that accepts FBX files. To this end, we highly encourage users to test out recent development builds (found at <a href="http://builder.blender.org/" target="_blank">http://builder.blender.org/</a>) and play around with the new exporter. Use it, abuse it, throw your complicated production files at it, and then let us know what breaks via the bug tracker (<a href="https://developer.blender.org/" target="_blank">https://developer.blender.org/</a>).</div>


<span><font color="#888888">

<div><br></div><div>--Mitchell Stokes</div></font></span></div>
<br></div></div><div class="">_______________________________________________<br>
Bf-gamedev mailing list<br>
<a href="mailto:Bf-gamedev@blender.org" target="_blank">Bf-gamedev@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-gamedev" target="_blank">http://lists.blender.org/mailman/listinfo/bf-gamedev</a><br>
<br></div></blockquote></div><br></div></div>
<br>_______________________________________________<br>
Bf-gamedev mailing list<br>
<a href="mailto:Bf-gamedev@blender.org">Bf-gamedev@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-gamedev" target="_blank">http://lists.blender.org/mailman/listinfo/bf-gamedev</a><br>
<br></blockquote></div><br></div>