Sunday, June 24, 2012

Synoptic View in Softimage using VBScript



Here is the link to the VBScript file for the synoptic view-

Download File

Here is the code-

<html>
<body version="2">
<script language="VBScript">


sub Select_All(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
SelectMembers myObj.model & ".Key"
end sub


sub Deselect_All(in_obj,in_mousebutton,in_keymodifier)
DeselectAll
end sub


sub Reset_Pose(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
ApplyAction myObj.model & ".mixer.ResetPose"
end sub


sub Key_All(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
SelectMembers myObj.model & ".Key"
SelectChildNodes
SetMarking "MarkingSet"
SaveKey,GetValue ("PlayControl.Key")
SelectObj sel
end sub


sub Remove_All(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
SelectMembers myObj.model & ".Key"
SelectChildNodes
SetMarking "MarkingSet"
RemoveKey,GetValue ("PlayControl.Key")
SelectObj sel
end sub


sub Hide_Ctrls(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
SetValue myObj.model & ".Key.viewvis", 0
end sub


sub Unhide_ctrls(in_obj,in_mousebutton,in_keymodifier)
dim sel
Set sel = GetValue("SelectionList")
set oRoot = Application.ActiveProject.ActiveScene.Root
set myObj = oRoot.FindChild(in_obj)
SetValue myObj.model & ".Key.viewvis", 2
end sub


sub Head(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "head_control"
end sub

sub Neck_upper(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "neck_upper_control"
end sub

sub Neck_mid(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "neck_mid_control"
end sub

sub Neck_lower(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "neck_lower_control"
end sub



'---------------------------------------------
' Synoptic Select
'---------------------------------------------
function SynopticSelect (in_obj, inName)

    set oRoot = Application.ActiveProject.ActiveScene.Root
    set myObj = oRoot.FindChild(in_obj)
    if IsComponent(myObj.model & "." & inName) = False then
        logmessage "RigSynoptic: " & inName & " not found"
        SynopticSelect2 = False
    else  

    GetKeyboardState , modKey

    select case CByte(modKey)
   
        case 0 ' "Nothing Selected"
            SelectObj myObj.model & "." & inName  
        case 1 logmessage "Shift"      
            'check the object isn't already selected
            if checkCollision(myObj.model.FindChild(inName)) = False then  
                AddToSelection myObj.model & "." & inName  
            end if
          
        case 2 ' "Ctrl"
            ToggleSelection myObj.model & "." & inName  
        case 3 ' "Shift/Ctrl"  
            RemoveFromSelection myObj.model & "." & inName              
        case 4 ' "Alt"
            SelectObj myObj.model & "." & inName, "BRANCH", True
        case 5 ' "Alt/Shift"
            'check the object isn't already selected
            if checkCollision(myObj.model.FindChild(inName)) = False then
                AddToSelection myObj.model & "." & inName, "BRANCH", True
            end if
        case 6 ' "Alt/Ctrl"
            ToggleSelection myObj.model & "." & inName, "BRANCH", True
        case 7 ' "Alt/Shift/Ctrl"
            RemoveFromSelection myObj.model & "." & inName
    end select


    end if
end function

'---------------------------------------------
' Synoptic Select 2
'---------------------------------------------
function SynopticSelect2(in_obj, inName)

    set oRoot = Application.ActiveProject.ActiveScene.Root
    set myObj = oRoot.FindChild(in_obj)
    if IsComponent(myObj.model & "." & inName) = False then
        logmessage "RigSynoptic: " & inName & " not found"
        SynopticSelect2 = False
    else  
        SelectObj myObj.model & "." & inName, "BRANCH", True
    end if
end function

' Check Selection Collision  
'--------------------------------------
function checkCollision(inObj)
   
    dim sel, elem
    set sel = GetValue("SelectionList")
   
    SelectChildNodes
   
    for each elem in Selection
        if elem = inObj then
            checkCollision = True
            SelectObj sel
            exit function
        end if
    next
   
    checkCollision = False
    SelectObj sel
   
end function
'--------------------------------------

' Is Component
'--------------------------------------
function IsComponent(in_string)
   
    dim oRoot
    IsComponent = True
    set oRoot = Application.ActiveProject.ActiveScene.Root
    if typename(oRoot.FindChild(in_string)) = "Nothing" then IsComponent = False
   
end function


sub Right(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_arm_ctrl_parent"
end sub

sub Left_arm(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_arm_ctrl_parent"
end sub

sub Right_foot(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_foot_ctrl"
end sub

sub Left_foot(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_foot_ctrl"
end sub

sub Spine_upper(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "Spine_upper_ctrl"
end sub

sub Spine_mid(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "Spine_mid_ctrl"
end sub

sub Spine_lower(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "Spine_lower_ctrl"
end sub

sub COG(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "COG_parent"
end sub

sub Hip(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "Hip_ctrl"
end sub

sub IK_spine_upper(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "IK_Spine_upper_ctrl_parent"
end sub

sub IK_chest_handle(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "IK_chest_handle"
end sub

sub Ik_hip_handle(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "IK_hip_handle"
end sub

sub IK_spine_lower_ctrl(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "IK_spine_lower_ctrl"
end sub


sub R_FK_wrist(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_wrist_bone"
end sub

sub R_FK_lowerArm(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_lowerarm_bone"
end sub


sub R_Fk_upperarm(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_upperarm_bone"
end sub

sub R_arm_upvector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_arm_UpVector_ctrl"
end sub

sub R_clavical(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_clavical_ctrl"
end sub

sub L_clavical(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_clavical_ctrl"
end sub

sub L_FK_upperarm(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_upperarm_bone"
end sub

sub L_FK_lowerarm(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_lowerarm_bone"
end sub

sub L_FK_wrist(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_wrist_bone"
end sub

sub L_arm_upvector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_arm_UpVector_ctrl"
end sub

sub L_knee_poleVector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_knee_poleVector"
end sub

sub L_leg_poleVector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "L_leg_poleVector"
end sub

sub R_knee_poleVector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_knee_poleVector"
end sub

sub R_leg_poleVector(in_obj,in_mousebutton,in_keymodifier)
SynopticSelect in_obj, "R_leg_poleVector"
end sub

</SCRIPT>

<map name="SynopticMap">
<area shape="rect" coords="446,29,566,61" title="" NOHREF onClick="Select_All">
<area shape="rect" coords="444,88,565,119" title="" NOHREF onClick="Deselect_All">
<area shape="rect" coords="444,147,565,178" title="" NOHREF onClick="Reset_Pose">
<area shape="rect" coords="446,208,566,239" title="" NOHREF onClick="Key_All">
<area shape="rect" coords="446,263,566,291" title="" NOHREF onClick="Remove_All">
<area shape="rect" coords="444,319,564,350" title="" NOHREF onClick="Hide_Ctrls">
<area shape="rect" coords="444,375,565,403" title="" NOHREF onClick="Unhide_ctrls">
<area shape="circle" coords="318,25,9" title="" NOHREF onClick="Head">
<area shape="circle" coords="289,35,10" title="" NOHREF onClick="Neck_upper">
<area shape="circle" coords="272,57,10" title="" NOHREF onClick="Neck_mid">
<area shape="circle" coords="249,72,9" title="" NOHREF onClick="Neck_lower">
<area shape="circle" coords="73,175,10" title="" NOHREF onClick="Right">
<area shape="circle" coords="382,207,9" title="" NOHREF onClick="Left_arm">
<area shape="circle" coords="217,530,10" title="" NOHREF onClick="Right_foot">
<area shape="circle" coords="284,511,9" title="" NOHREF onClick="Left_foot">
<area shape="circle" coords="271,167,9" title="" NOHREF onClick="Spine_upper">
<area shape="circle" coords="262,194,10" title="" NOHREF onClick="Spine_mid">
<area shape="circle" coords="258,219,9" title="" NOHREF onClick="Spine_lower">
<area shape="circle" coords="260,248,11" title="" NOHREF onClick="COG">
<area shape="circle" coords="258,276,10" title="" NOHREF onClick="Hip">
<area shape="circle" coords="253,161,7" title="" NOHREF onClick="IK_spine_upper">
<area shape="circle" coords="242,192,7" title="" NOHREF onClick="IK_chest_handle">
<area shape="circle" coords="240,216,8" title="" NOHREF onClick="Ik_hip_handle">
<area shape="circle" coords="243,244,7" title="" NOHREF onClick="IK_spine_lower_ctrl">
<area shape="circle" coords="85,192,10" title="" NOHREF onClick="R_FK_wrist">
<area shape="circle" coords="142,148,9" title="" NOHREF onClick="R_FK_lowerArm">
<area shape="circle" coords="205,106,10" title="" NOHREF onClick="R_Fk_upperarm">
<area shape="circle" coords="159,174,5" title="" NOHREF onClick="R_arm_upvector">
<area shape="circle" coords="239,91,6" title="" NOHREF onClick="R_clavical">
<area shape="circle" coords="305,101,5" title="" NOHREF onClick="L_clavical">
<area shape="circle" coords="306,130,9" title="" NOHREF onClick="L_FK_upperarm">
<area shape="circle" coords="330,177,10" title="" NOHREF onClick="L_FK_lowerarm">
<area shape="circle" coords="370,220,10" title="" NOHREF onClick="L_FK_wrist">
<area shape="circle" coords="309,191,5" title="" NOHREF onClick="L_arm_upvector">
<area shape="circle" coords="341,401,7" title="" NOHREF onClick="L_knee_poleVector">
<area shape="circle" coords="363,401,9" title="" NOHREF onClick="L_leg_poleVector">
<area shape="circle" coords="293,425,8" title="" NOHREF onClick="R_knee_poleVector">
<area shape="circle" coords="313,425,8" title="" NOHREF onClick="R_leg_poleVector">
</map>

<img src="index.jpg" usemap="#SynopticMap">

</body>
</html>

Master Project Final




My Master Project at Bournemouth University was based on rigging of a werewolf. I was responsible for modeling, texturing and rigging of the character.
I would like to thank-
Chua Han Xiang who created the animation
Samir Rout provided me with base mesh on which I further built my model
Chitra Saini helped me with lighting and compositing
Dipti Gandhi guided me time to time on rigging issues