How to translate an alembic transform node?

   5667   6   1
User Avatar
Member
14 posts
Joined: Jan. 2017
Offline
How would you deal with alembic assets which consists of transforms and geometries which you need to be able to rig for scene assembly?

For example, let's say you need to bring in a car into a scene, position it and open the driver door (which is closed in the original alembic). How would you go about doing this?

All parts of the car's door resides in a specific transform within the alembic. If I could access this transform and place its pivot properly (unless already placed properly) I could then rotate it to make it open. How can I access this transform from e.g. an “edit” node or “transform” node?

I've checked the “Geometry spreadsheet” when having the alembic node selected and noted down the path to the transform in question. I've then tried to access it by defining the node's group as
@path=="/full/path/to/leftDoor"
@path=="*leftDoor"
but this doesn't work.

How can this problem be solved?
Breaking the car up into pieces wouldn't work for me, unfortunately, as this is just one asset out of hundreds which require fine tuning when “imported” into Houdini.
Also, ideally I'd like to be able to update the car alembic (maintaining its internal hierarchy) so I don't want to add nodes into its hierarchy.

Cheers for any suggestions!
User Avatar
Member
7803 posts
Joined: Sept. 2011
Offline
That's not what Alembic is for. Alembic is intended as a ready-to-render final product. That said, there's nothing stopping you from inserting a null object between Alembic transform nodes.
User Avatar
Member
14 posts
Joined: Jan. 2017
Offline
jsmack
That's not what Alembic is for.

Hi jsmack,

How would you then import e.g. props (from a model database where the geo is stored as alembic) into a set in Houdini and move the props around and still be able to update the geometry in case it gets revised?

I'm not arguing with you in any way, just trying to figure this out as I really wish to see us use Houdini for particular work.

We have a model database which we use heavily to produce archviz stills and product visualization. I'm exploring the possibility to use Houdini for this type of work. Our current Maya workflow entails loading alembic files which I can very easily modify after they have been read into the scene. The model can then be revised and updated with e.g. translations on transforms intact. This offers a straight forward and easy to work with workflow.

jsmack
That said, there's nothing stopping you from inserting a null object between Alembic transform nodes.

Ah yes. But then that would make it difficult to update the alembic model with a revised version, I'm guessing. I'm required to perform such modifications outside of the alembic hierarchy because of this.

I'm grateful for any other ideas or tips on how to achieve a similar approach in Houdini.

Cheers,
Fredrik
Edited by fredrikaverpil - March 31, 2017 03:49:30
User Avatar
Member
14 posts
Joined: Jan. 2017
Offline
Here's a concrete example. I'm now loading the abc via the “file” SOP (with “Packed disk primitive” enabled) instead of the “alembic” SOP. I can unpack and grab geometry but not transforms. The transforms are simply not visible. Any way I can get around this and grab the transforms?
Edited by fredrikaverpil - March 31, 2017 03:48:19

Attachments:
screenshot.png (1.4 MB)

User Avatar
Member
14 posts
Joined: Jan. 2017
Offline
If I instead use the “alembic” node, I can actually see the transform nodes in the spreadsheet but I cannot grab them (via path) from e.g. a “transform” node. It's as if Houdini doesn't recognize the alembic transform nodes. But if I attempt to grab all the geometry nodes under such a transform, Houdini does this nicely.

The pivot of the chair's wheel group (alembic transform) is carefully placed so that the wheel will turn naturally. It would be very useful to just be able to pick this transform rather than the underlying geometries before rotating the wheel. If this abc is read into Maya, the wheel's transform exists and its pivot is read in properly to allow for a natural rotation of the wheel.

Does anyone know if I'm just missing a detail here, or if this is simply not possible to achieve in Houdini?
Edited by fredrikaverpil - March 31, 2017 04:52:06

Attachments:
01.png (722.4 KB)
02.png (2.5 MB)

User Avatar
Member
7803 posts
Joined: Sept. 2011
Offline
Have you tried the Alembic Archive object node?

It has the option to build out the hierarchy with all the transforms instantiated as nodes. Using “Import Alembic…”
from the File menu will use this method.

Creating a rudimentary ‘prop rig’ can be achieved simply with transforms inserted between groups/shapes and alembic transform nodes. The Subnet or Null object is used to apply a transform to its children.

The Alembic SOP will load a flattened hierarchy, or a single shape node's geometry.

Attachments:
alembic_xform.JPG (100.0 KB)

User Avatar
Member
14 posts
Joined: Jan. 2017
Offline
Hi again jsmack,

Yes. I tried this. That's not a desired approach as I need to be able to update the alembic file. Whenever I do so, the nodes I've created will disappear.

Therefore it would be much more desirable to somehow “grab” the transforms via a @path expression (which can't be done, it seems) outside of the alembic hierarchy.

Imagine you're telling your entire studio to use Houdini to assemble models and stage a scene from now on. How would you go about getting models into Houdini and then move them into place - including adjusting individual parts of a model (read; alembic file)?
  • Quick Links