On this page |
Overview ¶
Filmbox (usually called FBX) is an interchange format for entire scenes. It stores a large scope of 3D animation software information, including multiple objects, bones, skinning, lights, and cameras.
Because an FBX file contains an entire scene, it usually maps to multiple objects and File nodes in the Houdini scene, unlike a pure-geometry format such as .geo
, where one File node handles the geometry.
Because FBX encompasses many different types of scene data, it can be slightly difficult to import procedurally. However, you can use the File node to import individual object geometry from an FBX file procedurally, and you can use the fbximport command to incorporate FBX loading into a scripted workflow.
Importing FBX ¶
-
Use File ▸ Import ▸ Filmbox (FBX) to import data from an FBX file into the current scene.
This command will potentially create multiple light objects, camera objects, Geometry container objects containing File nodes, and so on, corresponding to objects in the FBX file.
See the Import FBX window for the import options.
-
Inside an object, a File node can import a single object from an FBX file. Use
filename#‹object_name›
to specify the object to import. -
The fbximport HScript command lets you script the equivalent of the File ▸ Import ▸ Filmbox (FBX) menu item.
Note
For animated characters, the easiest way to export deforming skin to Houdini is a vertex cache. If you save skinned bones, Maya writes out separate weighting data, which Houdini translates into an Capture Override surface node that sets the weights. However, because Houdini must fill in the Override node directly (rather than referencing the source file), it will not pick up changes to the source file.
Exporting FBX ¶
-
Use File ▸ Export ▸ Filmbox (FBX) to export the current scene to an FBX file.
The export dialog includes an option to only export a branch of the scene tree, for example
/obj/subnet1
.See the Export FBX window for the export options.
-
To export FBX procedurally, use the FBX render driver node.
-
The FBX exporter only exports textures if they are visible in the viewport.
Capabilities ¶
Geometry ¶
Import | Export |
|
|
Attributes ¶
Import | Export |
|
|
Lights ¶
Import | Export |
|
|
Cameras ¶
Import | Export |
|
|
General ¶
Import | Export |
|
|
Materials ¶
The FBX importer creates either VOP networks or pre-built VEX FBX shader nodes. It supports basic material properties (such as color and textures) for things like specular, diffuse, ambient, emissive, etc., but nothing complex.
Import | Export |
|
|
Hierarchy ¶
Import | Export |
|
|
Animation ¶
Import | Export |
|
|
Dynamics ¶
Import | Export |
Specific settings cannot be imported; however, the baked results can be. |
|
Skinning and Deformations ¶
Houdini supports importing characters as both pre-backed vertex caches, as well as skinned meshes. However, FBX is only really good for relatively simple rigs and IK is not supported.
Import | Export |
|
|
Geometry Path Options ¶
When an FBX file is loaded as generic geometry, such as the File SOP, some
options are available by appending #node_name,option1,option2,...
to the
path. The first token after the #
is a node_name
that specifies a specific
FBX node’s geometry to load. The node name can be empty (eg.
#,option1,option2,...
) to specify loading all FBX node geometries.
The following options are currently available:
-
converton
- Convert NURBS/Patches to polygons -
convertoff
- Do NOT convert NURBS/Patches to polygons -
convertunits
- Only valid when loading all FBX node geometries. When specified, units conversion will be performed to match the current Houdini units preference. -
frame=X.Y
- Only valid when loading all FBX node geometries. If specified, the geometry is transformed by evaluating it at frameX.Y
.
The default behaviour (when there is no #
option string) is to load all FBX
nodes, with no conversion to polygons, and with their transforms evaluated
without animation.
Limitations ¶
Import ¶
-
FBX SDK has a bug in it where vertex caches created in Maya as float-type (and not double-type) will be read incorrectly by the SDK. Currently there is a workaround UI option for this issue in Houdini’s import dialog.
-
Maya doesn’t export vertex caches to FBX unless “Export Quick Selection Set as Geometry Cache File(s)” is checked.
-
Softimage XSI seems to put picture width and height as horizontal and vertical aspect ratios. This not only gives an incorrect result for window sizes, but also derails the focal length computation badly.
-
FBX has a cubic light attenuation fall-off, whereas Houdini does not.
-
FBX has a “visibility” flag, whereas Houdini has separate flags for visible in the viewer and visible in the render.
-
Cameras and objects with pre-transforms with non xyz-rotation orders may have kinks in their animation curves when imported into Houdini.
-
Skinning import is ignored on a Mac because of a bug in the FBX SDK.
The following data is not imported from FBX yet.
Category | Not imported |
---|---|
Attributes |
|
Lights |
|
Cameras |
|
General |
|
Hierarchy |
|
Animation |
|
Skinning and deformations |
|
Export ¶
-
To properly import anything that uses variable-vertex animated geometry (such as our particle fluids), you have to turn on the Use FBX framerate in Maya checkbox in Maya’s FBX importer.
-
On FBX import, FBX joints are represented as null nodes with fake bones between them; each bone has an expression for the length and look-at target, so that it always spans the two joints it is related to. On export, our code tries to detect these situations, and if found, converts them to proper joint hierarchies without fake bones.
-
Houdini bones are converted to joints on export, since most applications seem to export/import just joints, and not bones, from FBX (it can represent both).
The following data is not exported to FBX yet.
Category | Not exported |
---|---|
Attributes |
|
General |
|
Dynamics |
|