Advanced 3D Workflow using Alembic

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hi Welcome, This short video is going to be an ultra-crash course in advanced CG production workflow using Alembic. We will export a simple model Hierarchy from Industry-standard Maya Animate it in Blender Add Procedural Geometry FX in Houdini and finally assemble the scene back in Maya, using Arnold Alembic standins leveraging alembic’s powerful feature called Layers. Effective exchange of the geometry and animation data between different 3d softwares can be tricky. I’m Gaurav Mathur, let's get started. So here we are in Maya. In its classic outliner, we can inspect the simple teapot model Hierarchy with Lid and Body. Pivots are in right place as well. The scene unit for length is centimeters. Let’s turn off the helper objects and we have uvs going on as well. Now to export this model for animating in blender. Select the teaPot go to Cache>Alembic>Export Selected Give it descriptive name teapot model.abc Let's just import it back to validate. Imports perfectly fine and the model hierarchy is as expected. Very simple. This is Blender. In the interest of time and simplicity, I have prepped a rather silly teaPot bouncing animation looping over 24 frames. An important point to note that there is no deformation just animating the transform controls available on parent and child objects. Let’s say this is animation needs to be handed over to FX so that we can add some procedural decimation to the teaPot model. Right-click on the teaPot select Hierarchy. go to file >Export Alembic. Let's give it a descriptive name. Check Start and End frames are 1 -24 and make sure selected objects are checked mark. So here we are in Houdini. If you are new to sop networks watching Part 2 of this video series is recommended. A Sample Houdini file is attached in the video description for your later reference. There are two ways of importing Alembic scenes. The first one is to use the Alembic Archive object to create an object-level hierarchy representing the Alembic scene. We can turn on the operator tree view to inspect it. The second is to use the Alembic SOP and load the entire scene into a single piece of geometry which is what we currently have here. At the Top, we have Alembic sop which is reading the alembic archive from the disk. Here we can choose to load the geometry as demand or delayed loaded Alembic primitive. What it means that the geometry loading is deferred until the rendering. As a result Alembic primitive uses very little memory and can be transformed but can’t be edited without converting it to Houdini Geometry representation. Alembic primitives store some special properties. These are called Intrinsic values in Houdini which are very similar to attributes, but are computed on-demand by Houdini rather than stored. We are going to be using packed transform prim intrinsic data to fetch the move, rotate and scale values from the exported archive. Transformation is encoded in a 4x4 Matrix. In this subnetwork, we are extracting it. This little code is fetching and inverting the full 4x4 transform matrix and storing it as an attribute on the primitive. Next, is the name sop creating a primitve attribute called “name” for lid and body. And promoting it from primitive to point. Next in the chain is where we are undoing the transform to send the teapot to the origin. Using the time shift node holding the frame 1 After that, we have transformby attribute using inverted transform matrix which was created in the wrangle node up in the chain. Further down is unpacking alembic primitive, converting to polygons and subdividing it. Moving down we are breaking the lid geometry using standard boolean fracture node. Giving lid and newly created faces some color. Deleting random pieces and packing the geometry at the end of the chain. The next chain is breaking the body using standard Voronoi fracture. Deleting the random pieces and packing the geometry at the end of the chain-like we did with the lid. This stream is keeping the teaPot clean as is. Further down we have a switch node allowing easy pick between clean and broken teaPot. Rightmost is deleting all the incoming alembic primitives keeping only the point representation. And finally, down here we are applying the transformation getting the original animation back. Copying transform Matrix attribute on the packed primitives and using transform by attribute. Using a clean sop at the end keeping only the path attribute for the hierarchy generation. Before we export the cache for Maya it needs to be scaled 100 times coz we are working in Meters inside Houdini and Maya scene defaults are in centimeters. At the end of the chain, we have 3 alembics rops. The first 2 rops have alembic layering turned on. With replace set as the type of layer. This particular rop is writing the body layer. In the hierarchy tab we have build hierarchy from path attribute turned on. Packed transform is set to merge with parent. In the layering tab we have it turned on keeping the full path to the bodyShape with layer operation type is set to replace. This rop is doing exactly the same for the lidShape layer. For the last Alembic Rop we need to pick the cleanTeaPot. Layering is disabled and other checkboxes are the same as above We are back in Maya. To assemble the scene using Arnold Alembic Standin. Let’s go to Arnold menu and drop in a standin. Point the file path to the original TeaPot animation cache. Change the viewport draw mode to shaded view. Turn on the use file sequence and we can see the teaPot updating in the viewport. We can also inspect the hierarchy in the file contents outliner. Further down we have an area for adding Arnold operators. Operators allow users to modify any part of the Arnold scene at render time. We will cover more on operators in upcoming videos. For now, lets scroll up and to layers section of the alembic settings. Hit add a layer, select lidLayer.abc to replace the lid with the broken one. We can add another layer which replaces the body with broken model. As a result we have broken teapot animating. A point to remember Operations that a layer perform is encoded in the alambic itself at the time of exporting. We chose to have the “replace” option on while exporting from Houdini. Geometry attributes can be read directly by arnold. Graph the shader, and pipe in aiuserdata color to the base color name it Cd Throw in a light and hit render. We can turn on the motion blur and bump up the samples to get a cleaner result. And that’s pretty much it. Hope you have learnt something new. Do provide your feedback in the comments section and don’t forget to share this video with someone who think can benefit from it. Thanks for watching until next time...
Info
Channel: VFX Academy
Views: 16,188
Rating: undefined out of 5
Keywords: Alembic, Houdini, Maya, C4D, CG, Pipeline, Crash Course, Blender, Packed Primitive
Id: hkmp5c4aF10
Channel Id: undefined
Length: 8min 35sec (515 seconds)
Published: Sat Feb 13 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.