Input geometry, materials, and animation from the scene
You can use polygon meshes, geometric curves, nParticle objects, materials, and animation curves as inputs in a graph. For example, meshes can be deformed by the graph, or used for other purposes such as emitting particles in a simulation.
All input nodes at the top level of a graph have an Path section that can be used to get geometric objects from the scene.
The path parameter contains a string that is used to query the scene and return a matching object, or array of objects. If you rename objects in the scene, the connection persists until you press Enter in the path parameter to query the scene again. In that case, you can enter the new name(s) to re-create the connection.
You can only input objects from the scene at the top level of a graph. It is not possible to input objects inside a compound.
Drag objects from Maya's Outliner
Use the middle mouse button to drag an object or its shape from Maya's Outliner into the top level of a graph in the Bifrost Graph Editor. Alternatively, you can drag the icon (not the name) from the Outliner with the left mouse button. You can also drag shapes from the Node Editor or Hypergraph with the middle mouse button.
A new input-type node is created, with the same name as the object. Note that hierarchies are not supported — only the first valid shape is imported.
- A Maya mesh is imported as a Bifrost mesh.
- A geometric curve is imported as a strands object. Use the options on the
inputnode to control how the curve is resampled. - An nParticle object is imported as a points object, but first gets converted using a second graph named
convertParticleToBifrostthat is created automatically. You can simply close this tab in the Graph Editor. - A material becomes a material reference. See Apply materials.
- A transform such as an empty group becomes a
double4x4. You can convert it to afloat4x4by right-clicking on the output port on the input node. - Multiple selected meshes are imported as an array of meshes. If you intend to use the meshes in different ways, for example as emitters, colliders, and so on, it's better to input them one by one. Alternatively, you can use
get_from_arrayto separate - Multiple curves are sampled and imported as a single strands object by default. If desired, you can convert this later to an array of strands by right-clicking on the
inputnode's output port and changing its type.
To select the corresponding geometry in the scene, you can right-click on the input node's output port and choose Select Input Geometry.
Drag materials into the graph
Similar to geometric objects, you can also drag materials into a graph with the middle mouse button. This works for material nodes visible in the Node Editor and Hypershade, as well as in the Outliner (if Display > Assigned Materials is on).
Drag animation curves into the graph
To import one or more Maya animation curves as fcurves in Bifrost, select them (for example, in Maya's Node Editor) and then use the middle mouse button to drag them into the Bifrost Graph Editor. Multiple curves are imported as an array of fcurves.
Add scene references manually
Instead of dragging objects into a graph, you can add input nodes and specify objects manually.
- At the top level of a graph, press Tab and start typing
input. Clickinputto add the node to the graph. - In the Parameter Editor, enter a shape's name or path in the Path box, for example, "/pSphere1/pSphereShape1". Names and paths are case-sensitive.
Multiple objects and wildcards
To specify multiple objects as an array, use a space-separated list, for example, "/pCube1/pCubeShape1 /pSphere1/pSphereShape1".
The wildcards "*" and "?" are also supported. Use "//" for an arbitrarily deep hierarchy. For example:
- "/*/*" specifies all supported geometries that are not in a group or transform hierarchy.
- "/group1/*/*" specifies all supported geometries in group1.
- "/p*/*" specifies all supported geometries that are direct children of a transform node whose name begins with "p" and are not part of a group or hierarchy.
- "/*/*S*" specifies all supported geometries with an "S" in their names that are not part of a group or hierarchy.
- "//*" specifies all supported geometries in the scene.
- "/group1//*" specifies all supported geometries anywhere in the hierarchy under "group1".
