Blender to HIFI Avatar workflow and they said it would never work


#1

http://growlybearproductions.com/Blender/

I found a guy made a import script for Mixamo that lets us finally use blender to make avatars in a sensible way

So what I have been banging on about wanting to do is import a Mixamo avatar change nothing export it back into hifi and have the face animations work and the rig work

Here’s how
Download this script
http://growlybearproductions.com/Blender/Import_Mixamo_FBX.zip

then follow this video

vid fixed


Is there a confirmed workflow of getting fuse/mixamo avatars into High Fidelity?
A noob‘s tutorial on getting fuse / mixamo avatars into High Fidelity without black eyes
#2

Could just be me, but I think your video stalled (paused) mid-way through. Sometime around 2:20 the video stops and the audio continues.


#3

Aye i noticed that i think windows 10 doesn’t like me, re exporting and uploading now ill swap it out once its done


#4

For users wanting to use the .py script elsewhere:

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####


# Coded by Phillip Proctor
# Portions generated by blender's code templates
# phill_proctor@growlybearproductions.com


import bpy

bl_info = \
    {
        "name" : "Mixamo FBX Import",
        "author" : "Phillip S. Proctor <phill_proctor@yahoo.com>",
        "version" : (1, 0, 0),
        "blender" : (2, 7, 6),
        "location" : "File > Import",
        "description" :
            "Imports Mixamo Fuse FBX and corrects mesh orientation",
        "warning" : "",
        "wiki_url" : "http://growlybearproductions.com/blender",
        "tracker_url" : "",
        "category" : "Import-Export",
    }



# Import the FBX file and correct mesh
def Import_Mixamo_FBX(context, MixamoFBXFile):
    bpy.ops.object.select_all(action='DESELECT')
    bpy.ops.import_scene.fbx(filepath=MixamoFBXFile)
    DeselectArmature()
    bpy.ops.transform.rotate(value=1.5708, axis=(1,0,0))
    bpy.ops.transform.resize(value=(.01,.01,.01))
    #SelectArmature()
    return {'FINISHED'}



# Function to deselect the armature. Required so it does not get rotated with the mesh.
def DeselectArmature():
    scene = bpy.context.scene
    for ob in scene.objects:
        if ob.type == 'ARMATURE':
            ob.select = False
    return


# Function to select the armature and deselect everything else
def SelectArmature():
    scene = bpy.context.scene
    for ob in scene.objects:
        if ob.type == 'ARMATURE':
            ob.select = True
        else:
            ob.select = False
    return

# ImportHelper is a helper class, defines filename and
# invoke() function which calls the file selector.
from bpy_extras.io_utils import ImportHelper
from bpy.props import StringProperty, BoolProperty, EnumProperty
from bpy.types import Operator


class MixamoImportFBX(Operator, ImportHelper):
    """Import Mixamo FBX Character file"""
    bl_idname = "import_test.some_data"  # important since its how bpy.ops.import_test.some_data is constructed
    bl_label = "Import Mixamo FBX"

    # ImportHelper mixin class uses this
    filename_ext = ".fbx"

    filter_glob = StringProperty(
            default="*.fbx",
            options={'HIDDEN'},
            )

    def execute(self, context):
        return Import_Mixamo_FBX(context, self.filepath)


# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(MixamoImportFBX.bl_idname, text="Import Mixamo FBX")


def register():
    bpy.utils.register_class(MixamoImportFBX)
    bpy.types.INFO_MT_file_import.append(menu_func_import)


def unregister():
    bpy.utils.unregister_class(MixamoImportFBX)
    bpy.types.INFO_MT_file_import.remove(menu_func_import)


if __name__ == "__main__":
    register()

    # test call
    bpy.ops.import_test.some_data('INVOKE_DEFAULT')

#5

This has made me so happy

Ages ago i wanted to make some tutorials on customizing existing avatars. But the thing is I wanted to make is as simple as possible as rigging weight painting and stuff gets complicated all by itself.
Now importing the avatar correctly is prettymuch 1 click
So for me now its worth spending some time making avatars
And Ill do some on re colouring existing ones which is fairly simple and lots of fun to do then maybe we can get more people in here having some fun


#6

ATTENTION!!!

Everyone leave your pitchforks at the door when you leave for attending the Alpha meetup.

:smiley:


#7

Did you upload one to the marketplace, so we can put one next to the door. :smiley:


#8

“unselect the armeture, rotate the mesh on the X axis 90° and then scale to .01”

Yep. Pretty much nail on to the loose description I said for it :stuck_out_tongue: Good that someone bothered a script for it


#9

We needed an easy button, because as @Judas mentioned and the original author of the script; when you have to do this process 1000’s of times it’s too bothersome. Also, this removes the barrier to entry for new users. Anyone can install blender but without knowing what a joint rotation is, an armature, weight painting, etc… users of Fuse can use that interface to do “bulk edits” of an avatar with an easy to understand UI, and then (if desired) make finer tweaks in Blender then export to HiFi.

I think we will find this very user-friendly for novices (myself included)


#10

Agrees that @Menithal had it working the point was everyone else is at least as stupid as I am .We want everyone to be able to do this.
Have you ever emailed your mum a zipped file attachment? you end up thinking why did I do this I shoulda got in the car and just gone there
the real tragedy here is it took a guy called Growly Bear to make it happen XD


#11

Send him an Alpha invite.


#12

The Import Export Mixamo FBX Import addon link is at the top of this thread posted by @Judas


#13

Thanks, i really overlooked that 10 times.


#15

I mean @judas not chris.