BASEFOUNT MIARMY™ for MAYA©
Name: BASEFOUNT MIARMY™
Current Version: V.5.5.RC15, release date: April 24th 2017
Miarmy™ (read My Army) is a plugin developed by Basefount running on Autodesk Maya built as a Human Logic Engine for Crowd Simulation, AI & Behavioural Animation, Character Physical Simulation and Rendering.
‘Autodesk Maya, commonly shortened to Maya© is a 3D computer Graphics Software that runs on Windows, MacOS and Linux, originally developed by Alias Systems Corporation (formerly Alias|Wavefront) and currently owned and developed by Autodesk, Inc. It is used to create interactive 3D applications, including video games, animated film, TV series, or visual effects.’i
Basefount is an animation, VFX technologies and software Development Company registered in Honk Kong. Company Statement: “We are a passionate team obsessed with animation, VFX technologies and software development. To simplify animation production and make the process fun is the coolest thing we can think of. This is not only our daily job but also our goal. We are always trying to free artists’ imagination and empower them with simple to use and yet powerful tools.”
Miarmy is most commonly used within the Game, Advertisement and Video Production Industries as well as in Cinematography. Some examples of recent products that have used Miarmy for creating Crowd FX are:
- War & Order (Camel Games)
- The Emoji Coming (Colorbleed)
- Independence Day: Resurgence (Scanline VFX)
- Batman vs. Superman
- The Walking Dead
- Lazer Team
- Marco Polo (NETFLIX)
The licensing model allows for various forms of use. For Academic and Personal use it allows for up to 100 agents to be render and it has no limitation on the amount of agents and functionality that can be simulated. For commercial licenses it offers different options according to time of use and size or location of the company and branches. Render nodes are unlimited for all license types.
Free Support Services, Q&A Technical Support and Customized development for clients is offered by Basefount.
Miarmy runs fully on the platform of Autodesk Maya, using all of its functionality and working as an add-on to the base program.
‘Maya© is an application used to generate 3D assets for use in film, television, game development and architecture. The software was initially released for the IRIX operating system. However, this support was discontinued in August 2008, when it was turned into a single suite.
Users define a virtual workspace (scene) to implement and edit media of a particular project. Scenes can be saved in a variety of formats, the default being .mb (Maya D). Maya exposes node graph architecture. Scene elements are node-based, each node having its own attributes and customization. As a result, the visual representation of a scene is based entirely on a network of interconnecting nodes, depending on each other’s information. For the convenience of viewing these networks, there is a dependency and a direct acyclic graph.
Maya® 2017 3D animation, modelling, simulation, and rendering software helps artists work faster with enhancements to existing workflows and new tools.
Since its consolidation from two distinct packages, Maya and later contain all the features of the now defunct Unlimited suites.
A realistic fluid simulator based on simplified, incompressible Navier–Stokes equations for simulating non-elastic fluids was added in Maya 4.5. It is effective for smoke, fire, clouds and explosions, as well as many thick fluid effects such as water, magma or mud.
Bifröst is a computational fluid dynamics framework based on fluid-implicit particle simulation. It is available in Maya 2015 and later, following the acquisition of Naiad fluid simulation technology from Exotic Matter. Bifröst allows liquids to be modelled realistically, including details such as foam, waves and droplets.
A dynamic cloth simulation tool set utilizing a planar pattern based workflow inspired by the process used to design real world garment patterns. In modern productions, the Maya Cloth module has been largely replaced by the faster, more flexible nCloth system introduced in version 8.5. Prior to this, third party plug-ins, most notably Syflex, were generally preferred for their superior performance, simulation stability and their polygon modelling based workflow already familiar to 3D artists.
Fur simulation designed for large area coverage of short hairs and hair-like materials. It can be used to simulate short fur-like objects, such as grass and carpet. In contrast to Maya Hair, the Fur module makes no attempt to prevent hair-to-hair collisions. Hairs are also incapable of reacting dynamically to physical forces on a per hair basis. Physics-like effects are achieved through nearby fur effectors that approximate the effect of physical forces averaged over nearby follicles.
nHair is a Hair simulator capable of simulating dynamic forces acting on long hair and per-hair collisions. The simulation utilizes NURBs curves as a base which is then used as strokes for Paint Effects brushes thereby giving the curves a render time surface-like representation that can interact with light and shadow. A simulation on the curves alone for other, non-hair purposes (such as flexible tubing, cables, ropes, etc.) is often known simply as Dynamic Curves.
A set of motion tracking tools for CG matching to clean plate footage. It has been largely obsoleted by MatchMover.
Added in version 8.5, nCloth is the first implementation of Maya Nucleus, Autodesk’s simulation framework. nCloth provides artist with detailed control of cloth and material simulations. Compared to its predecessor Maya Cloth, nCloth is a faster, more flexible and more robust simulation framework.
Added in version 2009, nParticle is an addendum to Maya Nucleus toolset. nParticle is for simulating a wide range of complex 3D effects, including liquids, clouds, smoke, spray, and dust. nParticles are more flexible than Maya’s previous particle system in that nParticles may be used to simulate viscous fluids as well as supporting true particle-to-particle collisions. nParticles also interact with the rest of the Nucleus simulation framework without the need for costly work-arounds and custom scripting.
Added to Maya 2010, this enables compositing of CGI elements with motion data from video and film sequences, a process known as match moving or camera tracking. This is an external program but is shipped with Maya.
Added to Maya 2010, this was earlier sold as Autodesk Toxik. This is an external program but is shipped with Maya.
Added in Autodesk Maya 2011, Camera Sequencer is used to lay out multiple camera shots and manage them in one animation sequence.’ii
MEL (Maya Embedded Language) is a proprietary scripting language modelled after Unix shell script.
Python is a recent addition to Maya that provides the same access to Maya’s commands as MEL. Python is a widely-used modern programming language.
Maya’s user interface is built using scripts that execute (call) Maya commands. As Python is a recent addition to Maya, the majority of the scripts accessed through the user interface are written in MEL.
Inverse kinematics and retargeting technology (HumanIK)
HumanIK® animation middleware is a runtime solution for creating believable, interactive character animation for games. HumanIK features full body inverse kinematics (FBIK) and real-time animation retargeting technology, enabling characters to interact realistically with their environment and other characters.
Arnold integrated with Maya
Use Arnold RenderView to view scene changes in real time, including lighting, materials, and camera.
Motion Graphics toolset
Quickly create complex procedural effects and animations with instanced objects.
Animation Time Editor in Maya
Make high-level animation edits with a non-destructive, clip-based, nonlinear editor.
Interactive hair grooming (XGen)
Intuitive brush-based grooming tools give you greater control and accuracy for styling and posing hair and fur.
Shape authoring workflow
Fine-tune your characters and animation more quickly and easily.
Quickly render and manage complex scenes. Generate templates for the setup of a shot for easy reuse.
Speed enhancements make your scenes even faster.
Create branding, flying logos, title sequences, and other projects that require text.
Improved vector graphics workflow
Import or copy and paste SVG files into Maya.
Parallel rig evaluation
New system speeds rig playback and manipulation.
Geodesic voxel binding
Produce high-quality, production-ready bound characters in less time.
General animation tools
Toolset for key-frame, procedural, and scripted animation.
ENHANCED | Symmetry modelling
Mirror enhancements and tool symmetry improvements make symmetrical modelling easier.
Revamped sculpting toolset
Sculpt and shape models more artistically and intuitively.
Efficient library enables faster, more consistent Boolean operations on polygon geometry.
Accelerate performance with interactive workflows.
Dynamics and effects
Deep adaptive fluid simulation
Simulate high-level details just where you need them with the new adaptive solver for Bifrost liquids.
Faster, easier-to-use XGen
Updated workflow, pre-sets, sculpting, and preview.
Adaptive aero solver in Bifrost
Create atmospheric effects such as smoke and mist.
Bifrost procedural effects platform
Simulate and render photorealistic liquids.
Create realistic rigid and soft-body simulations.
3D rendering and shading
Additional look development shading nodes
Shade complex scenes more easily.
Enhanced look development workflow
Sculpt and shape models more artistically and intuitively.
Efficient library enables faster, more consistent Boolean operations on polygon geometry.
ENHANCED | Next-gen Viewport display and shading
Work in a higher-fidelity, high-performance interactive environment to edit assets and images in less time.
Data and scene management tools
Manage large data sets and heavy scenes with specialized tools and workflows.
Scene Assembly tools for smarter data
Create large, complex worlds more easily, and manage production assets as discrete elements.’iii
Maya© affords much more functionality that allows for designing complex architectural form and simulating formal systems in a dynamic environment. The use of such tools has contributed to the general discourse of Parametricism.
The appeal of using Miarmy for simulating crowd effects is given by the extensive use of Maya© within architecture offices which rely heavily on innovative, freeform and generative architectural design, like:
- ZAHA HADID ARCHITECTS
- HEATHERWICK STUDIO
- ASYMPTOTE ARCHITECTURE
- MAD ARCHITECTS
… and many others
Miarmy’s core functionality allows for:
- Building Character Fuzzy Logic Networks without the need but with the possibility of programming or node connection operations;
- Supports standard production pipeline, reference, HumanIK and Motion Builder.
- PhysX integration: ragdoll, RBD emitters, force field, cloth, wind, fluid;
- Creating crowd VFX using Maya particles, field, fluid and transform;
- Support of all render engines that run with Maya.
- As an add-on, Miarmy has a range of specific crowd-modelling and crowd-simulation functionality as following:
- Independent (external) Rigging and Animations integration within the engine.
- Creating an infinite number of Original Agents with their own functionality as nodes within Maya
- An infinite amount of placement nodes (agents grouping and positioning)
- Action creation from pre-existing animations and rigs.
- Transition Maps (transition between different animation states
- Knowledge and Perception environment
- Solver Space
- 3D Path
- Bound Logics
- Spot Logics
- Force Fields
- Wind simulation
- Influence Zones
- Maya Attributes Integration
- Associative Formation Nodes
- ID management
- Logic and Decision Making
- Force Fields
- RBD Emitters
- Agent Matching
- Render with Mesh Drive 3.0
- Particle Emitters
4. MIARMY PIPELINE
The Miarmy Pipeline represents a three part operation in the setup, simulation and production of the CrowdFX within Maya. The first part is non-specific to any particular scenario and consists of building up a library of specific agents and a collection of actions, transition maps and story lists that will then be able to be enabled throughout the animation according to the behaviour build-up and desired scenario. The second part is built upon this library by contextualizing the available assets to the desired scenario parameters and testing them out in the scene window. This stage does not allow a live representation of the actual agent geometry and texture, it being an intermediate step that works with a series of simple geometry instances. Finally the production of the animation, the representation of this CrowdFX is made possible by rendering out the scene with any Maya supported renderers and post-producing the output video by compiling the rendered output into a single animation video.
4.1. ASSETS PIPELINE
Miarmy will use the Miarmy_Contents node setup to create instances for the desired agent population and all relations between all agents and all other contents of the Simulation. Miarmy_Contents node is a collection of all properties, relations and dependencies that can be created with Miarmy and can be found within Maya’s Outliner. The first step in setting up the simulation is to run Miarmy Ready! By accessing the command Miarmy Ready! (Fig.2.), Miarmy will create a node hierarchy that is displayed in the Outliner as Miarmy_Contents (Fig.3.). All commands can be found in the Miarmy Shelf Bar (Fig.1.) or in the Miarmy main menu bar on the top-right of the screen.
Original Agent (OA) file & Outliner
The Outliner shows a hierarchical list of all objects in the scene in outline form. You can expand and collapse the display of branches in the hierarchy; lower levels of the hierarchy are indented under higher levels. It’s one of two main scene management editors in Maya: the other is the Hypergraph.
The Outliner also displays objects that are normally hidden in the view panels, such as the default cameras, or nodes that don’t have geometry, such as shaders and materials. You can control which nodes appear in the Outliner using the items in its Display and Show menus:
In order to setup the Simulation, the first steps require the build-up of a library that can be instantiated within the simulation scene. The Library file is conventionally called Original Agent file. This is an interpretation and translation of various Character Rigs, their respective Geometry, actions, action transitions and other properties that constitute the base for agent types and their respective capacities. The Character Rig and Geometry can be modelled and setup within Maya or imported from a third party source.
The Original Agent (OA) file is used throughout the whole simulation process as an agent library and it is usually saved as an independent .ma file in the project folder, constituting assets for later use. The Original Agent file is the sum of all agent specific Miarmy information nodes that are structured within the Outliner as Agent_* node and can be edited by a series of attribute editor windows integrated through the plug-in as add-on to Maya’s available editors.
The first part of the process entails the setup of the OA file as an asset for later use. The first node in the Miarmy_Contents list is the Agent_* (Fig.3.), this is a collection of all sub-nodes that will define one agent type or social-type and all of its properties that are to be instantiated within the simulation scene. Miarmy uses the Setup_* node (Fig.4.) to read the Character Rig information needed to create the OriginalAgent node.
The Character Rig imported or created in Maya, needs to be parented under this Setup node for the creation of the OriginalAgent_*** node content (Fig.4.) Miarmy compiles an abstract representation of the agent under the OriginalAgent node, in the form of bounding boxes respective to the Character Rig bone structure and the Character as a whole. These Bounding Boxes are then used to instance the agent population in the simulation. This offers resources for a greater number of possible agents.
Miarmy will associate the geometry of the Character to the Agent by Sending Active Geometry to Original Agent. This command will make possible the instancing and rendering of this geometry (Fig.5.).
Miarmy will read any Character Rig Animation from the timeline and translate it into an action under the Action_*** node by using the Create Action command. This action can be performed in place or it can have a dynamic movement and all actions can be cyclical. All actions can be further edited to cater for the specific need of each simulation scenario (Fig.6.)
The Decision_*** node is the Decision Tree of Miarmy and contains all decisions that one specific agent is able to take during the animation scenario, thus constituting the agent’s behaviour. The logic nodes of the crowd are created using the Create Decision function and will be stored into the Decision Node that acts as Decision Tree.
All Decisions are edited within the Decision Node Editor that functions according to Boolean Logics, if then statements that can be singular or manifold conditions. These can be smoothed out and randomized to make the animation more realistic. (Fig.8.)
The Decision Node Editor works with all the information available in the scene, pertaining to Maya or Miarmy and establishes relations between to create conditions for action.
Every decision has the option of playing a specific action that is stored within the Action Node by calling it in relation to scene specific conditions.
Any Decision Tree has a Default State. This state is the predefined initial or Idle State of the agent within the Simulation. This state usually lives at the top of the Hierarchy and is activated when no condition is met, thus having no conditional setup.
Except for the default decision, all other decisions are made by establishing dependency relations between Input Conditions and Output Decisions and their respective priority and fuzziness. Priority values have a numeric range between 0.5 and infinite, while the numeric value of the fuzziness is a ratio based on the value of its respective condition. Priorities should never have the same value overall in order to not create behaviour conflicts. All of these conditions and decisions can be constructed out of a manifold combination of conditions and decisions. The Dependency Logic of the Simulation can be created by using Input Conditions such as Sphere Range, Frustum Range, Road, Path, Body Levelling, Terrain, Maya Geometry Point, Maya Geometry, Speed, Bound, Spot, Zone, Master, Formation, Placer Formation, Maya Particles, Maya Field, Maya Fluid, Python or MEL, Collision Detection, RBD Emitter, Noise ID, Periodic Sine Function, Periodic Time, Agent ID, HP and MP, Maya Attributes, Scene Info, Dynamics Info, Transform Info and Animation parameters and Output Decisions such as Sphere, Colour, Move and Rotate, Action Playback, Action Blend, Action Story, IK, Visible, Aim, HP and MP, Maya Attribute, Dynamics, Dynamics CCT, Dynamics Servo Force, MEL and Python, Blend Shape, Action Sync, Parent, UV Pin, Master, Slave, Scale, Particle Follow, Placer Formation Follow, Bone Offset, Bone Rotate Speed, Action Animation and fine-tuned actions.
The sum of all decision nodes within the Decision Node (Decision Tree) will generate the behaviour of the agent. This behaviour can be realistic or stylised depending on the degree of freedom of the agent to make a decision depending on them being predefined or frame-dependent or dependent on what happens in the simulation.
The Decision tree can become a complex hierarchy of decision nodes stacked or parented to each other, depending on the complexity and relations that need to be established in the simulation scene.
Once the actions have been tested out by creating simple decisions, the OA file can be saved as .ma.
The decision making process in Miarmy is made by using two main distinctions, Input Conditions and Output Decisions. These two categories of the decision node will take actions or change agent attributes based on parameters that can be gathered from the scene.
The following examples will depict some parameters that can be defined within Miarmy.
Placement Nodes are the originators of the agent population. These placement nodes are highly customizable and vary in range of agent number from 1 to infinite. The Placement node can take any shape and can be generated by and according to Maya attributes such as Polygons, Curves, Lattices, Particles, Paint Effects and other.
The placement node can also accommodate one, more or all types of agents within the scene through its Placement Node Editor as Hierarchical Placement, Proportional or Inverse Placement.
As part of the perception content, Bounds and Spots can act as triggers for a certain action or parameter change within the decision making process or animation scene in general.
As part of the Perception Content of Miarmy, Zones, Paths and Terrain are used as global variables for orientation, navigation and accessibility parameters mainly.
The multitude of offerings in Miarmy with regards to the possible combinations of Perception Content Parameters, outside of the agent’s own Perception Content parameters, makes up for a highly complex setup to be possible, thus making the probability of emergent behaviours and so favouring the realistic to the deterministic and stylized model.
Miarmy’s Perception Content offers many more possibilities as these were previously pointed out in the Decision Node Editor section. Miarmy offers predefined actions that the agents can take with respect to influence parameters, such as avoid, escape, follow or auto-avoid. All of these properties help simplify the relations that need to be established in the Collision Avoidance Detection.
The agent setup affords a collection of parameters that can participate into bringing the simulation closer to a realistic model. These parameters include:
Sphere Range, Sphere Colour, View Range, HP, MP, ID in Place, Agent ID, Noise, Frustum Range …
Any of these parameters can be used to establish relations between the agents and their world environment and take action based on the temporal values of these parameters.
One of the most important aspects of CrowdFX is the Collision Avoidance Detection. In Miarmy, there is the option of building these relations with if = then statements, or there is the option of using Miarmy’s readymade actions that solve collisions at a detailed or very dense scale of the scenario.
The Decision Tree is complemented by a Animation Transition Map and Story List that help smooth the transition between animation states. In gaming this is also known as Finite State Machines.
The Agents Behaviour is represented in the Brain Viewer, that shows how the behaviour of each agent is influenced and how decisions are activated based on scene specific parameters.
The Brain viewer is a visualization window that outputs a rendered animation of all the criteria that are met within the agent behaviour tree for actions to be taken. The down-side of this method of outputting data is that this data cannot be accessed directly for it to be documented.
5. Parametric Semiology Use:
- Using Miarmy is convenient due to its capacity to use the full functionality of Maya
- A great amount of agents that can be simulated with little resources (100’s)
- The use of Miarmy in so far gives offers some Emergence properties that can be exploited.
- The Software is fully capable of creating a semi-realistic scenario.
- Data extraction from its brain viewer and interaction simulation is problematic.
- Does not have a game engine live render view
- Doesn’t offer the possibility to have an immerging experience.
- It needs a third party animation compiler, the visual output being very time expensive.
i https://en.wikipedia.org/wiki/Autodesk_Maya – Introductory notes
ii https://en.wikipedia.org/wiki/Autodesk_Maya – Overview