Maya Alembic import with Extra Attributes String

   22080   14   2
User Avatar
Member
104 posts
Joined: July 2005
Offline
Hello,

I'm currently working on some alembic caches and have exported these from maya with an added extra attribute (string).

It does not seem to be coming through when I read the cache in Houdini.

Has anyone had any experience with this?

Thanks!
User Avatar
Member
18 posts
Joined: Aug. 2013
Offline
I have the same problem, model exported with a custom string attribute via alembic in maya, and when importing again with maya, the attribute is there, however, importing with houdini, there is no such attribute

maya can read custom string attribute exported from houdini via alembic only if the attribute is set to detail and there is only one piece of geometry, namely if the exported alembic have more than one packed geometry, then the string attribute won't export. This is what i experienced lately.
User Avatar
Staff
2641 posts
Joined: July 2005
Offline
zysnow
I have the same problem, model exported with a custom string attribute via alembic in maya, and when importing again with maya, the attribute is there, however, importing with houdini, there is no such attribute

maya can read custom string attribute exported from houdini via alembic only if the attribute is set to detail and there is only one piece of geometry, namely if the exported alembic have more than one packed geometry, then the string attribute won't export. This is what i experienced lately.

If the string attribute is on an IXform (Alembic Xform) node, Houdini doesn't bring these in as packed primitives, so there's no place to store the string.

You can access the string using the Alembic HOM Python extensions: alembicUserProperty() or alembicArbGeometry() (depending on whether the string is stored as geometry on the transform or as a user property).

If this isn't the case you're running into, please submit a bug with a simple .abc file.
User Avatar
Member
1773 posts
Joined: Dec. 2006
Offline
make sure you add attribs to the shape node in maya, then in the abc export window add those attribs at the Attribute Prefix section
daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
User Avatar
Member
18 posts
Joined: Aug. 2013
Offline
buki
make sure you add attribs to the shape node in maya, then in the abc export window add those attribs at the Attribute Prefix section

Thanks, adding attribs to the shape node works via both attribute and attribute Prefix section.

But how to export those attribs back to maya via alembic in houdini?
When export from houdini i have to export packed primitives otherwise the imported file in maya result in a single piece, or am i missing something when exporting?

If i export as packed primitives, when reading in maya, it get a // Warning: Skipping indexed or non-array property: name //
what does non-array property mean?
User Avatar
Member
104 posts
Joined: July 2005
Offline
In H13 - exporting Alembics with Primitive Attributes and Detail attributes worked well. H14 came along and added some features and it seems more efficient…

However, in H14 - it seems that I need to unpack the alembic and then I can only apply DETAIL attributes… which does not help if I need that detail attribute to be different for each prim.

In H14, applying attributes to alembic caches - regardless of whether they are detail or primitive or point, they don't seem to come through to Maya anymore…

Anyone get around this? Is there a new way to add prim attributes in H14??

Thanks!
User Avatar
Member
104 posts
Joined: July 2005
Offline
Hello,

Trying this again .. except trying to read these attributes in Maya 2014…

Exported the alembic out of Houdini with attributes attached to the object (detail) so to have it show up in Maya in the master/parent transform.

This does not seem to stick for some reason.

When reading it back into Houdini and using the HOM extension to read those attributes I get this:

(, True, ‘unknown’)

expecting this:

(, True, ‘constant’)

Any thoughts would be appreciated!


I'm Using Houdini 14.0.335
User Avatar
Member
818 posts
Joined: Sept. 2013
Offline
Try exporting the Alembic from the attached hip file. After exporting the alembic file, running the Python HOM extension in Houdini shows:
import _alembic_hom_extensions as abc
>>> abc.alembicArbGeometry(“/tmp/houdini.abc”, “sphere/attribcreate1”, “test_detail”, 0)
(, True, ‘constant’)
>>> abc.alembicArbGeometry(“/tmp/houdini.abc”, “sphere/attribcreate1”, “test_prim”, 0)
(, True, ‘uniform’)


When I imported the Alembic file into Maya, I also see the detail and primitive attributes created on the shape node. Running the getAttr commands shows:
getAttr attribcreate1.test_detail;
// Result: this is detail //
getAttr attribcreate1.test_prim;
// Result: prim 0 prim 1 prim 2 prim 3 prim 4 prim 5 prim 6 prim 7 prim 8 prim 9 prim 10 prim 11 prim 12 prim 13 prim 14 prim 15 //

Attachments:
export_abc.hip (57.3 KB)

Andrew / アンドリュー
User Avatar
Member
22 posts
Joined: June 2013
Offline
I've installed H15 now and when the release said

“User properties on Alembic hierarchies now import and export as custom parameters on nodes or attributes on packed primitives”

I thought it would solve my problem but I'm still having difficulty getting this to work.

I have a sphere in the attached maya file (maya 2014 v2.40.01) - if you want to recreate it's just a polysphere under two transform nodes (parent -> sphere -> pSphere1 -> pSphereShape1) I've also attached the alembic archive as a zip file (since .abc files aren't allowed extensions for attachments).

On the top transform node (parent) I've added an extra attribute (string) called shaderPath (set to “MYPATH”)

On the shape node, I have another extra attribute (string) called shaderTag (set to “MYTAG”)

I save the alembic file out of maya and bring it into houdini. If I set the pShpereShape1 alembic node to load houdini geometry I can see the shaderTag attribute and its value comes through just fine (and this worked fine in H14).

I can not find the shaderPath attribute at all. Isn't it now supposed to appear as a custom parameter on a node somewhere?

If I open a python shell and run:
print abc.alembicArbGeometry('testsphere.abc', “parent”, “shaderPath”, 0)

I get:
(, True, ‘constant’)

So I know the alembic archive has that information contained within it.


Is there a process by which I can gain access to the shaderPath attribute in houdini, and then write the sphere back out as an alembic so that when imported back into Maya it has those user properties and values as they were originally?


Any help would be greatly appreciated.

Todd

Attachments:
testsphere2.zip (6.6 KB)
alembic_sphere.mb (93.8 KB)

______________________
Todd Boyce
User Avatar
Member
85 posts
Joined: Aug. 2010
Offline
i recently had a thread with a similar issue
https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=42090&highlight=detail [sidefx.com]

as a temp solution:

unpack the geo

attributes on the transform in maya come through as detail attrs
attributes on the shape come through as primitive attrs

you can get to these without unpacking with stylesheets
Sam Swift-Glasman
Art Director
Five AI
User Avatar
Member
22 posts
Joined: June 2013
Offline
Strange, I'm not finding that to be the case.

When I unpack the geo using the unpack sop, the attributes on the shape come through as detail attributes and no attributes on the transform come through at all. I also find that the path attribute doesn't get transferred to the geometry.

If I use Load Houdini Geometry on the alembic node, it puts a path attribute and the attribute on the shape node as primitive attributes.

At the moment I much prefer the Load Houdini Geometry option since I need that path attribute for exporting multiple objects back to Maya, and I can use it to separate the various objects within houdini.
______________________
Todd Boyce
User Avatar
Member
85 posts
Joined: Aug. 2010
Offline
ok strange - i will double check and see how i got that behaviour

get back shorlty
Sam Swift-Glasman
Art Director
Five AI
User Avatar
Member
2 posts
Joined: April 2016
Offline
Hi,

We have a situation where we need to export a Geometry, let's say an Sphere as Alembic and then Import that Alembic into Maya.
What we need is a to create 3 Attributes with specific values which when imported into maya should appear on the transform node instead of the shape node.
We need An String attribute, a Float3 attribute and a Boolean.

It is a very important part of our pipeline and we really need to solve this issue quickly. Does anyone know how we can achieve this?
We are using Maya 2018 and Houdini FX 16.5.439

Thanks
User Avatar
Member
24 posts
Joined: July 2018
Offline
Heya,

I'm having the same issue. 'string' type attributes on shape nodes don't come thru to Houdini. Can't get it to work on Transforms either. No problem getting an 'integer' attribute to come thru.

I'm using Houdini 18.5.696 and Maya 2022, also tried with Maya 2020

I downloaded and TBoyce's ABC and MB files. His alembic imported into Houdini fine with Attribute intact. Interestingly I tried to bring the ABC into maya and get
// Error: C:/Users/morga/Desktop/testsphere2.abc is not a valid Alembic file //

I also tried exporting from his Maya file, I added the Attribute Name to Maya's Alembic Export Attributes. Comes into Houdini like my own tests with the Attribute.

Any insight into this would be great.

Cheers,
Morgan
User Avatar
Member
24 posts
Joined: July 2018
Offline
Nevermind. I went back to Maya 2020 and tried again and it's working now. If I figure out what changed from the first time I posted I'll add the info here.
  • Quick Links