Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


First Anniversary100 CommentsName Dropper10 CommentsFirst CommentPhotogenic

Ahmidou ✭✭


Last Active
No Roles
  • Re: Hybride Technologies: The Visual Effects of Warcraft - Creating the Horde

    Here's an overview of our rigging pipeline and more.

    We were receiving skinned characters from ILM, but there was no rig, just a hierarchy and a few hundred of deformers.
    We needed the exact same performance and deformation quality including muscles and skin sliding (bone based) minus the facial and flesh/skin simulation.
    So @EricT and I had to reverse engineer the ILM rig based on a baked animation of the bones they sent us to recreate the different solvers.
    We also added a basic dynamic solver for the braids and beards with capsule collision, and a fur/hair generator, and a wire + cage deformer for the belts.

    The actual challenge was that we were receiving updates of the 81 characters on a regular basis almost until the end of the production :)
    So we needed a pipeline that would allow us to easily do incremental changes:
    -The system was very close the first Kraken incarnation at that time
    based on python components and an aggregator/builder but no UI.
    -The base components could be inherited from, and modified per character.
    Imagine it as an override system which allows us to quickly update rigs on every

    That would generate a rig in Softimage with Fabric Splice operators all over the place to drive it.
    We needed Horde, the crowd system to be able to read those rigs so we exported them as a binary file for the geometries, hierarchies, and skinning and a json file
    referring the solvers from the extensions, describing the relationships, plus some extra data like the materials assignation.

    We initially used FBX for the binary file but as we needed the hair guides, density maps ect... to be stored too, we moved to Alembic that we extended to store skinning data (plus it's way easier to manage than a black boxed format).

    The builder was taking care of creating multiple resolutions of the meshes that could be switched to when simulating the crowds.

    The agent positions, and some extra attributes like the look-at were simulated in ICE and sent to Horde which was taking care of the feet locking.
    The scenes were just some ICE trees some locators and properties, everything else was in Fabric Engine.

    Finally we had an Arnold procedural that would get the data from Fabric and directly render in Softimage including the render region.

    It's been a while and this is all from the top of my head, maybe @EricT and @MathieuLeclaire can add more details.

  • Re: Cpp Extension questions

    @AlexanderM, about your 1st question, you need to store your object in canvas variable by checking if you're at the 1st frame or if the object==null

  • Re: From PierPaulo Ciarravano: LarmorSound

    Pretty awesome, thanks Paul

  • Re: why does my code not affect the first array item?

    Hi @imding
    The first index in an array is zero, but your loop is starting at one.

  • Re: How to set far clipping plane in Canvas

    @seltzdesign you can update the clipping plane this way