Deborah R. Fowler
MASSIVE Overview
Posted 2014
Update Aug 3 2014
click here for Motion Capture Resources
Massive is based on fuzzy logic (not boolean) and
information comes from channels that are interpreted from
their "fuzzy" values to specific actions using node networks that
define rules of behavior for your agents. Channels are active and
change as the simulation runs.There are three categories of
channels: agent, segment and action.
Note that unlike probability which measures the likelihood of
truth, fuzzy logic evaluates teh degree to which it is true (in
Massive, a value from 0 to 1). The process of "defuzzification"
determines a crisp value based on the degrees of truth of the
input or inputs. Default is to average them, you can also use max.
An agent defines your character and is made up of segments (body)
and a brain. The brain is a node network defining behavior in
relation to other agents and the environment. Agents must have a
root (center of gravity).
Instances of the agent are created using the place tool (and will
automatically be assigned a group - that's the reason there are
two nodes on the scene page).
Motion is relative to an axis in Cartesian coordinates, with y
up.
Workspace
User workspace is task divided into four pages: Body, Brain, Scene and Motion (although now in 6.0 you can toggle between Action and View as well)Skeletons are used for 3D objects and characters - these are 3-D segments and occupy space and are used in the calculations as well as in the other agents' vision (which is why it is important to use stand-ins (more about that later). Segments (sphere, tube, disc, cube) are used as 'joints' that determine mesh deformations and used in dynamics and collisions.
NOTE: you can move around in the other pages, not just the view window ie. right mouse dragging zooms the workspace in and out.
Hint: Underscores in node labels will display on two lines on the icon.
Note: Manual values are ignored if there is input connected.
File organization
NOTE: Do not put spaces in your folder names. If you do, your pathnames will not work in renderman. (It will also cause problems with saving files in Massive)You are strongly advised to use linux and to organize your files (it is up to you so if you are from a Maya background this may be new)
It is suggested that you name your projects with number padding. ie. project001
I would strongly encourage you to organize your Massive projects with subdirectories cdl/ obj/ terrain/ Sim/ Rib/ act/ maps/ with the mas files at the top level
mas - is your scene file and may also contain placement, flowfield information - it is the master file linking all the pieces together
cdl - stores the agents (brain, skeleton, skinning or "Bones" data)
obj (or you could call is geo) - stores the geometry (.obj files)
terrain - stores the terrain geometry (.obj file) and optional terrain texture maps (.tif)
Sim and Rib - are used for rendering
act - stores the animation (action) files (.actb files)
maps - stores the agent texture maps
For information on how to start massive in linux see Command Line
Default scene
By default, your scene will have four cameras (camera1-4) and
four lights (key, sky, bounce, ambi)
Note the you see two icons for your agent:
- original agent
- group instanced based on that agent - this exists even
before any agents are placed and contains the .cdl link (groups
can even be used with the same agent)
Body page
geometry nodes - reference the .obj filesBinding can occur in two ways, by default the geometry will be placed in the root space of the agent
- smooth binding (DO NOT attach the node to the agent - controlled using the bones envelopes)
- rigid binding (attached node, no deformations - inherits the transform space of the segment it is attached to - may want to select worl relative button)
Center of gravity should be named root
Naming is very important. No spaces, punctuation or numbers at
the start. Use descriptive names, ie. r_arm
Brain page
input - sends info for the brain to monitor - usually Massive
channels ie. ground.dx
output - sends result out, typically triggers an action, ie you
could put a manual value in channel tz to cause movement
(translation)
fuzz - graphical interpretation of how true input is ie. to what
degree (use the arrow keys as shortcuts to grab the points)
defuzz - create 'crisp' values, pay attention to the method
(average or max) as it sends this info to the output node
timer - a value that varies over time
noise - random number from 0 to 1.0 centered at .5
and - fuzzy and logic (either min or prod) true if all of the
inputs are true to some degree
or - fuzzy or logic (the weight of the combined elements is
evaluated, max or sum), true if one or more inputs is true to some
degree
Note: range only affects the slider on input nodes.
Note: Agent and segment transformation channels differ
Note: For agents, pos affects speed and speed affects
acceleration. For segments, pos affects position and speed affects
speed.