alembic test

281 views
Skip to first unread message

matt estela

unread,
Apr 4, 2014, 1:47:02 AM4/4/14
to maya...@googlegroups.com
RIGHT, LETS DO THIS.

Maya binary scene of just the heavy model in question and camera and shaders, 103mb.

Anim range is 167 - 330, total of 163 frames.

Pipeline cache -> Alembic cache -> Export all to alembic.

Export time is 7 seconds, wow. Abc file is 42.1mb.

File -> new
Pipeline cache -> Alembic cache -> Import alembic.

Import time is 15 seconds, not bad, and to my surprise brought in not just geo, but the camera and its parent locators,  placeholder locators on the rig I'd included by accident, and nurbs curves used for the rig.

Maya binary scene with alembic import is 83mb, odd, I though that'd be tiny, as it looks like all the shapes still maintain a connection to an alembic node.

Playback is very fast, feels like its done what Stefan said it would; that its been clever enough to recognise that the shapes aren't deforming, so has just recorded their transforms.

I'd still have to re-connect all my shaders though, boooriiiiing.

Still, I'd call that a successful test. Happy now Stefan?  ;)

-matt

Mike Thomson

unread,
Apr 4, 2014, 2:24:34 AM4/4/14
to maya...@googlegroups.com
Hi Matt,

you can have a fully shaded model in your render scene, just the mesh - no rig. When you import the alembic cache from your animation scene, it will apply the transforms/deformations onto your shaded model - no relinking necessary.


-Mike





--
You received this message because you are subscribed to the Google Groups "maya_he3d" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

matt estela

unread,
Apr 4, 2014, 2:28:41 AM4/4/14
to maya...@googlegroups.com
Ah neat, thanks for the tip!

Kiryha Krysko

unread,
Apr 4, 2014, 5:19:40 AM4/4/14
to maya...@googlegroups.com
Hello, Mike!
This could be very helpful, but i cant get it to work like you describe.

I have character mesh in render file. I have same mesh(same hierarcity and names) in animation file with rig. 
- Export selected mesh from animation file(through abc)
- Import it in render file 
and i have one more character mesh instead of getting just animation.

I`m doing (or understanding) something wrong?
 

Mike Thomson

unread,
Apr 4, 2014, 6:03:36 AM4/4/14
to maya...@googlegroups.com
Hi Kiryha,

The name spaces and heirarchy of the mesh group need to be identical in the anim scene and the render scene.

Anim_scene:
CHAR1:rig_GRP
CHAR1:anim_ctrls_GRP
CHAR1:mesh_GRP              <----------- select this group and it's heirarchy (select -hi) and export alembic
CHAR1:mesh1
CHAR1:mesh2
CHAR1:mesh3
CHAR1:mesh4


Render_scene
CHAR1:mesh_GRP          <-------- In your render scene, select this group and import alembic
CHAR1:mesh1
CHAR1:mesh2
CHAR1:mesh3
CHAR1:mesh4


Here are the setting we used:
Inline image 2



--

Fredrik Averpil

unread,
Apr 4, 2014, 6:45:46 AM4/4/14
to maya...@googlegroups.com
Hey Matt, Mike and Stefan,

This is great info. Thanks for sharing and for taking your time the time to try this out.

I'm still on paternity leave but while out strolling, I'm thinking of changing our vray proxy workflow at work. Apparantly, you can make the vray proxy node point at an .abc file instead of a .vrmesh. The reason for doing this would be to have access to scene structure and data in the .abc file, which can be just opened up in Maya, tweaked and re-saved. Something we are in dire need of.
Since shaders are lost at .abc export, I'm thinking I'll have to write a shader exporter and re-assigner, which I'm playing around with here: https://gist.github.com/fredrikaverpil/9970710

However, how would one go about recording, exporting and re-applying any extra attributes such as V-Ray's "object properties node" which may be connected to shapes or meshes?
Any ideas?
Maybe it's a topic for the Maya-Python list, but I figured I'd join this thread first to see if you have any suggestions.

// Fredrik



Kiryha Krysko

unread,
Apr 4, 2014, 6:52:41 AM4/4/14
to maya...@googlegroups.com
Thanks, Mike, import options did the trick. Also i found proper chapter in docs :)

Mike Thomson

unread,
Apr 4, 2014, 6:59:28 AM4/4/14
to maya...@googlegroups.com
Argh - I just realised that the docs link was the generic home page (I was not inferring RTFM!)

I meant to link to this page:
Inline image 1

matt estela

unread,
Apr 4, 2014, 7:08:01 AM4/4/14
to maya...@googlegroups.com
That's pretty cool.

I suppose that'd take care of Frank's question too; all render related properties, vray attrs etc would reside on the surfacing mesh, alembic is just connecting to the inMesh attribute of the shape.

Fredrik Averpil

unread,
Apr 4, 2014, 7:57:09 AM4/4/14
to maya...@googlegroups.com

I suppose that'd take care of Frank's question too; all render related properties, vray attrs etc would reside on the surfacing mesh, alembic is just connecting to the inMesh attribute of the shape.

Well, not really, as we use vray proxies for stuff like foliage, trees or neighborhoods made out of sets of house modules. Also, making things into proxies makes it possible to view an asset as a bounding box, which also reduces memory and makes the viewport manageable in enormous scenes.

Basically, I wish to take an .abc and re-construct it into the original model with attrs, connections and shaders intact. If at all possible.

// Fredrik



Fredrik Averpil

unread,
Apr 4, 2014, 7:58:40 AM4/4/14
to maya...@googlegroups.com



If at all possible.


Correction; I know it's possible ... but I don't know if it's plausible. Maybe we should just store the original .ma next to the proxy ;)

matt estela

unread,
Apr 4, 2014, 8:08:29 AM4/4/14
to maya...@googlegroups.com
Hmm. Might've written about this here before, but I've seen systems that record material->object and attr->object connections into xml or json, and that's saved as part of the surfacing asset when its checked in. when the asset is loaded into a lighting scene, the file is read to restore those connections. Works, but in this gaffer/katana world we're moving towards, all feels a little hacky.

Does any of the new scene assembly stuff in maya deal with this issue? You're right, you totally don't want to be carting around surfacing meshes as your scene complexity ramps up.




On 4 April 2014 22:58, Fredrik Averpil <fredrik...@gmail.com> wrote:



If at all possible.


Correction; I know it's possible ... but I don't know if it's plausible. Maybe we should just store the original .ma next to the proxy ;)

--

Stefan Andersson

unread,
Apr 4, 2014, 9:06:33 AM4/4/14
to maya...@googlegroups.com
yes, I'm happy :)

And here is another little tip. You can actually reference in alembic files, very handy.

Still on a shoot, will report back later.

regards
stefan



--
You received this message because you are subscribed to the Google Groups "maya_he3d" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Stefan Andersson | Digital Janitor
social media -> "sanders3d"

Sid

unread,
Apr 4, 2014, 9:16:28 AM4/4/14
to maya...@googlegroups.com
Was gonna say the same thing. This should reduce the size of the maya file, too. 

Ryan O'Phelan

unread,
Apr 4, 2014, 9:18:53 AM4/4/14
to maya...@googlegroups.com

We use a system like this that reconnects referenced shaders.  But it seems the best solution is to keep shaders in the lighting pipeline. Maybe I'm missing something,  but if all lighting is done with an alembic,  then you don't need to transfer shading properties. That's how we work anyway.

If I remember correctly,  once you convert assets into proxies(alembic or vray mesh) ,  you must use a proxy shader with slots for shaders.  This forces us to do the lighting pipeline before converting to proxy. Which kind of breaks the system,  but only in the last step. 

R

matt estela

unread,
Apr 4, 2014, 9:18:47 AM4/4/14
to maya...@googlegroups.com
neato, will give that a shot next time i need it. 

incidentally, was surprised to hear max doesn't include an alembic reader; they have to buy it from exocortex for $400. I'm sure their product is great, but still, why free for maya and not for max? Maybe for the same reason max get's unlimited mentalray render nodes and maya doesn't? hmm.

Ryan O'Phelan

unread,
Apr 4, 2014, 9:55:17 AM4/4/14
to maya...@googlegroups.com

We briefly used referenced alembic,  but updating them almost always broke the lighting file.  It's more stable to import alembics into a maya file and then reference that.

Roy Nieterau

unread,
Apr 4, 2014, 6:02:18 PM4/4/14
to maya...@googlegroups.com
Could you explain a bit about what got broken in the lighting file? We were thinking going for direct references as well, but used the maya referenced scene up till now.

If names, hierarchies and namespaces don't change it's nothing that should really break the reference edits. On the other hand, it's maya. ;)

By the way we use an exported JSON file for shader relations and a Maya binary file for the shaders. Once we have the alembic imported we can auto-assign shaders based on 'objectID' attributes we have on all objects. But stuff like renderable curve properties or vray attributes don't come through yet. It's hard to figure out a nice structure in the JSON file to support shader relations, custom shapes attributes and such. Since this is something many studios are doing on their own we could set up some sort of 'standard' and make an open source implementation with pre and post export/import hooks to support multiple pipelines. Most important point would be something lightweight that doesn't enforce a certain workflow.

Mark Serena

unread,
Apr 4, 2014, 7:11:50 PM4/4/14
to Roy Nieterau, maya...@googlegroups.com
I have made a simple exporters for materials, lights, layers etc using XML and found it worked adequately,  never tested json, have you tested the difference? Is it for speed? Or something different?
I noticed mental core does an export using just a separate Maya ASCII file for connecting up render time proxies.
Would that help keep all those connections since you don't leave the Maya environment?

Ryan O'Phelan

unread,
Apr 4, 2014, 8:55:52 PM4/4/14
to maya...@googlegroups.com

I always end up writing to this group when I'm commuting,  and not near a workstation. Grrr .

I think the lighting files break when the alembic gets updated from a different start frame or when geometry that wasn't deforming before was updated to deform. Some objects come in in the wrong place. It should work just fine in theory,  but we always ran into broken lighting files when referencing. 

As a solution,  we just made the creation of a maya file as a subprocess of the caching script.  So it's invisible to the user,  and creates an archive as well.

Here's another conversation about the same kind of issues with referenced alembics.

http://forums.cgsociety.org/archive/index.php/t-1057828.html

R

Roy Nieterau

unread,
Apr 5, 2014, 6:47:25 AM4/5/14
to maya...@googlegroups.com
Exporting Data @Mark
XML or JSON is just a data format which should support similar data structures in general. The speed difference between Python 2.6 and 2.7 for JSON was pretty huge as the latter started using more C based implementations of the algorithm. In general I found setting up exports to JSON easier to do because it had me writing less code in general, but I think I just never dove that deep into XML and Python. If you're willing to share the workflow it would be cool how things like these could merge. It should be possible to define a data structure standard for 'connections' and 'attributes' on so called 'nodes' that could either be stored in XML or JSON. Taking the abstraction too far can make it harder to start with the implementation and actually getting somewhere. But I really think once there's a foundation that everyone can use we can start to smooth this out a lot better in the long run! (And hey, working together is fun right?)

Breaking alembic refs @gozirra
I think the post you linked to was using Maya 2013's default abcImport and abcExport which didn't have the MPxFileTranslator implementation that actually allowed you to reference the alembic file. So the way they were referring to reference, at least I assume, wasn't actually about Maya's referencing system but the way the connections is persistent with the alembic file in the scene which I've seen to be problematic from time to time as well. Since Maya 2014 you should be able to do Create Reference and link up the alembic directly. If it's using the MPxFileTranslator correctly then it should be so that every change you make becomes a 'reference edit' which is stored based on object's unique name so is mostly dependent on names and hierarchies.

Note that if you apply changes to a shape that is referenced and you go back to that referenced scene file and add a deformer it might be that Maya will rename the old shape to something with Orig or something in the name and creates a new one ending with DeformedShape. Again, because reference edits are based on names in the scene this would break the reference edits in both scenarios. (Even with normal maya references).

This is just an assumption based on how I've learned that Maya works, but I do believe it's possible the referencing behaviour of Alembics since 2014 and up still doesn't work correctly in just the Maya way.

David Johnson

unread,
Apr 5, 2014, 9:00:06 AM4/5/14
to maya...@googlegroups.com
On 5/04/2014 9:47 PM, Roy Nieterau wrote:
> Note that if you apply changes to a shape that is referenced and you
> go back to that referenced scene file and add a deformer it might be
> that Maya will rename the old shape to something with Orig or
> something in the name and creates a new one ending with DeformedShape.
> Again, because reference edits are based on names in the scene this
> would break the reference edits in both scenarios. (Even with normal
> maya references).

This is one of those frustrating maya inconsistencies. Adding a deformer
to a referenced mesh will turn your referenced shapeNode to an
intermediate object and add the deformer after that, feeding the result
into a new shapeDeformed node, unless -- and this is the bit I find
strange -- unless that referenced mesh already has an outMesh or
worldMesh connection. If a connection out of either of those attrs
exists then the deformer will be inserted before the shapeNode, just
like in a regular non-referenced mesh, and no shapeDeformed is created.
So if I'm adding a deformer to a referenced mesh I always use a script
that creates a temporary dummy mesh and does an outMesh >> inMesh
connection, then blows it all away afterwards.

David

David Johnson

unread,
Apr 5, 2014, 11:31:45 AM4/5/14
to maya...@googlegroups.com
As well as maya_he3d I'm also on the 3dPro list. I have no idea of the
numbers of members on each list, but I started thinking about how musc
more useful I find the maya_he3d posts as a source of specific maya
technical knowledge and expertise even though I'm guessing we have far
fewer members than 3dPro, where there must also a high level of
knowledge and experience. The discussions at 3dPro tend to mostly
express general, almost gossipy grumblings from the wider vfx industry,
combined with large doses of anything-goes-friday type posts. This is
well and good and often very entertaining, but for me it usually lacks
the kind of focused information that I read here on maya_he3d.

So the questions that came to mind are:

What do we think about encouraging more people to join our list by
drawing attention to it on 3dPro (and maybe elsewhere) in the hope of
increasing the numbers of like-minded experts contributing here?

Are we happy with how things have evolved/are evolving?

Would actively seeking new members spoil the equilibrium?

David

Anthony Rosbottom

unread,
Apr 5, 2014, 1:09:44 PM4/5/14
to maya...@googlegroups.com
I don't use maya at the moment (I used to but my focus went elsewhere). But I am a member of both lists and it would suit me if more maya discussion was shifted from 3d-pro to this list ;)

I don't think a bit of promotion for this list would hurt anything




David

--
You received this message because you are subscribed to the Google Groups "maya_he3d" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Cheers,

Anthony Rosbottom

art portfolio : www.anthonyrosbottom.com
sketch blog : www.anthony-rosbottom.blogspot.com

matt estela

unread,
Apr 5, 2014, 5:47:38 PM4/5/14
to maya...@googlegroups.com
I've mentioned this list on 3dpro maybe 2 or 3 years ago, can't hurt to mention it again. 

If it gets too noisy we can always kick some of the noisier members. (I recall somewhere on the google groups interface being able to sort users by number of posts, I was out in front by a silly margin)

To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.

Ryan O'Phelan

unread,
Apr 5, 2014, 8:47:57 PM4/5/14
to maya...@googlegroups.com

Roy,  I hadn't heard of the MPxFileTranslator .  I'll look it up.  So maybe the reference issue is fixed in 2014? I'll have e to give it a other try!  Thanks!

R

--

Milos Vukotic

unread,
Apr 6, 2014, 7:17:36 AM4/6/14
to maya...@googlegroups.com
I say it's a good idea definitely...more members = more info = more solutions = useful for us all.
As simple as that.

Fredrik Averpil

unread,
Apr 6, 2014, 12:29:33 PM4/6/14
to maya...@googlegroups.com
Yeah, why not. I think more, preferable senior-ish, members would only make this list even better!

I also see this list as the go to tech list (for Maya) while 3DPRO is more discussion focused.

// F

Nicolas Combecave

unread,
Apr 6, 2014, 1:24:05 PM4/6/14
to maya...@googlegroups.com
By the way, anyone knows how to get an invitation for the 3dPro list?

Nicolas

matt estela

unread,
Apr 6, 2014, 5:37:06 PM4/6/14
to maya...@googlegroups.com
Cool, I've emailed the list maintainer it's cool to do a little promo, seems the polite thing to do. 

Kiryha Krysko

unread,
Apr 7, 2014, 11:17:27 AM4/7/14
to maya...@googlegroups.com
I have character with a lot of separate meshes. Some parts rigged with skin, some of them just linked to joints with parent constrain.

When i import animation in scene with character everything looks fine.
Save and reopen file- animation breaks on constrained parts, deforming objects stay working fine.

Is there any way out? 



peter shipkov

unread,
Apr 7, 2014, 5:35:56 PM4/7/14
to maya...@googlegroups.com
make sure the pivots of the constrained objects match the pivots of their drivers.


matt estela

unread,
Apr 7, 2014, 7:41:36 PM4/7/14
to maya...@googlegroups.com
He's not comfortable with a promo, fair enough, it's his list.

Take it to the streets then? I'll put a reminder on my wiki(s), djx, maybe something on your blog, other folk mention it at your respective studios (which I'm sure you've done already), facebook/google+/twitter?




matt estela

unread,
Apr 7, 2014, 7:42:31 PM4/7/14
to maya...@googlegroups.com
Ha, literally the SECOND I posted that, he did a nice promo to 3dpro. :)

Probably worth a street promo anyways. 

Roy Nieterau

unread,
Apr 8, 2014, 6:04:19 AM4/8/14
to maya...@googlegroups.com
If anyone is discussing about developing some kind of 'shader-relations' industry standard data format feel free to add me on Skype (handle: colorbleed).
Then maybe we can have a chat about what could be possible to make this Alembic pipeline smoother/easier overall for everyone. :)
Also let me know if there's already something out in the open that is 'supposed' to be the standard for exactly this.

-R

daflowlist

unread,
Apr 8, 2014, 7:27:50 AM4/8/14
to maya...@googlegroups.com
I am too interested in an invitation for 3dpro. If anybody knows how i would be thankful.
FLo

David Johnson

unread,
Apr 8, 2014, 10:07:25 AM4/8/14
to maya...@googlegroups.com
Yeah. Funny. A good many of the posts on that list are promos of some sort. They even have a tag for it...  PLUG:
Oh well. Thanks for asking Matt.
I'm sure Zero means well, but sometimes I think he gets a bit precious about his list. But, as he often reminds us, its a private list, so its his prerogative to call it how he sees it.

@ Roy:
I have to apologize for somehow derailing your thread with this stuff. I'm not sure how my post ended up stuck on the end like it did. Sorry 'bout that!


David
As simple as that.


To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Cheers,

Anthony Rosbottom

art portfolio : www.anthonyrosbottom.com
sketch blog : www.anthony-rosbottom.blogspot.com
--
You received this message because you are subscribed to the Google Groups "maya_he3d" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "maya_he3d" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maya_he3d+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You receive


Toke Jepsen

unread,
Apr 9, 2014, 6:59:07 PM4/9/14
to maya...@googlegroups.com
I wrote a script for dealing with alembics that I'm testing. Referencing the alembics and the shaded file, then either connecting directly the inMesh to the alembic or have a live blendshape.

Reply all
Reply to author
Forward
0 new messages