-
Notifications
You must be signed in to change notification settings - Fork 0
/
mr_cycle_manipMode_independent.mel
86 lines (70 loc) · 2.87 KB
/
mr_cycle_manipMode_independent.mel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// ------------------------------------------------------------------------------------------------------------------------------------------------
// SCRIPT: cycleManipMode_independent
// VERSION: 0001
//
// CREATORS: Maria Robertson
// -------------------------------------------------------------------
//
// DESCRIPTION:
// Change the Axis Orientation mode of the Move and Rotate manipulators independently.
// Can be of interest if you often toggle between World and Object move while translating objects, but
// always animate rotations on Gimbal.
//
// EXAMPLE USES:
// Assign the run command to a hotkey, to toggle modes of whichever of the manipulators are currently being used.
//
// -------------------------------------------------------------------
//
// RUN COMMAND:
// CycleManipMode_Independent() ;
//
// -------------------------------------------------------------------
// CHANGELOG:
// 2023-03-29 - V1
//
// ------------------------------------------------------------------------------------------------------------------------------------------------
global proc CycleManipMode_Independent() {
// -------------------------------------------------------------------
// 01. CHANGE TRANSLATE MANIPULATOR MODE
// -------------------------------------------------------------------
// query what manipulator is active
string $activeTool = `currentCtx -tool`;
// if the translate manipulator is being used
if ($activeTool == "moveSuperContext") {
// query what mode its on
string $manip_Trans = `manipMoveContext -q -mode Move`;
// if mode is World
if ($manip_Trans == 2) {
// change to Object
manipMoveContext -edit -mode 0 Move ;
}
// if mode is not Object
else {
// change to World
manipMoveContext -edit -mode 2 Move ;
}
}
// -------------------------------------------------------------------
// 01. CHANGE ROTATE MANIPULATOR MODE
// -------------------------------------------------------------------
// if the rotate manipulator is being used
else if ($activeTool == "RotateSuperContext") {
// check what mode its on
string $manip_Rot = `manipRotateContext -q -mode Rotate` ;
// if mode is Object
if ($manip_Rot == 0) {
// change to World
manipRotateContext -edit -mode 1 Rotate ;
}
// if mode is World
if ($manip_Rot == 1) {
// change to Gimbal
manipRotateContext -edit -mode 2 Rotate ;
}
// if mode is Gimbal
if ($manip_Rot == 2) {
// change to Object
manipRotateContext -edit -mode 0 Rotate ;
}
}
}