Hybride Technologies: The Visual Effects of Warcraft - Creating the Horde

ILM posted a video about how we created the crowds. Hybride's contribution can be seen at about 3:30 into the video :

Comments

  • borjaborja Administrator, Fabric Employee Posts: 400 admin

    Thanks for sharing!

    Borja Morales
    Technical Product Manager
    Fabric Software Inc.

  • Daniele NieroDaniele Niero Posts: 197 ✭✭

    Nice.
    I want to know more! :)

  • AhmidouAhmidou Posts: 136 ✭✭

    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
    iteration.

    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.

  • Gustavo BoehsGustavo Boehs Posts: 40 ✭✭

    @Ahmidou said:
    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.

    This is insane! Congratulations for the great work, and thanks for sharing the details.

  • EricTEricT Administrator, Moderator, Fabric Employee Posts: 269 admin

    @Ahmidou covered it pretty well. The biggest feature in the system was the overrides IMO. We could add patches of fixes on top of what was defined in the rig build code which was huge when you get ever changing iterations of the source data. It's a model that I think has benefits outside of rigging. Similarities to what USD offers where you can apply overrides.

    Eric Thivierge
    Kraken Developer
    Kraken Rigging Framework

  • malbrechtmalbrecht Posts: 676 ✭✭✭

    Wow, thanks for this insight into the pain of production pipelines! I love seeing problems solved.

    And wow ... I really did not know that the Dollar allows for overrides! (Quote from EricT: "Similarities to what USD offers where you can apply overrides.")

    Marc


    Marc Albrecht - marc-albrecht.de - does things.

  • I can add a few numbers if you want :

    Lo-res agents weighted from 90K to 270K polygons.
    Hi-res agents weighted from 350K to 1M polygons.

    Agents had an average of 20K hair strands (some could go up to 300K hair strands)

    All agents totaled 1,048,989 texture files.

    Rigs had up to 250 deformers.

    5517 animation clips for Orcs.
    1025 animation clips for humans.

  • borjaborja Administrator, Fabric Employee Posts: 400 admin

    @malbrecht said:
    And wow ... I really did not know that the Dollar allows for overrides! (Quote from EricT: "Similarities to what USD offers where you can apply overrides.")

    From a SEO point of view, the choice of USD as a name was pretty bad :D

    Borja Morales
    Technical Product Manager
    Fabric Software Inc.

Sign In or Register to comment.