2003 lines
69 KiB
Python
Executable File
2003 lines
69 KiB
Python
Executable File
import gc
|
|
import logging
|
|
|
|
import pyfbsdk as mobu
|
|
|
|
from RS import ProjectData
|
|
|
|
from RS.Utils.Logging import Universal
|
|
from RS.Tools.CameraToolBox.PyCore.Decorators import Singleton
|
|
|
|
logging.getLogger(__name__)
|
|
|
|
Ulog = Universal.UniversalLog('MotionBuilder')
|
|
|
|
WingRemoteWatchFile = r'x:\mobuRunRemoteScript.txt'
|
|
|
|
Quiet = False
|
|
|
|
Application = mobu.FBApplication()
|
|
|
|
App = Application
|
|
System = mobu.FBSystem()
|
|
Scene = System.Scene
|
|
ActorFaces = Scene.ActorFaces
|
|
Actors = Scene.Actors
|
|
AudioClips = Scene.AudioClips
|
|
Cameras = Scene.Cameras
|
|
CharacterExtensions = Scene.CharacterExtensions
|
|
CharacterFaces = Scene.CharacterFaces
|
|
CharacterPoses = Scene.CharacterPoses
|
|
Characters = Scene.Characters
|
|
ConstraintSlovers = Scene.ConstraintSolvers
|
|
Components = Scene.Components
|
|
Constraints = Scene.Constraints
|
|
ControlSets = Scene.ControlSets
|
|
Devices = Scene.Devices
|
|
Folders = Scene.Folders
|
|
Groups = Scene.Groups
|
|
Handles = Scene.Handles
|
|
Lights = Scene.Lights
|
|
MarkerSets = Scene.MarkerSets
|
|
Materials = Scene.Materials
|
|
Namespaces = Scene.Namespaces
|
|
Notes = Scene.Notes
|
|
ObjectPoses = Scene.ObjectPoses
|
|
PhysicalProperties = Scene.PhysicalProperties
|
|
Poses = Scene.Poses
|
|
RootModel = Scene.RootModel
|
|
Sets = Scene.Sets
|
|
Shaders = Scene.Shaders
|
|
Story = mobu.FBStory()
|
|
Takes = Scene.Takes
|
|
Textures = Scene.Textures
|
|
UserObjects = Scene.UserObjects
|
|
VideoClips = Scene.VideoClips
|
|
|
|
Player = mobu.FBPlayerControl()
|
|
CameraSwitcher = mobu.FBCameraSwitcher()
|
|
FileMonitor = mobu.FBFileMonitoringManager()
|
|
|
|
class SceneModels(object):
|
|
""" Exposes methods that return lists of models in the current scene """
|
|
|
|
@property
|
|
def All(self):
|
|
""" Gets all the FBModels in the scene """
|
|
models = mobu.FBModelList()
|
|
mobu.FBGetSelectedModels(models, None, True, True)
|
|
mobu.FBGetSelectedModels(models, None, False, True)
|
|
return models
|
|
|
|
@property
|
|
def Selected(self):
|
|
""" Gets all the selected models in the scene """
|
|
models = mobu.FBModelList()
|
|
mobu.FBGetSelectedModels(models, None, True, True)
|
|
return models
|
|
|
|
@property
|
|
def UnSelected(self):
|
|
""" Gets all the unselected models in the scene """
|
|
models = mobu.FBModelList()
|
|
mobu.FBGetSelectedModels(models, None, False, True)
|
|
return models
|
|
|
|
def __iter__(self):
|
|
"""
|
|
overrides built in method
|
|
|
|
Allows the instance to be iterate over all the objects in the scene
|
|
|
|
Returns:
|
|
generator
|
|
"""
|
|
for model in self.All:
|
|
yield model
|
|
|
|
def __len__(self):
|
|
""" overrides built in method """
|
|
return len(self.All)
|
|
|
|
def __getitem__(self, start):
|
|
if not isinstance(start, slice):
|
|
return self.All[start]
|
|
|
|
start, stop, step = start.start, start.stop, start.step
|
|
start = start or 0
|
|
step = step or 1
|
|
models = self.All
|
|
count = len(models)
|
|
|
|
if start < 0:
|
|
start += count
|
|
|
|
if stop < 0:
|
|
stop += count
|
|
else:
|
|
stop -= 1
|
|
|
|
modelSlice = []
|
|
if start < stop:
|
|
counter = start
|
|
while counter >= 0 and counter <= stop:
|
|
modelSlice.append(models[counter])
|
|
counter += step
|
|
return modelSlice
|
|
|
|
# This is NOT a list
|
|
Models = SceneModels()
|
|
|
|
ComponentLists = {
|
|
mobu.FBActor: Actors,
|
|
mobu.FBActorFace: ActorFaces,
|
|
mobu.FBCamera: Cameras,
|
|
mobu.FBCharacter: Characters,
|
|
mobu.FBCharacterExtension: CharacterExtensions,
|
|
mobu.FBCharacterPose: CharacterPoses,
|
|
mobu.FBComponent: Components,
|
|
mobu.FBConstraint: Constraints,
|
|
mobu.FBConstraintSolver: ConstraintSlovers,
|
|
mobu.FBControlSet: ControlSets,
|
|
mobu.FBDevice: Devices,
|
|
mobu.FBFolder: Folders,
|
|
mobu.FBLight: Lights,
|
|
mobu.FBMarkerSet: MarkerSets,
|
|
mobu.FBMaterial: Materials,
|
|
mobu.FBMotionClip: Scene.MotionClips,
|
|
mobu.FBNote: Notes,
|
|
mobu.FBObjectPose: ObjectPoses,
|
|
mobu.FBSet: Sets,
|
|
mobu.FBShader: Shaders,
|
|
mobu.FBTake: Takes,
|
|
mobu.FBTexture: Textures,
|
|
mobu.FBVideoClip: VideoClips,
|
|
mobu.FBGroup: Groups
|
|
}
|
|
|
|
# Adding in an instance of FBEvaluateManager so only 1 exists in the scene
|
|
EvaluateManager = mobu.FBEvaluateManager()
|
|
|
|
# The .FullName of any component that is 'default' or 'builtin'. Trying to delete these things will
|
|
# cause crashes in some situations. Best avoid trying to delete them all together. We do this by name
|
|
# rather than storing the actual references because at different times in code excution (i.e. during startup)
|
|
# some of these items won't exist 'yet'. This list is created by loading Mobu - allowing it to pass
|
|
# startup then printing all components at that point - before opening a scene or anything else.
|
|
DefaultComponentNames = ["Model::Scene",
|
|
"Core",
|
|
"Thread Manager",
|
|
"Evaluation Manager",
|
|
"Timing Manager",
|
|
"Command Manager",
|
|
"KTimeWarpManager",
|
|
"Profiler",
|
|
"Evaluation",
|
|
"Transport",
|
|
"Timer",
|
|
"Audio",
|
|
"Video",
|
|
"Material::DefaultMaterial",
|
|
"Model::Producer Perspective",
|
|
"Model::Producer Front",
|
|
"Model::Producer Back",
|
|
"Model::Producer Right",
|
|
"Model::Producer Left",
|
|
"Model::Producer Top",
|
|
"Model::Producer Bottom",
|
|
"Model::Camera Switcher",
|
|
"Video::USB Video Device",
|
|
"Video::Video Output 1",
|
|
"KVideoRenderer",
|
|
"KSerialManager",
|
|
"KCharacterHelper",
|
|
"Network Evaluation",
|
|
"KNLEManager",
|
|
"BaseObjectGroup::Path Creation",
|
|
"Folder::Constraints",
|
|
"Audio::Speakers (High Definition Audio Device)",
|
|
"Audio::Microphone (3- USB Audio Device)",
|
|
"KAudioManager",
|
|
"KMotionTriggerManager",
|
|
"Timeline::Story root",
|
|
"Timeline::Edit root",
|
|
"TimelineTrack::Shot Track",
|
|
"KTimelineXManager",
|
|
"Settings::Ghosts",
|
|
"Scene",
|
|
"Actors",
|
|
"Marker Set",
|
|
"Actor Faces",
|
|
"Audio",
|
|
"Cameras",
|
|
"Characters",
|
|
"Character Faces",
|
|
"Character Plugins",
|
|
"Control Rigs",
|
|
"Character Extensions",
|
|
"Constraints",
|
|
"Decks",
|
|
"Devices",
|
|
"Handles",
|
|
"Image Operators",
|
|
"Groups",
|
|
"Sets",
|
|
"Namespaces",
|
|
"Heads Up Display",
|
|
"Heads Up Display Elements",
|
|
"Lights",
|
|
"Materials",
|
|
"Keying Groups",
|
|
"Notes",
|
|
"Opticals",
|
|
"Poses",
|
|
"Shaders",
|
|
"Takes",
|
|
"Textures",
|
|
"3D Curve",
|
|
"Motions",
|
|
"Videos",
|
|
"Physical Properties",
|
|
"Solvers",
|
|
"Deformer",
|
|
"Scripts",
|
|
"UserObjects",
|
|
"System",
|
|
"BaseObjectGroup::T",
|
|
"BaseObjectGroup::R",
|
|
"BaseObjectGroup::S",
|
|
"BaseObjectGroup::TR",
|
|
"BaseObjectGroup::TRS",
|
|
"PointCacheManager",
|
|
"Folder::Poses",
|
|
"Folder::Takes",
|
|
"Global Light",
|
|
"Shader::Default Shader",
|
|
"Renderer::Renderer",
|
|
"FBX Export",
|
|
"MainViewer",
|
|
"ModelView0",
|
|
"ModelView1",
|
|
"ModelView2",
|
|
"ModelView3",
|
|
"Geometry::__SYSTEM_DEFAULT_GEOMETRY_AZIMUT_",
|
|
"HierarchyView",
|
|
"BaseObjectGroup::Current Camera",
|
|
"Transport",
|
|
"FCurve",
|
|
"Application"]
|
|
|
|
|
|
@Singleton.Singleton
|
|
class CallbackManager(object):
|
|
"""
|
|
Manages callbacks in Motion Builder so they are accessible in one location
|
|
"""
|
|
# NOTE: This does not contain all the available callbacks in Motion Builder as they are scattered through
|
|
# out the SDK. Add missing callbacks as needed.
|
|
|
|
# ---------------------------
|
|
# ----- Scene callbacks -----
|
|
# ---------------------------
|
|
|
|
_CallbackTypes = {Scene.OnChange.eventtype: "OnChange",
|
|
Scene.OnTakeChange.eventtype: "OnTakeChange",
|
|
Application.OnFileOpen.eventtype: "OnFileOpen",
|
|
Application.OnFileOpenCompleted.eventtype: "OnFileOpenCompleted",
|
|
Application.OnFileNew.eventtype: "OnFileNew",
|
|
Application.OnFileNewCompleted.eventtype: "OnFileNewCompleted",
|
|
Application.OnFileSave.eventtype: "OnFileSave",
|
|
Application.OnFileSaveCompleted.eventtype: "OnFileSaveCompleted",
|
|
Application.OnFileMerge.eventtype: "OnFileMerge",
|
|
Application.OnFileExit.eventtype: "OnFileExit",
|
|
System.OnUIIdle.eventtype: "OnUIIdle",
|
|
System.OnConnectionNotify.eventtype: "OnConnectionNotify",
|
|
System.OnConnectionKeyingNotify.eventtype: "OnConnectionKeyingNotify",
|
|
System.OnConnectionDataNotify.eventtype: "OnConnectionDataNotify",
|
|
System.OnConnectionStateNotify.eventtype: "OnConnectionStateNotify",
|
|
System.OnVideoFrameRendering.eventtype: "OnVideoFrameRendering",
|
|
FileMonitor.OnFileChangeMainScene.eventtype: "OnFileChangeMainScene",
|
|
FileMonitor.OnFileChangeAnimationClip.eventtype: "OnFileChangeAnimationClip",
|
|
FileMonitor.OnFileChangeFileReference.eventtype: "OnFileChangeFileReference",
|
|
EvaluateManager.OnSynchronizationEvent.eventtype: "OnSynchronizationEvent",
|
|
EvaluateManager.OnRenderingPipelineEvent.eventtype: "OnRenderingPipelineEvent"
|
|
}
|
|
|
|
@property
|
|
def OnChange(self):
|
|
"""
|
|
Callback triggered when a component has been selected, unselected, added, destroyed, renamed, etc.
|
|
|
|
Return:
|
|
FBEvent
|
|
"""
|
|
return Scene.OnChange
|
|
|
|
@property
|
|
def OnTakeChange(self):
|
|
"""
|
|
Callback triggered when a take has been selected, unselected, added, destroyed, renamed, etc.
|
|
|
|
Return:
|
|
FBEvent
|
|
"""
|
|
return Scene.OnTakeChange
|
|
|
|
# ---------------------------
|
|
# -- Application callbacks --
|
|
# ---------------------------
|
|
|
|
@property
|
|
def OnFileOpen(self):
|
|
"""
|
|
A File Open has been requested, nothing has been loaded yet.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileOpen
|
|
|
|
@property
|
|
def OnFileOpenCompleted(self):
|
|
"""
|
|
A File Open has been completed.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileOpenCompleted
|
|
|
|
@property
|
|
def OnFileNew(self):
|
|
"""
|
|
A File New has been requested, nothing has been destroyed yet.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileNew
|
|
|
|
@property
|
|
def OnFileNewCompleted(self):
|
|
"""
|
|
A File New has been completed.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileNewCompleted
|
|
|
|
@property
|
|
def OnFileSave(self):
|
|
"""
|
|
A File Save has been requested, nothing has been saved yet.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileSave
|
|
|
|
@property
|
|
def OnFileSaveCompleted(self):
|
|
"""
|
|
A File Save has been completed.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileSaveCompleted
|
|
|
|
@property
|
|
def OnFileMerge(self):
|
|
"""
|
|
A File Merge has been requested, nothing has been loaded yet.
|
|
When a file merge is completed, the FileOpenCompleted callback is called.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileMerge
|
|
|
|
@property
|
|
def OnFileExit(self):
|
|
"""
|
|
A File Exit as been requested, nothing has been destroyed yet.
|
|
This is called when Motion Builder has been asked to close.
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return Application.OnFileExit
|
|
|
|
# --------------------------
|
|
# ---- System callbacks ----
|
|
# --------------------------
|
|
|
|
@property
|
|
def OnUIIdle(self):
|
|
"""
|
|
Useful callback for less frequent GUI refresh and etc. lightweight tasks (occur once per several frames)
|
|
|
|
Return:
|
|
FBPropertyEventUIIdle
|
|
"""
|
|
return System.OnUIIdle
|
|
|
|
@property
|
|
def OnConnectionNotify(self):
|
|
"""
|
|
A connection event occurred between objects in the system.
|
|
|
|
Return:
|
|
FBPropertyEventConnectionNotify
|
|
"""
|
|
return System.OnConnectionNotify
|
|
|
|
@property
|
|
def OnConnectionDataNotify(self):
|
|
"""
|
|
A data event occured between objects in the system
|
|
|
|
Return:
|
|
pyfbsdk.FBEvent
|
|
"""
|
|
return System.OnConnectionDataNotify
|
|
|
|
@property
|
|
def OnConnectionStateNotify(self):
|
|
"""
|
|
A state change event occurred between objects in the system.
|
|
|
|
Return:
|
|
FBPropertyEventConnectionNotify
|
|
"""
|
|
return System.OnConnectionStateNotify
|
|
|
|
@property
|
|
def OnConnectionKeyingNotify(self):
|
|
"""
|
|
A connection event occured between a property and keyframe
|
|
|
|
Return:
|
|
FBEventConnectionKeyingNotify
|
|
"""
|
|
return System.OnConnectionKeyingNotify
|
|
|
|
@property
|
|
def OnConnectionVideoFramesRendering(self):
|
|
"""
|
|
A video frame rendering event occurred when the scene is being off-line rendered into video files.
|
|
|
|
Return:
|
|
FBPropertyEventVideoFrameRendering
|
|
"""
|
|
return System.OnVideoFrameRendering
|
|
|
|
# --------------------------------
|
|
# ---- File Monitor callbacks ----
|
|
# --------------------------------
|
|
|
|
@property
|
|
def OnFileChangeMainScene(self):
|
|
"""
|
|
A file that is being monitored has changed since the last event in the current scene was triggered
|
|
|
|
Return:
|
|
FBPropertyEvent
|
|
"""
|
|
return FileMonitor.OnFileChangeMainScene
|
|
|
|
@property
|
|
def OnFileChangeFileReference(self):
|
|
"""
|
|
A file that is being monitored has changed since the last namespace related event in the current scene was
|
|
triggered
|
|
|
|
Return:
|
|
FBPropertyEvent
|
|
"""
|
|
return FileMonitor.OnFileChangeFileReference
|
|
|
|
@property
|
|
def OnFileChangeAnimationClip(self):
|
|
"""
|
|
A file that is being monitored has changed since the last animation clip related event in the current scene
|
|
was triggered
|
|
|
|
Return:
|
|
FBPropertyEvent
|
|
"""
|
|
return FileMonitor.OnFileChangeAnimationClip
|
|
|
|
# --------------------------------
|
|
# -- Evaluate Manager callbacks --
|
|
# --------------------------------
|
|
|
|
@property
|
|
def OnSynchronizationEvent(self):
|
|
"""
|
|
For callback events at synchronization point, such as when there is a frame change in the time slider
|
|
|
|
Return:
|
|
FBPropertyEventCallbackSynPoint
|
|
"""
|
|
return EvaluateManager.OnSynchronizationEvent
|
|
|
|
@property
|
|
def OnRenderingPipelineEvent(self):
|
|
"""
|
|
For callback events at synchronization point, such as when there is a frame change in the time slider
|
|
|
|
Return:
|
|
FBPropertyEventCallbackSynPoint
|
|
"""
|
|
return EvaluateManager.OnRenderingPipelineEvent
|
|
|
|
@staticmethod
|
|
def Remove(func, events=None):
|
|
"""
|
|
Removes a function if it is hooked to the given events. When no events are given, it searches all
|
|
available events that it might belong to and removes the function / method from them.
|
|
|
|
Arguments:
|
|
func (function or method): function / method to remove from the
|
|
events (list[FBEvents, etc.]): events to remove methods from
|
|
|
|
Return:
|
|
boolean; whether the function/method was removed from the events
|
|
"""
|
|
search = True
|
|
|
|
# Get a list of events that the function hooked if no events are passed
|
|
if events is None:
|
|
events = [event
|
|
for event in CallbackManager.GetAllEvents()
|
|
for callback in list(event.callbacks)
|
|
if callback.Callback == func]
|
|
search = False
|
|
# convert events into a list if it isn't already a list
|
|
elif not isinstance(events, (list, tuple)):
|
|
events = [events]
|
|
|
|
# remove callbacks
|
|
removed = False
|
|
for event in events:
|
|
if search:
|
|
removed = [event.Remove(func) for callback in list(event.callbacks) if callback.Callback == func]
|
|
removed = len(removed) > 0
|
|
|
|
else:
|
|
event.Remove(func)
|
|
removed = True
|
|
|
|
return removed
|
|
|
|
@classmethod
|
|
def GetCallbackNameByEventType(cls, eventtype):
|
|
"""
|
|
Get the name of the callback by its eventtype value
|
|
|
|
Arguments:
|
|
eventtype (pyfbsdk.FBEventType): the type of event, some callbacks return an FBEvent others an interger
|
|
|
|
Return:
|
|
string when the value is found, returns back the eventtype otherwise
|
|
"""
|
|
return cls._CallbackTypes.get(eventtype, eventtype)
|
|
|
|
@classmethod
|
|
def RemoveAll(cls, skipCallbacks=()):
|
|
"""
|
|
Attempts to remove all callbacks
|
|
|
|
Arguments:
|
|
ignoreCallbacks (list[pyfbsdk.FBEvent]): list of callbacks to avoid removing
|
|
"""
|
|
events = [e for e in cls.GetAllEvents()]
|
|
for event in events:
|
|
if event not in skipCallbacks:
|
|
if event.callbacks:
|
|
logging.info("Close - \t Clearing {instance}.{event}".format(
|
|
event=cls.GetCallbackNameByEventType(event.eventtype), instance=event.control))
|
|
|
|
for callback in event.callbacks:
|
|
while isinstance(callback, mobu.FBCallback):
|
|
callback = callback.Callback
|
|
logging.info("Close - \t\t Removing {module}.{function}".format(
|
|
function=getattr(callback, "__name__", "None"),
|
|
module=getattr(callback, "__module__", "None")))
|
|
|
|
event.RemoveAll()
|
|
|
|
@classmethod
|
|
def GetAllEvents(cls):
|
|
"""
|
|
Gets all the available events that this class manages and attempts to retrieve events that have been
|
|
picked up by python's garbage collection.
|
|
|
|
Return:
|
|
generator
|
|
"""
|
|
# Garbage Collection may not pick up these callbacks, so we explicitly return them to be safe
|
|
yield Scene.OnChange
|
|
yield Scene.OnTakeChange
|
|
|
|
yield Application.OnFileOpen
|
|
yield Application.OnFileOpenCompleted
|
|
yield Application.OnFileNew
|
|
yield Application.OnFileNewCompleted
|
|
yield Application.OnFileSave
|
|
yield Application.OnFileSaveCompleted
|
|
yield Application.OnFileMerge
|
|
|
|
yield System.OnUIIdle
|
|
yield System.OnConnectionNotify
|
|
yield System.OnConnectionDataNotify
|
|
yield System.OnConnectionStateNotify
|
|
yield System.OnConnectionKeyingNotify
|
|
yield System.OnVideoFrameRendering
|
|
|
|
yield FileMonitor.OnFileChangeFileReference
|
|
yield FileMonitor.OnFileChangeAnimationClip
|
|
yield FileMonitor.OnFileChangeMainScene
|
|
|
|
yield EvaluateManager.OnSynchronizationEvent
|
|
yield EvaluateManager.OnRenderingPipelineEvent
|
|
|
|
for gc_object in gc.get_objects():
|
|
|
|
# get all Scene callbacks
|
|
if isinstance(gc_object, mobu.FBScene):
|
|
for eventName in ("OnChange", "OnTakeChange"):
|
|
yield getattr(gc_object, eventName)
|
|
|
|
# get all Application callbacks
|
|
elif isinstance(gc_object, mobu.FBApplication):
|
|
for eventName in ("OnFileOpen", "OnFileOpenCompleted",
|
|
"OnFileNew", "OnFileNewCompleted",
|
|
"OnFileSave", "OnFileSaveCompleted",
|
|
"OnFileMerge", "OnFileExit"):
|
|
yield getattr(gc_object, eventName)
|
|
|
|
elif isinstance(gc_object, mobu.FBSystem):
|
|
for eventName in ("OnUIIdle", "OnConnectionNotify",
|
|
"OnConnectionDataNotify", "OnConnectionStateNotify",
|
|
"OnVideoFrameRendering"):
|
|
yield getattr(gc_object, eventName)
|
|
|
|
Callbacks = CallbackManager()
|
|
|
|
#
|
|
#
|
|
# Mirror Partners
|
|
#
|
|
#
|
|
|
|
|
|
# Mirror_Label:[ Left, Right ]
|
|
mirrorPairs = {
|
|
"IK_Hand":[ "IK_R_Hand", "IK_L_Hand" ],
|
|
"IK_Foot":[ "IK_R_Foot", "IK_L_Foot" ],
|
|
"PH_Hand":[ "PH_R_Hand", "PH_L_Hand" ],
|
|
"PH_Foot":[ "PH_R_Foot", "PH_L_Foot" ],
|
|
"PH_Boot":[ "PH_R_Boot", "PH_L_Boot" ],
|
|
"PH_Hip":[ "PH_R_Hip", "PH_L_Hip" ],
|
|
"PH_Breast":[ "PH_R_Breast", "PH_L_Breast" ],
|
|
"PH_Shoulder":[ "PH_R_Shoulder", "PH_L_Shoulder" ],
|
|
"RB_ThighRoll":[ "RB_R_ThighRoll", "RB_L_ThighRoll" ]
|
|
}
|
|
|
|
# 0 = None, 1 = Self
|
|
mirrorNoPairs = {
|
|
"mover":1,
|
|
"HeelHeight":0,
|
|
"SKEL_Tail":1,
|
|
"SKEL_ROOT":0,
|
|
"SKEL_SADDLE":0,
|
|
"OH_FacingDir":1,
|
|
"OH_LookDir":0,
|
|
"PH_Belt_Front":0,
|
|
"PH_Belt_Melee":0,
|
|
"PH_Belt_Rear":0,
|
|
"PH_Belt_Thrower":0,
|
|
"PH_Bow":0,
|
|
"PH_Rifle":0
|
|
}
|
|
|
|
|
|
# ---------------------------------------------------------------------------------------------------------------------
|
|
# --------------------------------- Anything with 'g' to be depreciated. Don't use.# ----------------------------------
|
|
# ---------------------------------------------------------------------------------------------------------------------
|
|
gApp = Application
|
|
gScene = Scene
|
|
gActorFaces = gScene.ActorFaces
|
|
gActors = gScene.Actors
|
|
gAudioClips = gScene.AudioClips
|
|
gCameras = gScene.Cameras
|
|
gCharacterExtensions = gScene.CharacterExtensions
|
|
gCharacterFaces = gScene.CharacterFaces
|
|
gCharacterPoses = gScene.CharacterPoses
|
|
gCharacters = gScene.Characters
|
|
gConstraintSlovers = gScene.ConstraintSolvers
|
|
gComponents = gScene.Components
|
|
gConstraints = gScene.Constraints
|
|
gControlSets = gScene.ControlSets
|
|
gDevices = gScene.Devices
|
|
gFolders = gScene.Folders
|
|
gGroups = gScene.Groups
|
|
gHandles = gScene.Handles
|
|
gLights = gScene.Lights
|
|
gMarkerSets = gScene.MarkerSets
|
|
gMaterials = gScene.Materials
|
|
gNotes = gScene.Notes
|
|
gObjectPoses = gScene.ObjectPoses
|
|
gPhysicalProperties = gScene.PhysicalProperties
|
|
gPoses = gScene.Poses
|
|
gRoot = gScene.RootModel
|
|
gSets = gScene.Sets
|
|
gShaders = gScene.Shaders
|
|
gTakes = gScene.Takes
|
|
gTextures = gScene.Textures
|
|
gUserObjects = gScene.UserObjects
|
|
gVideoClips = gScene.VideoClips
|
|
|
|
gUlog = Ulog
|
|
|
|
|
|
def rs_NonSystemCameraList():
|
|
return [camera for camera in Cameras if not camera.SystemCamera]
|
|
|
|
|
|
# # Colors ##
|
|
|
|
gRed = mobu.FBColor(1, 0, 0)
|
|
gOrange = mobu.FBColor(0.9, 0.4, 0)
|
|
gPink = mobu.FBColor(1, 0, 1)
|
|
gGreen = mobu.FBColor(0.4, 0.7, 0)
|
|
gYellow = mobu.FBColor(1, 1, 0)
|
|
gDarkBlue = mobu.FBColor(0, 0.2, 0.65)
|
|
gCyan = mobu.FBColor(0, 1, 1)
|
|
|
|
|
|
# # Character skeleton array ## - Get from ProjectData
|
|
gSkelArray = ProjectData.data.GetSkeltonArray()
|
|
|
|
|
|
# # Floor contacts array ##
|
|
|
|
gContactsArray = ['L_Foot_Contact',
|
|
'R_Foot_Contact',
|
|
'L_Hand_Contact',
|
|
'R_Hand_Contact', ]
|
|
|
|
|
|
|
|
# # Animal skeleton arrays ##
|
|
|
|
gAnimalSkelHeadNeckArray = ['_Neck_1',
|
|
'_Neck_2',
|
|
'_Head',
|
|
'_Head_NUB',
|
|
'SPR_R_Ear_ROOT',
|
|
'SPR_R_Ear',
|
|
'SPR_L_Ear_ROOT',
|
|
'SPR_L_Ear',
|
|
'AntlerRoot',
|
|
'AntlerRoot_NUB']
|
|
|
|
gAnimalSkelTorsoArray = ['_ROOT',
|
|
'_Spine_Root',
|
|
'_Spine0',
|
|
'_Spine1',
|
|
'_Spine2',
|
|
'_Spine2_NUB',
|
|
'_Spine3',
|
|
'_PelvisRoot',
|
|
'_Pelvis',
|
|
'_Pelvis1']
|
|
|
|
gAnimalSkelLeftArmArray = ['_L_Clavicle',
|
|
'_L_Clavicle_NUB',
|
|
'_L_UpperArm',
|
|
'_L_Forearm',
|
|
'_L_Hand',
|
|
'_L_Finger00',
|
|
'_L_Finger00_NUB',
|
|
'_L_Finger01',
|
|
'_L_Finger01_NUB',
|
|
'MH_L_ShoulderBladeRoot',
|
|
'MH_L_ShoulderBlade']
|
|
|
|
gAnimalSkelRightArmArray = ['_R_Clavicle',
|
|
'_R_Clavicle_NUB',
|
|
'_R_UpperArm',
|
|
'_R_Forearm',
|
|
'_R_Hand',
|
|
'_R_Finger00',
|
|
'_R_Finger00_NUB',
|
|
'_R_Finger01',
|
|
'_R_Finger01_NUB',
|
|
'MH_R_ShoulderBladeRoot',
|
|
'MH_R_ShoulderBlade']
|
|
|
|
gAnimalSkelLeftLegArray = ['_L_Thigh',
|
|
'_L_Thigh_NUB',
|
|
'_L_Calf',
|
|
'_L_Foot',
|
|
'_L_Toe0',
|
|
'_L_Toe0_NUB',
|
|
'_L_Toe1',
|
|
'_L_Toe1_NUB']
|
|
|
|
gAnimalSkelRightLegArray = ['_R_Thigh',
|
|
'_R_Thigh_NUB',
|
|
'_R_Calf',
|
|
'_R_Foot',
|
|
'_R_Toe0',
|
|
'_R_Toe0NUB',
|
|
'_R_Toe1',
|
|
'_R_Toe1_NUB']
|
|
|
|
gAnimalSkelTailArray = ['_Tail_01',
|
|
'_Tail_02',
|
|
'_Tail_03',
|
|
'_Tail_04',
|
|
'_Tail_05',
|
|
'_Tail_05_NUB',
|
|
'_Tail_05_NUB-END']
|
|
|
|
gAnimalSkelArray = [gAnimalSkelHeadNeckArray[0],
|
|
gAnimalSkelHeadNeckArray[1],
|
|
gAnimalSkelHeadNeckArray[2],
|
|
gAnimalSkelHeadNeckArray[3],
|
|
gAnimalSkelHeadNeckArray[4],
|
|
gAnimalSkelHeadNeckArray[5],
|
|
gAnimalSkelHeadNeckArray[6],
|
|
gAnimalSkelHeadNeckArray[7],
|
|
gAnimalSkelHeadNeckArray[8],
|
|
gAnimalSkelHeadNeckArray[9],
|
|
|
|
gAnimalSkelTorsoArray[0],
|
|
gAnimalSkelTorsoArray[1],
|
|
gAnimalSkelTorsoArray[2],
|
|
gAnimalSkelTorsoArray[3],
|
|
gAnimalSkelTorsoArray[4],
|
|
gAnimalSkelTorsoArray[5],
|
|
gAnimalSkelTorsoArray[6],
|
|
gAnimalSkelTorsoArray[7],
|
|
gAnimalSkelTorsoArray[8],
|
|
gAnimalSkelTorsoArray[9],
|
|
|
|
gAnimalSkelLeftArmArray[0],
|
|
gAnimalSkelLeftArmArray[1],
|
|
gAnimalSkelLeftArmArray[2],
|
|
gAnimalSkelLeftArmArray[3],
|
|
gAnimalSkelLeftArmArray[4],
|
|
gAnimalSkelLeftArmArray[5],
|
|
gAnimalSkelLeftArmArray[6],
|
|
gAnimalSkelLeftArmArray[7],
|
|
gAnimalSkelLeftArmArray[8],
|
|
gAnimalSkelLeftArmArray[9],
|
|
gAnimalSkelLeftArmArray[10],
|
|
|
|
gAnimalSkelRightArmArray[0],
|
|
gAnimalSkelRightArmArray[1],
|
|
gAnimalSkelRightArmArray[2],
|
|
gAnimalSkelRightArmArray[3],
|
|
gAnimalSkelRightArmArray[4],
|
|
gAnimalSkelRightArmArray[5],
|
|
gAnimalSkelRightArmArray[6],
|
|
gAnimalSkelRightArmArray[7],
|
|
gAnimalSkelRightArmArray[8],
|
|
gAnimalSkelRightArmArray[9],
|
|
gAnimalSkelRightArmArray[10],
|
|
|
|
gAnimalSkelLeftLegArray[0],
|
|
gAnimalSkelLeftLegArray[1],
|
|
gAnimalSkelLeftLegArray[2],
|
|
gAnimalSkelLeftLegArray[3],
|
|
gAnimalSkelLeftLegArray[4],
|
|
gAnimalSkelLeftLegArray[5],
|
|
gAnimalSkelLeftLegArray[6],
|
|
gAnimalSkelLeftLegArray[7],
|
|
|
|
gAnimalSkelRightLegArray[0],
|
|
gAnimalSkelRightLegArray[1],
|
|
gAnimalSkelRightLegArray[2],
|
|
gAnimalSkelRightLegArray[3],
|
|
gAnimalSkelRightLegArray[4],
|
|
gAnimalSkelRightLegArray[5],
|
|
gAnimalSkelRightLegArray[6],
|
|
gAnimalSkelRightLegArray[7],
|
|
|
|
gAnimalSkelTailArray[0],
|
|
gAnimalSkelTailArray[1],
|
|
gAnimalSkelTailArray[2],
|
|
gAnimalSkelTailArray[3],
|
|
gAnimalSkelTailArray[4],
|
|
gAnimalSkelTailArray[5],
|
|
gAnimalSkelTailArray[6]]
|
|
|
|
gAnimalPrefixSkel = 'SKEL'
|
|
gAnimalPrefixCtrlRig = 'CTRLRIG'
|
|
gAnimalPrefixGS = 'gs:'
|
|
|
|
gNewAnimalSkelArray = ["_Pelvis",
|
|
"_L_Thigh",
|
|
"_L_Calf",
|
|
"_L_Foot",
|
|
"_R_Thigh",
|
|
"_R_Calf",
|
|
"_R_Foot",
|
|
"_Spine0",
|
|
"_L_UpperArm",
|
|
"_L_Forearm",
|
|
"_L_Hand",
|
|
"_R_UpperArm",
|
|
"_R_Forearm",
|
|
"_R_Hand",
|
|
"_Head",
|
|
"_L_Toe0",
|
|
"_R_Toe0",
|
|
"_L_Clavicle",
|
|
"_R_Clavicle",
|
|
"_Neck0",
|
|
"_L_Finger00",
|
|
"_R_Finger00",
|
|
"_Spine1",
|
|
"_Spine2",
|
|
"_Spine3",
|
|
"_Neck1",
|
|
"_Neck2",
|
|
"_Neck3",
|
|
"_Neck4",
|
|
"_Neck5",
|
|
"_R_Toe1",
|
|
"_L_Toe1",
|
|
"_R_Finger01",
|
|
"_L_Finger01"]
|
|
|
|
# # GIANT skeleton array ##
|
|
|
|
gGiantSkelArray = ['root',
|
|
'waist_dum',
|
|
'torso_1',
|
|
'torso_2',
|
|
'torso_3',
|
|
'torso_4',
|
|
'torso_5',
|
|
'torso_6',
|
|
'torso_7',
|
|
'neck_1',
|
|
'neck_2',
|
|
'neck_3',
|
|
'head',
|
|
'l_shoulder_dum',
|
|
'l_shoulder',
|
|
'l_up_arm',
|
|
'l_up_arm_twist',
|
|
'l_low_arm',
|
|
'l_low_arm_twist',
|
|
'l_hand',
|
|
'l_hand_1_dum',
|
|
'l_hand_1',
|
|
'l_up_fing_1',
|
|
'l_mid_fing_1',
|
|
'l_low_fing_1',
|
|
'l_hand_2_dum',
|
|
'l_hand_2',
|
|
'l_up_fing_2',
|
|
'l_mid_fing_2',
|
|
'l_low_fing_2',
|
|
'l_hand_3_dum',
|
|
'l_hand_3',
|
|
'l_up_fing_3',
|
|
'l_mid_fing_3',
|
|
'l_low_fing_3',
|
|
'l_hand_4_dum',
|
|
'l_hand_4',
|
|
'l_up_fing_4',
|
|
'l_mid_fing_4',
|
|
'l_low_fing_4',
|
|
'l_hand_5_dum',
|
|
'l_hand_5',
|
|
'l_up_fing_5',
|
|
'l_mid_fing_5',
|
|
'l_low_fing_5',
|
|
'r_shoulder_dum',
|
|
'r_shoulder',
|
|
'r_up_arm',
|
|
'r_up_arm_twist',
|
|
'r_low_arm',
|
|
'r_low_arm_twist',
|
|
'r_hand',
|
|
'r_hand_1_dum',
|
|
'r_hand_1',
|
|
'r_up_fing_1',
|
|
'r_mid_fing_1',
|
|
'r_low_fing_1',
|
|
'r_hand_2_dum',
|
|
'r_hand_2',
|
|
'r_up_fing_2',
|
|
'r_mid_fing_2',
|
|
'r_low_fing_2',
|
|
'r_hand_3_dum',
|
|
'r_hand_3',
|
|
'r_up_fing_3',
|
|
'r_mid_fing_3',
|
|
'r_low_fing_3',
|
|
'r_hand_4_dum',
|
|
'r_hand_4',
|
|
'r_up_fing_4',
|
|
'r_mid_fing_4',
|
|
'r_low_fing_4',
|
|
'r_hand_5_dum',
|
|
'r_hand_5',
|
|
'r_up_fing_5',
|
|
'r_mid_fing_5',
|
|
'r_low_fing_5',
|
|
'l_up_leg_dum',
|
|
'l_up_leg',
|
|
'l_low_leg',
|
|
'l_foot',
|
|
'l_toes',
|
|
'r_up_leg_dum',
|
|
'r_up_leg',
|
|
'r_low_leg',
|
|
'r_foot',
|
|
'r_toes',
|
|
'mesh']
|
|
|
|
|
|
gHoovedQuadrupeds = ["A_C_Horse",
|
|
"A_C_Deer",
|
|
"A_C_Cow",
|
|
"A_C_Boar",
|
|
"A_C_Pig",
|
|
"P_C_Horse_01",
|
|
"P_C_Horse_02"]
|
|
|
|
gNonHoovedQuadrupeds = ["A_C_Rottweiler",
|
|
"A_C_Chop",
|
|
"A_C_Retriever",
|
|
"A_C_Coyote",
|
|
"A_C_Coyote_01",
|
|
"A_C_MtLion"]
|
|
|
|
|
|
# # 3Lateral face geometries ##
|
|
|
|
gCAFaceAttrGui = ["FacialAttrGUI", "Tongue", "RECT_press", "TEXT_press", "RECT_rollIn", "TEXT_rollIn",
|
|
"RECT_narrowWide", "TEXT_narrowWide", "JAW", "RECT_clench", "TEXT_clench", "RECT_backFwd",
|
|
"TEXT_backFwd", "NOSE", "RECT_nasolabialFurrowL", "TEXT_nasolabialFurrowL", "RECT_nasolabialFurrowR",
|
|
"TEXT_nasolabialFurrowR", "MOUTH", "RECT_smileR", "RECT_smileL", "TEXT_smileL", "TEXT_smileR", "RECT_openSmileR",
|
|
"TEXT_openSmileR", "RECT_openSmileL", "TEXT_openSmileL", "RECT_frownR", "TEXT_frownR", "RECT_frownL",
|
|
"TEXT_frownL", "RECT_scream", "TEXT_scream", "RECT_lipsNarrowWideR", "TEXT_lipsNarrowWideR", "RECT_lipsNarrowWideL",
|
|
"TEXT_lipsNarrowWideL", "RECT_lipsStretchOpenR", "TEXT_lipsStretchOpenR", "RECT_lipsStretchOpenL",
|
|
"TEXT_lipsStretchOpenL", "RECT_chinWrinkle", "TEXT_chinWrinkle", "RECT_chinRaiseUpper", "TEXT_chinRaiseUpper",
|
|
"RECT_chinRaiseLower", "TEXT_chinRaiseLower", "RECT_closeOuterR", "TEXT_closeOuterR", "RECT_closeOuterL",
|
|
"TEXT_closeOuterL", "RECT_puckerR", "TEXT_puckerR", "RECT_puckerL", "TEXT_puckerL", "RECT_oh", "TEXT_oh",
|
|
"RECT_funnelUR", "TEXT_funnelUR", "RECT_funnelDR", "TEXT_funnelDR", "RECT_mouthSuckUR", "TEXT_mouthSuckUR",
|
|
"RECT_mouthSuckDR", "TEXT_mouthSuckDR", "RECT_pressR", "TEXT_pressR", "RECT_pressL", "TEXT_pressL", "RECT_dimpleR",
|
|
"TEXT_dimpleR", "RECT_dimpleL", "TEXT_dimpleL", "RECT_suckPuffR", "TEXT_suckPuffR", "RECT_suckPuffL", "TEXT_suckPuffL",
|
|
"RECT_lipBite", "TEXT_lipBite", "RECT_funnelUL", "TEXT_funnelUL", "RECT_funnelDL", "TEXT_funnelDL", "RECT_funnelDL001",
|
|
"TEXT_mouthSuckUL", "RECT_mouthSuckDL", "TEXT_mouthSuckDL", "Eyes", "RECT_blinkL", "TEXT_blinkL", "RECT_squeezeR",
|
|
"TEXT_squeezeR", "RECT_squeezeL", "TEXT_squeezeL", "RECT_lipsNarrowWideR001", "TEXT_blinkR", "RECT_openCloseUR001",
|
|
"TEXT_openCloseDR", "RECT_squintInnerUR", "TEXT_squintInnerUR", "RECT_squintInnerDR", "TEXT_squintInnerDR",
|
|
"RECT_openCloseUR", "TEXT_openCloseUR", "RECT_openCloseDL", "TEXT_openCloseDL", "RECT_squintInnerUL", "TEXT_squintInnerUL",
|
|
"RECT_squintInnerDL", "TEXT_squintInnerDL", "RECT_openCloseUL", "TEXT_openCloseUL", "LIPS", "RECT_thinThick_C",
|
|
"RECT_thinThick_D", "RECT_stickyLips_E", "RECT_thinThick_B", "RECT_thinThick_F", "RECT_thinThick_H", "RECT_thinThick_G",
|
|
"RECT_stickyLips_A",
|
|
"faceControls_FRAME", "mouth_FRAME", "mouth_TEXT", "jaw_FRAME", "jaw_TEXT", "tongue_TEXT", "tongueMove_FRAME",
|
|
"tongueRoll_FRAME", "tongueInOut_FRAME", "outerBrow_R_FRAME", "innerBrow_L_FRAME", "outerBrow_L_FRAME", "brows_TEXT",
|
|
"innerBrow_R_FRAME", "eye_R_FRAME", "eye_L_FRAME", "eyes_TEXT", "eye_C_FRAME", "nose_L_FRAME", "nose_R_FRAME",
|
|
"nose_TEXT", "cheek_TEXT", "cheek_L_FRAME", "cheek_R_FRAME"]
|
|
|
|
gCAOneDSliders = ["CIRC_press", "CIRC_rollIn", "CIRC_nasolabialFurrowL", "CIRC_nasolabialFurrowR", "CIRC_smileR", "CIRC_smileL",
|
|
"CIRC_openSmileR", "CIRC_openSmileL", "CIRC_frownR", "CIRC_frownL", "CIRC_scream", "CIRC_lipsStretchOpenR",
|
|
"CIRC_lipsStretchOpenL", "CIRC_chinWrinkle", "CIRC_puckerR", "CIRC_puckerL", "CIRC_oh", "CIRC_funnelUR", "CIRC_funnelDR",
|
|
"CIRC_mouthSuckUR", "CIRC_mouthSuckDR", "CIRC_pressR", "CIRC_pressL", "CIRC_dimpleR", "CIRC_dimpleL", "CIRC_lipBite",
|
|
"CIRC_funnelUL", "CIRC_funnelDL", "CIRC_mouthSuckUL", "CIRC_mouthSuckDL", "CIRC_squeezeR", "CIRC_squeezeL",
|
|
"CIRC_squintInnerUR", "CIRC_squintInnerDR", "CIRC_squintInnerUL", "CIRC_squintInnerDL", "CIRC_stickyLips_E", "CIRC_stickyLips_A"]
|
|
|
|
gCATwoDSliders = ["CIRC_narrowWide", "CIRC_clench", "CIRC_backFwd", "CIRC_lipsNarrowWideR", "CIRC_lipsNarrowWideL", "CIRC_chinRaiseUpper",
|
|
"CIRC_chinRaiseLower", "CIRC_closeOuterR", "CIRC_closeOuterL", "CIRC_suckPuffR", "CIRC_suckPuffL", "CIRC_blinkL", "CIRC_blinkR",
|
|
"CIRC_openCloseDR", "CIRC_openCloseUR", "CIRC_openCloseDL", "CIRC_openCloseUL", "CIRC_thinThick_C", "CIRC_thinThick_D",
|
|
"CIRC_thinThick_B", "CIRC_thinThick_F", "CIRC_thinThick_H", "CIRC_thinThick_G"]
|
|
|
|
qSquareSliders = ["mouth_CTRL", "tongueMove_CTRL", "tongueRoll_CTRL", "eye_C_CTRL", "eye_L_CTRL", "eye_R_CTRL", "nose_L_CTRL", "nose_R_CTRL"]
|
|
|
|
qPosNegSliders = ["tongueInOut_CTRL", "outerBrow_R_CTRL", "outerBrow_L_CTRL"]
|
|
|
|
qPosSliders = ["cheek_L_CTRL", "cheek_R_CTRL"]
|
|
|
|
g3WaySliders = ["jaw_CTRL", "innerBrow_L_CTRL", "innerBrow_R_CTRL"]
|
|
|
|
gOnFaceControls = ["lowerLip_L_CTRL", "lowerLip_C_CTRL", "lowerLip_R_CTRL", "lipCorner_R_CTRL", "upperLip_C_CTRL",
|
|
"upperLip_L_CTRL", "lipCorner_L_CTRL", "upperLip_R_CTRL", "eyelidUpperOuter_L_CTRL", "eyelidUpperInner_L_CTRL",
|
|
"eyelidLowerOuter_L_CTRL", "eyelidLowerInner_L_CTRL", "eyelidLowerOuter_R_CTRL", "eyelidLowerInner_R_CTRL",
|
|
"eyelidUpperOuter_R_CTRL", "eyelidUpperInner_R_CTRL"]
|
|
|
|
|
|
|
|
gBrowCtrls = ["innerBrow_R_CTRL", "outerBrow_L_CTRL", "innerBrow_L_CTRL", "outerBrow_R_CTRL"]
|
|
|
|
gEyeCtrls = ["CIRC_openCloseUL", "CIRC_squintInnerDL", "CIRC_squintInnerUL", "CIRC_openCloseDL", "CIRC_openCloseUR", "CIRC_squintInnerDR",
|
|
"CIRC_squintInnerUR", "CIRC_openCloseDR", "CIRC_blinkR", "CIRC_squeezeL", "CIRC_squeezeR", "CIRC_blinkL", "eyelidUpperInner_R_CTRL",
|
|
"eyelidUpperOuter_R_CTRL", "eyelidLowerInner_R_CTRL", "eyelidLowerOuter_R_CTRL", "eyelidLowerInner_L_CTRL", "eyelidLowerOuter_L_CTRL",
|
|
"eyelidUpperInner_L_CTRL", "eyelidUpperOuter_L_CTRL", "eye_C_CTRL", "eye_R_CTRL", "eye_L_CTRL"]
|
|
|
|
gMouthCtrls = ["CIRC_stickyLips_A", "CIRC_thinThick_G", "CIRC_thinThick_H", "CIRC_thinThick_F", "CIRC_thinThick_B", "CIRC_stickyLips_E",
|
|
"CIRC_thinThick_D", "CIRC_thinThick_C", "CIRC_mouthSuckDL", "CIRC_mouthSuckUL", "CIRC_funnelDL", "CIRC_funnelUL", "CIRC_lipBite",
|
|
"CIRC_suckPuffL", "CIRC_suckPuffR", "CIRC_dimpleL", "CIRC_dimpleR", "CIRC_pressL", "CIRC_pressR", "CIRC_mouthSuckDR",
|
|
"CIRC_mouthSuckUR", "CIRC_funnelDR", "CIRC_funnelUR", "CIRC_oh", "CIRC_puckerL", "CIRC_puckerR", "CIRC_closeOuterL",
|
|
"CIRC_closeOuterR", "CIRC_chinRaiseLower", "CIRC_chinRaiseUpper", "CIRC_chinWrinkle", "CIRC_lipsStretchOpenL", "CIRC_lipsStretchOpenR",
|
|
"CIRC_lipsNarrowWideL", "CIRC_lipsNarrowWideR", "CIRC_scream", "CIRC_frownL", "CIRC_frownR", "CIRC_openSmileL", "CIRC_openSmileR",
|
|
"CIRC_smileL", "CIRC_smileR", "CIRC_nasolabialFurrowR", "CIRC_nasolabialFurrowL", "CIRC_backFwd", "CIRC_clench", "CIRC_narrowWide",
|
|
"CIRC_rollIn", "CIRC_press", "upperLip_R_CTRL", "lipCorner_L_CTRL", "upperLip_L_CTRL", "upperLip_C_CTRL", "lipCorner_R_CTRL",
|
|
"lowerLip_R_CTRL", "lowerLip_C_CTRL", "lowerLip_L_CTRL", "cheek_R_CTRL", "cheek_L_CTRL", "nose_R_CTRL", "nose_L_CTRL",
|
|
"tongueInOut_CTRL", "tongueRoll_CTRL", "tongueMove_CTRL", "jaw_CTRL", "mouth_CTRL"]
|
|
|
|
gBlushCtrl = [ "cutsceneBlush_OFF" ]
|
|
|
|
gFacialRoot = [ "FACIAL_facialRoot" ]
|
|
|
|
|
|
# # Ambient face controller id's ##
|
|
|
|
gAmbientControllerIds = { "CTRL_R_Brow":7689,
|
|
"CTRL_C_Brow":31528,
|
|
"CTRL_L_Brow":19497,
|
|
"CTRL_R_Blink":25778,
|
|
"CTRL_L_Blink":19205,
|
|
"CTRL_R_Eye":64876,
|
|
"CTRL_L_Eye":447,
|
|
"CTRL_R_Cheek":40256,
|
|
"CTRL_L_Cheek":33683,
|
|
"CTRL_UpperLip":28113,
|
|
"CTRL_UpperLip_Curl":17867,
|
|
"CTRL_R_Mouth":10760,
|
|
"CTRL_L_Mouth":4187,
|
|
"CTRL_Mouth":4626,
|
|
"CTRL_Tongue_In_Out":10274,
|
|
"CTRL_Tongue":51288,
|
|
"CTRL_LowerLip":64382,
|
|
"CTRL_LowerLip_Curl":15406,
|
|
"open":19779,
|
|
"W":455,
|
|
"ShCh":34077,
|
|
"PBM":21981,
|
|
"FV":1574,
|
|
"wide":50730,
|
|
"tBack":58819,
|
|
"tTeeth":47000,
|
|
"tRoof":62959,
|
|
"AU2_Outer_Brow_Raiser_Right":59610,
|
|
"AU2_Outer_Brow_Raiser_Left":20502,
|
|
"AU4_Brow_Lowerer":41424,
|
|
"AU10_Upper_Lip_Raiser":63645,
|
|
"AU15_Lip_Corner_Depressor_Right":22207,
|
|
"AU15_Lip_Corner_Depressor_Left":27754,
|
|
"AU16_Lower_Lip_Depressor":20640,
|
|
"AU20_Lip_Stretcher":33019,
|
|
"AU23_Lip_Tightener":53070,
|
|
"AU26_Jaw_Drop":54342,
|
|
"open_pose":840,
|
|
"W_pose":51201,
|
|
"wide_pose":52693,
|
|
"tBack_pose":34146,
|
|
"tTeeth_pose":23631,
|
|
"tRoof_pose":22140,
|
|
"Brow_Up_L":58471,
|
|
"Brow_Up_R":58445,
|
|
"Brows_Down":18040,
|
|
"Squint":41298,
|
|
"Look_Up_Lids":35793,
|
|
"Look_Down_Lids":62006,
|
|
"IH":1608}
|
|
|
|
|
|
# # Ambient facial geometries ##
|
|
|
|
gAmbientBorders = ["RECT_R_Blink",
|
|
"TEXT_R_Blink",
|
|
"RECT_L_Blink",
|
|
"TEXT_L_Blink",
|
|
"RECT_L_Cheek",
|
|
"TEXT_L_Cheek",
|
|
"RECT_R_Cheek",
|
|
"TEXT_R_Cheek",
|
|
"RECT_UpperLip_Curl",
|
|
"TEXT_UpperLip_Curl",
|
|
"RECT_LowerLip_Curl",
|
|
"TEXT_LowerLip_Curl",
|
|
"RECT_Tongue_In_Out",
|
|
"TEXT_Tongue_In_Out",
|
|
"RECT_C_Brow",
|
|
"TEXT_C_Brow",
|
|
"RECT_R_Brow",
|
|
"TEXT_R_Brow",
|
|
"RECT_L_Brow",
|
|
"TEXT_L_Brow",
|
|
"RECT_R_Eye",
|
|
"TEXT_R_Eye",
|
|
"RECT_L_Eye",
|
|
"TEXT_L_Eye",
|
|
"RECT_R_Mouth",
|
|
"TEXT_R_Mouth",
|
|
"RECT_Mouth",
|
|
"TEXT_Mouth",
|
|
"RECT_L_Mouth",
|
|
"TEXT_L_Mouth",
|
|
"RECT_UpperLip",
|
|
"TEXT_UpperLip",
|
|
"RECT_LowerLip",
|
|
"TEXT_LowerLip",
|
|
"RECT_Jaw",
|
|
"TEXT_Jaw",
|
|
"RECT_Tongue",
|
|
"TEXT_Tongue",
|
|
"RECT_MouthPinch",
|
|
"TEXT_MouthPinch",
|
|
"RECT_open",
|
|
"TEXT_open",
|
|
"RECT_W",
|
|
"TEXT_W",
|
|
"RECT_ShCh",
|
|
"TEXT_ShCh",
|
|
"RECT_PBM",
|
|
"TEXT_PBM",
|
|
"RECT_FV",
|
|
"TEXT_FV",
|
|
"RECT_wide",
|
|
"TEXT_wide",
|
|
"RECT_tBack",
|
|
"TEXT_tBack",
|
|
"RECT_tTeeth",
|
|
"TEXT_tTeeth",
|
|
"RECT_tRoof",
|
|
"TEXT_tRoof",
|
|
"RECT_AU2_Outer_Brow_Raiser_Left",
|
|
"TEXT_AU2_Outer_Brow_Raiser_Left",
|
|
"RECT_AU2_Outer_Brow_Raiser_Right",
|
|
"TEXT_AU2_Outer_Brow_Raiser_Right",
|
|
"RECT_AU4_Brow_Lowerer",
|
|
"TEXT_AU4_Brow_Lowerer",
|
|
"RECT_AU10_Upper_Lip_Raiser",
|
|
"TEXT_AU10_Upper_Lip_Raiser",
|
|
"RECT_AU15_Lip_Corner_Depressor_Left",
|
|
"TEXT_AU15_Lip_Corner_Depressor_Left",
|
|
"RECT_AU15_Lip_Corner_Depressor_Right",
|
|
"TEXT_AU15_Lip_Corner_Depressor_Right",
|
|
"RECT_AU16_Lower_Lip_Depressor",
|
|
"TEXT_AU16_Lower_Lip_Depressor",
|
|
"RECT_AU20_Lip_Stretcher",
|
|
"TEXT_AU20_Lip_Stretcher",
|
|
"RECT_AU23_Lip_Tightener",
|
|
"TEXT_AU23_Lip_Tightener",
|
|
"RECT_AU26_Jaw_Drop",
|
|
"TEXT_AU26_Jaw_Drop",
|
|
"RECT_open_pose",
|
|
"TEXT_open_pose",
|
|
"RECT_W_pose",
|
|
"TEXT_W_pose",
|
|
"RECT_ShCh",
|
|
"TEXT_ShCh",
|
|
"RECT_PBM",
|
|
"TEXT_PBM",
|
|
"RECT_FV",
|
|
"TEXT_FV",
|
|
"RECT_wide_pose",
|
|
"TEXT_wide_pose",
|
|
"RECT_tBack_pose",
|
|
"TEXT_tBack_pose",
|
|
"RECT_tTeeth_pose",
|
|
"TEXT_tTeeth_pose",
|
|
"RECT_tRoof_pose",
|
|
"TEXT_tRoof_pose",
|
|
"RECT_Brow_Up_L",
|
|
"TEXT_Brow_Up_L",
|
|
"RECT_Brow_Up_R",
|
|
"TEXT_Brow_Up_R",
|
|
"RECT_Brows_Down",
|
|
"TEXT_Brows_Down",
|
|
"RECT_Squint",
|
|
"TEXT_Squint",
|
|
"RECT_Look_Up_Lids",
|
|
"TEXT_Look_Up_Lids",
|
|
"RECT_Look_Down_Lids",
|
|
"TEXT_Look_Down_Lids",
|
|
"RECT_IH",
|
|
"TEXT_IH"]
|
|
|
|
gAmbient2DSliders = ["CTRL_C_Brow",
|
|
"CTRL_R_Brow",
|
|
"CTRL_L_Brow",
|
|
"CTRL_R_Eye",
|
|
"CTRL_L_Eye",
|
|
"CTRL_R_Mouth",
|
|
"CTRL_Mouth",
|
|
"CTRL_L_Mouth",
|
|
"CTRL_UpperLip",
|
|
"CTRL_LowerLip",
|
|
"CTRL_Jaw",
|
|
"CTRL_Tongue"]
|
|
|
|
gAmbient1DSliders = ["CTRL_R_Blink",
|
|
"CTRL_L_Blink",
|
|
"CTRL_L_Cheek",
|
|
"CTRL_R_Cheek",
|
|
"CTRL_UpperLip_Curl",
|
|
"CTRL_LowerLip_Curl",
|
|
"CTRL_Tongue_In_Out",
|
|
"CTRL_MouthPinch",
|
|
"open",
|
|
"W",
|
|
"ShCh",
|
|
"PBM",
|
|
"FV",
|
|
"wide",
|
|
"tBack",
|
|
"tTeeth",
|
|
"tRoof",
|
|
"AU2_Outer_Brow_Raiser_Left",
|
|
"AU2_Outer_Brow_Raiser_Right",
|
|
"AU4_Brow_Lowerer",
|
|
"AU10_Upper_Lip_Raiser",
|
|
"AU15_Lip_Corner_Depressor_Left",
|
|
"AU15_Lip_Corner_Depressor_Right",
|
|
"AU16_Lower_Lip_Depressor",
|
|
"AU20_Lip_Stretcher",
|
|
"AU23_Lip_Tightener",
|
|
"AU26_Jaw_Drop",
|
|
"open_pose",
|
|
"W_pose",
|
|
"wide_pose",
|
|
"tBack_pose",
|
|
"tTeeth_pose",
|
|
"tRoof_pose",
|
|
"Brow_Up_L",
|
|
"Brow_Up_R",
|
|
"Brows_Down",
|
|
"Squint",
|
|
"Look_Up_Lids",
|
|
"Look_Down_Lids",
|
|
"IH"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ## UFC Facial Rig Arrays
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
|
|
gUFCWolf_Ctrls = [
|
|
"CTRL_analog_R_ear3",
|
|
"CTRL_analog_L_ear3",
|
|
"CTRL_analog_R_ear2",
|
|
"CTRL_analog_L_ear2",
|
|
"CTRL_analog_R_ear1",
|
|
"CTRL_analog_L_ear1",
|
|
"CTRL_analog_C_tongue4",
|
|
"CTRL_analog_C_tongue3",
|
|
"CTRL_analog_C_tongue2",
|
|
"CTRL_analog_C_tongue1",
|
|
"CTRL_lookAt_WorldParentSwitch",
|
|
"CTRL_rig_LogicSwitch",
|
|
"CTRL_R_nose",
|
|
"CTRL_L_nose",
|
|
"CTRL_C_tongue_inOut",
|
|
"CTRL_C_tongue_stickToSnout",
|
|
"CTRL_C_tongue_moveUpDown",
|
|
"CTRL_C_tongue_roll",
|
|
"CTRL_R_eye_blink",
|
|
"CTRL_L_eye_blink",
|
|
"CTRL_R_eye_cheekRaise",
|
|
"CTRL_L_eye_cheekRaise",
|
|
"CTRL_R_eye_squintInner",
|
|
"CTRL_L_eye_squintInner",
|
|
"CTRL_L_eye",
|
|
"CTRL_R_eye",
|
|
"CTRL_C_eye",
|
|
"CTRL_L_brow_lateral",
|
|
"CTRL_R_brow_lateral",
|
|
"CTRL_L_brow_down",
|
|
"CTRL_R_brow_down",
|
|
"CTRL_L_brow_raiseOut",
|
|
"CTRL_L_brow_raiseIn",
|
|
"CTRL_R_brow_raiseIn",
|
|
"CTRL_R_brow_raiseOut",
|
|
"CTRL_R_mouth_lipsRollD",
|
|
"CTRL_L_mouth_lipsRollD",
|
|
"CTRL_R_mouth_lipsRollU",
|
|
"CTRL_L_mouth_lipsRollU",
|
|
"CTRL_L_mouth_howlD",
|
|
"CTRL_L_mouth_howlU",
|
|
"CTRL_R_mouth_howlU",
|
|
"CTRL_R_mouth_howlD",
|
|
"CTRL_R_mouth_upperLip",
|
|
"CTRL_L_mouth_upperLip",
|
|
"CTRL_R_mouth_lowerLipDepress",
|
|
"CTRL_R_mouth_stretch",
|
|
"CTRL_R_mouth_cornerPull",
|
|
"CTRL_R_mouth_sharpCornerPull",
|
|
"CTRL_R_mouth_upperLipRaise",
|
|
"CTRL_L_mouth_lowerLipDepress",
|
|
"CTRL_L_mouth_stretch",
|
|
"CTRL_L_mouth_cornerPull",
|
|
"CTRL_L_mouth_sharpCornerPull",
|
|
"CTRL_L_mouth_upperLipRaise",
|
|
"CTRL_C_jaw",
|
|
"CTRL_R_ear",
|
|
"CTRL_L_ear",
|
|
"CTRL_R_lookAtOffset",
|
|
"CTRL_L_lookAtOffset",
|
|
"CTRL_C_lookAt",
|
|
"CTRL_convergenceSwitch"
|
|
]
|
|
|
|
gUFCHorse_Ctrls = [
|
|
"CTRL_lookAt_WorldParentSwitch",
|
|
"CTRL_rig_LogicSwitch",
|
|
"CTRL_convergenceSwitch",
|
|
"CTRL_C_neck_swallow",
|
|
"CTRL_R_nose",
|
|
"CTRL_L_nose",
|
|
"CTRL_C_lowerSnout",
|
|
"CTRL_C_upperSnout",
|
|
"CTRL_C_tongue_inOut",
|
|
"CTRL_C_tongue_stickToSnout",
|
|
"CTRL_C_tongue_moveUpDown",
|
|
"CTRL_C_tongue_roll",
|
|
"CTRL_L_eye_iris",
|
|
"CTRL_R_eye_blink",
|
|
"CTRL_L_eye_blink",
|
|
"CTRL_R_eye_pupil",
|
|
"CTRL_R_eye_cheekRaise",
|
|
"CTRL_L_eye_cheekRaise",
|
|
"CTRL_R_eye_squintInner",
|
|
"CTRL_L_eye_squintInner",
|
|
"CTRL_L_eye",
|
|
"CTRL_R_eye",
|
|
"CTRL_C_eye",
|
|
"CTRL_L_brow_lateral",
|
|
"CTRL_R_brow_lateral",
|
|
"CTRL_L_brow_down",
|
|
"CTRL_R_brow_down",
|
|
"CTRL_L_brow_raiseOut",
|
|
"CTRL_L_brow_raiseIn",
|
|
"CTRL_R_brow_raiseIn",
|
|
"CTRL_R_brow_raiseOut",
|
|
"CTRL_R_mouth_lipsRollD",
|
|
"CTRL_L_mouth_lipsRollD",
|
|
"CTRL_R_mouth_lipsRollU",
|
|
"CTRL_L_mouth_lipsRollU",
|
|
"CTRL_R_mouth_upperLip",
|
|
"CTRL_L_mouth_upperLip",
|
|
"CTRL_R_mouth_lowerLipDepress",
|
|
"CTRL_L_mouth_lowerLipDepress",
|
|
"CTRL_R_mouth_upperLipRaise",
|
|
"CTRL_L_mouth_upperLipRaise",
|
|
"CTRL_C_jaw",
|
|
"CTRL_R_ear",
|
|
"CTRL_L_ear",
|
|
"CTRL_R_LookAt",
|
|
"CTRL_L_LookAt",
|
|
"CTRL_C_lookAt",
|
|
"CTRL_analog_R_ear3",
|
|
"CTRL_analog_L_ear3",
|
|
"CTRL_analog_R_ear2",
|
|
"CTRL_analog_L_ear2",
|
|
"CTRL_analog_C_tongue5",
|
|
"CTRL_analog_C_tongue4",
|
|
"CTRL_analog_C_tongue3",
|
|
"CTRL_analog_C_tongue2",
|
|
"CTRL_analog_C_tongue1"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Mouth = [
|
|
"CTRL_R_mouth_lipUpDownD",
|
|
"CTRL_L_mouth_lipUpDownD",
|
|
"CTRL_R_mouth_lipUpDownU",
|
|
"CTRL_L_mouth_lipUpDownU",
|
|
"CTRL_R_nose_nasolabialDeepen",
|
|
"CTRL_L_nose_nasolabialDeepen",
|
|
"CTRL_R_mouth_corner",
|
|
"CTRL_L_mouth_corner",
|
|
"CTRL_L_mouth_thicknessD",
|
|
"CTRL_R_mouth_thicknessD",
|
|
"CTRL_R_mouth_thicknessU",
|
|
"CTRL_L_mouth_thicknessU",
|
|
"CTRL_L_mouth_lipsRollD",
|
|
"CTRL_R_mouth_lipsRollD",
|
|
"CTRL_R_mouth_lipsRollU",
|
|
"CTRL_L_mouth_lipsRollU",
|
|
"CTRL_R_mouth_cornerShapnessU",
|
|
"CTRL_L_mouth_cornerShapnessU",
|
|
"CTRL_L_mouth_cornerShapnessD",
|
|
"CTRL_R_mouth_cornerShapnessD",
|
|
"CTRL_L_mouth_pushPullD",
|
|
"CTRL_R_mouth_pushPullU",
|
|
"CTRL_L_mouth_pushPullU",
|
|
"CTRL_R_mouth_pushPullD",
|
|
"CTRL_R_nose",
|
|
"CTRL_L_nose",
|
|
"CTRL_R_ear_up",
|
|
"CTRL_L_ear_up",
|
|
"CTRL_R_mouth_suckBlow",
|
|
"CTRL_L_mouth_suckBlow",
|
|
"CTRL_R_mouth_openSmile",
|
|
"CTRL_L_mouth_openSmile",
|
|
"CTRL_L_mouth_lowerLipDepress",
|
|
"CTRL_R_mouth_lowerLipDepress",
|
|
"CTRL_R_mouth_stretch",
|
|
"CTRL_L_mouth_stretch",
|
|
"CTRL_R_mouth_cornerDepress",
|
|
"CTRL_L_mouth_cornerDepress",
|
|
"CTRL_R_mouth_dimple",
|
|
"CTRL_L_mouth_dimple",
|
|
"CTRL_R_mouth_cornerPull",
|
|
"CTRL_L_mouth_cornerPull",
|
|
"CTRL_R_mouth_sharpCornerPull",
|
|
"CTRL_L_mouth_sharpCornerPull",
|
|
"CTRL_R_mouth_upperLipRaise",
|
|
"CTRL_L_mouth_upperLipRaise",
|
|
"CTRL_C_mouth",
|
|
"CTRL_L_mouth_lipBiteD",
|
|
"CTRL_L_mouth_lipBiteU",
|
|
"CTRL_R_mouth_lipBiteU",
|
|
"CTRL_R_mouth_lipBiteD",
|
|
"CTRL_L_mouth_lipsPressU",
|
|
"CTRL_R_mouth_lipsPressU",
|
|
"CTRL_L_mouth_tightenD",
|
|
"CTRL_L_mouth_tightenU",
|
|
"CTRL_R_mouth_tightenU",
|
|
"CTRL_R_mouth_tightenD",
|
|
"CTRL_L_mouth_lipsBlow",
|
|
"CTRL_R_mouth_lipsBlow",
|
|
"CTRL_L_mouth_pressD",
|
|
"CTRL_L_mouth_pressU",
|
|
"CTRL_R_mouth_pressU",
|
|
"CTRL_R_mouth_pressD",
|
|
"CTRL_L_mouth_lipsTogetherD",
|
|
"CTRL_L_mouth_lipsTogetherU",
|
|
"CTRL_R_mouth_lipsTogetherU",
|
|
"CTRL_R_mouth_lipsTogetherD",
|
|
"CTRL_L_mouth_puckerD",
|
|
"CTRL_L_mouth_puckerU",
|
|
"CTRL_R_mouth_puckerU",
|
|
"CTRL_R_mouth_puckerD",
|
|
"CTRL_L_mouth_funnelD",
|
|
"CTRL_L_mouth_funnelU",
|
|
"CTRL_R_mouth_funnelU",
|
|
"CTRL_R_mouth_funnelD",
|
|
"CTRL_R_jaw_chinCompress",
|
|
"CTRL_L_jaw_chinCompress",
|
|
"CTRL_L_jaw_ChinLiftU",
|
|
"CTRL_L_jaw_ChinLiftD",
|
|
"CTRL_R_jaw_ChinLiftU",
|
|
"CTRL_R_jaw_ChinLiftD",
|
|
"CTRL_C_jaw_fwdBack",
|
|
"CTRL_C_jaw_clench",
|
|
"CTRL_C_jaw"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Neck = [
|
|
"CTRL_C_neck_stretch",
|
|
"CTRL_L_neck_stretch",
|
|
"CTRL_R_neck_stretch",
|
|
"CTRL_C_neck_swallow"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Tongue = [
|
|
"CTRL_C_tongue_narrowWide",
|
|
"CTRL_C_tongue_inOut",
|
|
"CTRL_C_tongue_press",
|
|
"CTRL_C_tongue_roll",
|
|
"CTRL_C_tongue"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Eyes = [
|
|
"CTRL_R_eye_relax",
|
|
"CTRL_R_eye_squeeze",
|
|
"CTRL_L_eye_relax",
|
|
"CTRL_L_eye_squeeze",
|
|
"CTRL_L_eye_pupil",
|
|
"CTRL_R_eye_pupil",
|
|
"CTRL_R_eye_blink",
|
|
"CTRL_L_eye_blink",
|
|
"CTRL_R_eye_cheekRaise",
|
|
"CTRL_L_eye_cheekRaise",
|
|
"CTRL_R_eye_squintInner",
|
|
"CTRL_L_eye_squintInner",
|
|
"CTRL_L_eye",
|
|
"CTRL_R_eye",
|
|
"CTRL_C_eye"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_GlobalEyes = [
|
|
"CTRL_C_lookAt",
|
|
"CTRL_L_LookAt",
|
|
"CTRL_R_LookAt"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Brows = [
|
|
"CTRL_L_brow_lateral",
|
|
"CTRL_R_brow_lateral",
|
|
"CTRL_L_brow_down",
|
|
"CTRL_R_brow_down",
|
|
"CTRL_L_brow_raiseOut",
|
|
"CTRL_L_brow_raiseIn",
|
|
"CTRL_R_brow_raiseIn",
|
|
"CTRL_R_brow_raiseOut"
|
|
]
|
|
|
|
gUFCFacial_Ctrls_Switches = [
|
|
"CTRL_rig_LogicSwitch",
|
|
"CTRL_lookAt_WorldParentSwitch",
|
|
"CTRL_convergenceSwitch"
|
|
]
|
|
|
|
gUFCFacial_Ctrls = list(set(# converting to a set then back to a list removes dupes.
|
|
gUFCFacial_Ctrls_Mouth +
|
|
gUFCFacial_Ctrls_Neck +
|
|
gUFCFacial_Ctrls_Tongue +
|
|
gUFCFacial_Ctrls_Eyes +
|
|
gUFCFacial_Ctrls_GlobalEyes +
|
|
gUFCFacial_Ctrls_Brows +
|
|
gUFCWolf_Ctrls +
|
|
gUFCHorse_Ctrls
|
|
))
|
|
|
|
gUFCFacial_Frames = [
|
|
"FRM_faceGUI",
|
|
"FRM_switches",
|
|
# "FRM_lookAtFollowGUISwitch",
|
|
# "FRM_lookAtSwitch",
|
|
"FRM_rig_LogicSwitch",
|
|
"FRM_lipsUpDown",
|
|
"FRM_R_mouth_lipsUpDownD",
|
|
"FRM_L_mouth_lipsUpDownD",
|
|
"FRM_R_mouth_lipsUpDownU",
|
|
"FRM_L_mouth_lipsUpDownU",
|
|
"FRM_R_eye_squeeze",
|
|
"FRM_R_eye_border",
|
|
"FRM_R_eye_relax",
|
|
# "FRM_R_eye_squeeze 1",
|
|
"FRM_L_eye_squeeze",
|
|
"FRM_L_eye_border",
|
|
"FRM_L_eye_relax",
|
|
# "FRM_L_eye_squeeze 1",
|
|
"FRM_R_nose_nasolabialDeepen",
|
|
"FRM_L_nose_nasolabialDeepen",
|
|
"FRM_R_mouth_corner",
|
|
"FRM_L_mouth_corner",
|
|
"FRM_thickness",
|
|
"FRM_L_mouth_thicknessD",
|
|
"FRM_R_mouth_thicknessD",
|
|
"FRM_R_mouth_thicknessU",
|
|
"FRM_L_mouth_thicknessU",
|
|
"FRM_lipsRoll",
|
|
"FRM_L_mouth_lipsRollD",
|
|
"FRM_R_mouth_lipsRollD",
|
|
"FRM_R_mouth_lipsRollU",
|
|
"FRM_L_mouth_lipsRollU",
|
|
"FRM_cornerSharpness",
|
|
"FRM_R_mouth_cornerShapnessU",
|
|
"FRM_L_mouth_cornerShapnessU",
|
|
"FRM_L_mouth_cornerShapnessD",
|
|
"FRM_R_mouth_cornerShapnessD",
|
|
"FRM_lipsPushPull",
|
|
"FRM_L_mouth_pushPullD",
|
|
"FRM_R_mouth_pushPullU",
|
|
"FRM_L_mouth_pushPullU",
|
|
"FRM_R_mouth_pushPullD",
|
|
"FRM_L_brow_lateral",
|
|
"FRM_R_brow_lateral",
|
|
"FRM_L_brow_down",
|
|
"FRM_R_brow_down",
|
|
"FRM_L_brow_raiseOut",
|
|
"FRM_L_brow_raiseIn",
|
|
"FRM_R_brow_raiseIn",
|
|
"FRM_R_brow_raiseOut",
|
|
"FRM_L_eye_pupil",
|
|
"FRM_R_eye_pupil",
|
|
"FRM_R_eye_blink",
|
|
"FRM_L_eye_blink",
|
|
"FRM_R_eye_cheekRaise",
|
|
"FRM_L_eye_cheekRaise",
|
|
"FRM_R_eye_squintInner",
|
|
"FRM_L_eye_squintInner",
|
|
"FRM_L_eye",
|
|
"FRM_R_eye",
|
|
"FRM_C_eye",
|
|
"FRM_R_nose",
|
|
"FRM_L_nose",
|
|
"FRM_R_ear_up",
|
|
"FRM_L_ear_up",
|
|
"FRM_R_mouth_suckBlow",
|
|
"FRM_L_mouth_suckBlow",
|
|
"FRM_R_mouth_openSmile",
|
|
"FRM_L_mouth_openSmile",
|
|
"FRM_L_mouth_lowerLipDepress",
|
|
"FRM_R_mouth_lowerLipDepress",
|
|
"FRM_R_mouth_stretch",
|
|
"FRM_L_mouth_stretch",
|
|
"FRM_R_mouth_cornerDepress",
|
|
"FRM_L_mouth_cornerDepress",
|
|
"FRM_R_mouth_dimple",
|
|
"FRM_L_mouth_dimple",
|
|
"FRM_R_mouth_cornerPull",
|
|
"FRM_L_mouth_cornerPull",
|
|
"FRM_R_mouth_sharpCornerPull",
|
|
"FRM_L_mouth_sharpCornerPull",
|
|
"FRM_R_mouth_upperLipRaise",
|
|
"FRM_L_mouth_upperLipRaise",
|
|
"FRM_c_mouth",
|
|
"FRM_C_tongue_narrowWide",
|
|
"FRM_C_tongue_inOut",
|
|
"FRM_C_tongue_press",
|
|
"FRM_C_tongue_roll",
|
|
"FRM_C_tongue",
|
|
"FRM_lipBite",
|
|
"FRM_L_mouth_lipBiteD",
|
|
"FRM_L_mouth_lipBiteU",
|
|
"FRM_R_mouth_lipBiteU",
|
|
"FRM_R_mouth_lipBiteD",
|
|
"FRM_lipsPress",
|
|
"FRM_L_mouth_lipsPressD",
|
|
"FRM_L_mouth_lipsPressU",
|
|
"FRM_R_mouth_lipsPressU",
|
|
"FRM_R_mouth_lipsPressD",
|
|
"FRM_mouthTighten",
|
|
"FRM_L_mouth_tightenD",
|
|
"FRM_L_mouth_tightenU",
|
|
"FRM_R_mouth_tightenU",
|
|
"FRM_R_mouth_tightenD",
|
|
"FRM_lipsBlow",
|
|
"FRM_L_mouth_lipsBlow",
|
|
"FRM_R_mouth_lipsBlow",
|
|
"FRM_mouthSuck",
|
|
"FRM_mouth_press",
|
|
"FRM_L_mouth_pressD",
|
|
"FRM_L_mouth_pressU",
|
|
"FRM_R_mouth_pressU",
|
|
"FRM_R_mouth_pressD",
|
|
"FRM_lipsTogether",
|
|
"FRM_L_mouth_lipsTogetherD",
|
|
"FRM_L_mouth_lipsTogetherU",
|
|
"FRM_R_mouth_lipsTogetherU",
|
|
"FRM_R_mouth_lipsTogetherD",
|
|
"FRM_oh",
|
|
"FRM_pucker",
|
|
"FRM_L_mouth_puckerD",
|
|
"FRM_L_mouth_puckerU",
|
|
"FRM_R_mouth_puckerU",
|
|
"FRM_R_mouth_puckerD",
|
|
"FRM_funnel",
|
|
"FRM_L_mouth_funnelD",
|
|
"FRM_L_mouth_funnelU",
|
|
"FRM_R_mouth_funnelU",
|
|
"FRM_R_mouth_funnelD",
|
|
"FRM_R_jaw_chinCompress",
|
|
"FRM_L_jaw_chinCompress",
|
|
"FRM_chinLift",
|
|
"FRM_L_jaw_ChinLiftU",
|
|
"FRM_L_jaw_ChinLiftD",
|
|
"FRM_R_jaw_ChinLiftU",
|
|
"FRM_R_jaw_ChinLiftD",
|
|
"FRM_C_jaw_fwdBack",
|
|
"FRM_C_jaw_clench",
|
|
"FRM_C_jaw",
|
|
"FRM_neckStretch",
|
|
"FRM_C_neck_stretch",
|
|
"FRM_L_neck_stretch",
|
|
"FRM_R_neck_stretch",
|
|
"FRM_C_neck_swallow",
|
|
"FRM_convergenceSwitch",
|
|
"FRM_convergenceGUI"
|
|
]
|
|
|
|
gUFCFacial_Text = [
|
|
"TEXT_switches",
|
|
"TEXT_lipsUpDown",
|
|
"TEXT_tweakers",
|
|
"TEXT_thickness",
|
|
"TEXT_lipsRoll",
|
|
"TEXT_cornerSharpness",
|
|
"TEXT_lipsPushPull",
|
|
"TEXT_lipBite",
|
|
"TEXT_lipsPress",
|
|
"TEXT_mouthTighten",
|
|
"TEXT_lipsBlow",
|
|
"TEXT_mouthPress",
|
|
"TEXT_lipsTogether",
|
|
"TEXT_mouthSuck",
|
|
"TEXT_OH",
|
|
"TEXT_pucker",
|
|
"TEXT_funnel",
|
|
"TEXT_neckStretch",
|
|
"TEXT_convergence"
|
|
]
|
|
|
|
gUFCFacial_Unused = [
|
|
"CTRL_L_mouth_lipsPressD",
|
|
"CTRL_R_mouth_lipsPressD",
|
|
"CTRL_R_neck_stretch_loc",
|
|
"CTRL_L_neck_stretch_loc"
|
|
]
|
|
|
|
gUFCFacial_Other = [
|
|
"CTRL_faceGUI",
|
|
"CTRL_rig_Logic"
|
|
]
|
|
|
|
gUFCFacial_NonCtrls = (
|
|
gUFCFacial_Frames +
|
|
gUFCFacial_Text +
|
|
gUFCFacial_Unused +
|
|
gUFCFacial_Other
|
|
)
|
|
|
|
gUFCFacial_AnalogCtrls_TR = [
|
|
"CTRL_C_lookAt",
|
|
"CTRL_L_LookAt",
|
|
"CTRL_R_LookAt",
|
|
"CTRL_analog_R_ear3",
|
|
"CTRL_analog_L_ear3",
|
|
"CTRL_analog_R_ear2",
|
|
"CTRL_analog_L_ear2",
|
|
"CTRL_analog_R_ear1",
|
|
"CTRL_analog_L_ear1",
|
|
"CTRL_analog_C_tongue5",
|
|
"CTRL_analog_C_tongue4",
|
|
"CTRL_analog_C_tongue3",
|
|
"CTRL_analog_C_tongue2",
|
|
"CTRL_analog_C_tongue1"
|
|
]
|
|
|
|
gUFCFacial_AnalogCtrls_T = [
|
|
"CTRL_C_bit"
|
|
]
|
|
|
|
gUFCFacial_AnalogCtrls_Ears_TR = [
|
|
"CTRL_analog_R_ear3",
|
|
"CTRL_analog_L_ear3",
|
|
"CTRL_analog_R_ear2",
|
|
"CTRL_analog_L_ear2",
|
|
"CTRL_analog_R_ear1",
|
|
"CTRL_analog_L_ear1"
|
|
]
|
|
|
|
gUFCFacial_CustomCtrls = [
|
|
"CTRL_C_chin_backFwd",
|
|
"CTRL_C_chin_downUp",
|
|
"CTRL_C_chin_narrowWide",
|
|
"CTRL_C_jaw_backFwd",
|
|
"CTRL_C_jaw_lowHigh",
|
|
"CTRL_C_jaw_narrowWide",
|
|
"CTRL_C_lowerLip_narrowWide",
|
|
"CTRL_C_lowerLip_backFwd",
|
|
"CTRL_C_lowerLip_thinThick",
|
|
"CTRL_C_upperLip_narrowWide",
|
|
"CTRL_C_upperLip_backFwd",
|
|
"CTRL_C_upperLip_thinThick",
|
|
"CTRL_R_mouth_narrowWide",
|
|
"CTRL_L_mouth_narrowWide",
|
|
"CTRL_C_mouth_narrowWide",
|
|
"CTRL_R_mouth_backFwd",
|
|
"CTRL_L_mouth_backFwd",
|
|
"CTRL_C_mouth_backFwd",
|
|
"CTRL_R_mouth_downUp",
|
|
"CTRL_L_mouth_downUp",
|
|
"CTRL_C_mouth_downUp",
|
|
"CTRL_R_mouth_rightLeft",
|
|
"CTRL_L_mouth_rightLeft",
|
|
"CTRL_C_mouth_rightLeft",
|
|
"CTRL_R_cheek_backFwd",
|
|
"CTRL_L_cheek_backFwd",
|
|
"CTRL_C_cheek_backFwd",
|
|
"CTRL_R_cheek_downUp",
|
|
"CTRL_L_cheek_downUp",
|
|
"CTRL_C_cheek_downUp",
|
|
"CTRL_R_cheek_narrowWide",
|
|
"CTRL_L_cheek_narrowWide",
|
|
"CTRL_C_cheek_narrowWide",
|
|
"CTRL_R_ears_earlobe",
|
|
"CTRL_L_ears_earlobe",
|
|
"CTRL_C_ears_earlobe",
|
|
"CTRL_R_ears_smallBig",
|
|
"CTRL_L_ears_smallBig",
|
|
"CTRL_C_ears_smallBig",
|
|
"CTRL_R_ears_shortLong",
|
|
"CTRL_L_ears_shortLong",
|
|
"CTRL_C_ears_shortLong",
|
|
"CTRL_R_ears_narrowWide",
|
|
"CTRL_L_ears_narrowWide",
|
|
"CTRL_C_ears_narrowWide",
|
|
"CTRL_R_nose_nostril",
|
|
"CTRL_L_nose_nostril",
|
|
"CTRL_C_nose_nostril",
|
|
"CTRL_C_nose_tiltRightLeft",
|
|
"CTRL_C_nose_tiltDownUp",
|
|
"CTRL_C_nose_smallBig",
|
|
"CTRL_C_nose_shortLong",
|
|
"CTRL_C_nose_narrowWide",
|
|
"CTRL_C_eyes_angle",
|
|
"CTRL_L_eyes_angle",
|
|
"CTRL_R_eyes_angle",
|
|
"CTRL_R_eyes_width",
|
|
"CTRL_L_eyes_width",
|
|
"CTRL_C_eyes_width",
|
|
"CTRL_R_eyes_size",
|
|
"CTRL_L_eyes_size",
|
|
"CTRL_C_eyes_size",
|
|
"CTRL_R_eyes_backFwd",
|
|
"CTRL_L_eyes_backFwd",
|
|
"CTRL_C_eyes_backFwd",
|
|
"CTRL_R_eyes_downUp",
|
|
"CTRL_L_eyes_downUp",
|
|
"CTRL_C_eyes_downUp",
|
|
"CTRL_R_eyes_narrowWide",
|
|
"CTRL_L_eyes_narrowWide",
|
|
"CTRL_C_eyes_narrowWide",
|
|
"CTRL_R_brows_backFwd",
|
|
"CTRL_L_brows_backFwd",
|
|
"CTRL_C_brows_backFwd",
|
|
"CTRL_R_brows_downUp",
|
|
"CTRL_L_brows_downUp",
|
|
"CTRL_C_brows_downUp",
|
|
"CTRL_R_brows_narrowWide",
|
|
"CTRL_L_brows_narrowWide",
|
|
"CTRL_C_brows_narrowWide",
|
|
"CTRL_C_weight",
|
|
"CTRL_C_faceWidth",
|
|
"CTRL_C_cranium_flatPointy",
|
|
"CTRL_C_cranium_downUp",
|
|
"CTRL_C_cranium_narrowWide"
|
|
]
|
|
|
|
gUFCFacialRoot = [ "FACIAL_C_FacialRoot" ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ## END - UFC Facial Rig Arrays
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
# ##
|
|
|
|
|
|
|
|
|
|
gAllFacialRoot = (gFacialRoot, gUFCFacialRoot)
|