diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_01/__init__.py b/release/scripts/mgear/shifter_classic_components/shoulder_01/__init__.py
index fb998734..78d9563d 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_01/__init__.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_01/__init__.py
@@ -26,6 +26,9 @@ def addObjects(self):
self.length0 = vector.getDistance(self.guide.apos[0],
self.guide.apos[1])
+ if self.settings["mirrorBehaviour"] and self.negate:
+ self.length0 = self.length0 * -1
+
t = transform.getTransformLookingAt(self.guide.apos[0],
self.guide.apos[1],
self.normal,
@@ -47,6 +50,18 @@ def addObjects(self):
po=datatypes.Vector(.5 * self.length0 * self.n_factor, 0, 0),
tp=self.parentCtlTag)
+ rot_offset = (0, 0, 0)
+ if self.settings["mirrorBehaviour"] and self.negate:
+ t = transform.getTransformLookingAt(self.guide.apos[0],
+ self.guide.apos[1],
+ self.normal,
+ axis="-xy",
+ negate=self.negate)
+ t = transform.setMatrixPosition(t, [0, 0, 0])
+ t = transform.setMatrixScale(t, [1, -1, 1])
+ self.ctl_npo.setMatrix(t)
+ rot_offset = (180, 180, 0)
+
t = transform.getTransformFromPos(self.guide.apos[1])
self.orbit_ref1 = primitive.addTransform(
self.ctl, self.getName("orbit_ref1"), t)
@@ -66,8 +81,16 @@ def addObjects(self):
w=self.length0 / 4,
tp=self.ctl)
- self.jnt_pos.append([self.ctl, "shoulder"])
+ if self.settings["mirrorBehaviour"] and self.negate:
+ self.orbit_cns.sx.set(-1)
+ self.jnt_pos.append(
+ {
+ "obj": self.ctl,
+ "name": "shoulder",
+ "rot_off": rot_offset,
+ }
+ )
# =====================================================
# ATTRIBUTES
# =====================================================
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_01/guide.py b/release/scripts/mgear/shifter_classic_components/shoulder_01/guide.py
index 8e6c674a..29e2da5e 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_01/guide.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_01/guide.py
@@ -12,10 +12,10 @@
from . import settingsUI as sui
# guide info
-AUTHOR = "Jeremie Passerin, Miquel Campos"
+AUTHOR = "Jeremie Passerin, Miquel Campos, Joji Nishimura"
URL = ", www.miquletd.com"
EMAIL = ", "
-VERSION = [1, 0, 0]
+VERSION = [1, 1, 0]
TYPE = "shoulder_01"
NAME = "shoulder"
DESCRIPTION = "Simple shoulder with space switch for\n the arm, and Orbit " \
@@ -59,6 +59,7 @@ def addParameters(self):
self.pRefArray = self.addParam("refArray", "string", "")
self.pUseIndex = self.addParam("useIndex", "bool", False)
+ self.pMirrorBehaviour = self.addParam("mirrorBehaviour", "bool", False)
self.pParentJointIndex = self.addParam(
"parentJointIndex", "long", -1, None, None)
@@ -114,6 +115,13 @@ def populate_componentControls(self):
# populate tab
self.tabs.insertTab(1, self.settingsTab, "Component Settings")
+ if self.root.attr("mirrorBehaviour").get():
+ self.settingsTab.mirrorBehaviour_checkBox.setCheckState(
+ QtCore.Qt.Checked)
+ else:
+ self.settingsTab.mirrorBehaviour_checkBox.setCheckState(
+ QtCore.Qt.Unchecked)
+
# populate component settings
refArrayItems = self.root.attr("refArray").get().split(",")
for item in refArrayItems:
@@ -128,6 +136,10 @@ def create_componentLayout(self):
self.setLayout(self.settings_layout)
def create_componentConnections(self):
+ self.settingsTab.mirrorBehaviour_checkBox.stateChanged.connect(
+ partial(self.updateCheck,
+ self.settingsTab.mirrorBehaviour_checkBox,
+ "mirrorBehaviour"))
self.settingsTab.refArrayAdd_pushButton.clicked.connect(
partial(self.addItem2listWidget,
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.py b/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.py
index 6dbefe37..73cb1d43 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.py
@@ -33,6 +33,15 @@ def setupUi(self, Form):
Form.resize(284, 207)
self.gridLayout = QtWidgets.QGridLayout(Form)
self.gridLayout.setObjectName("gridLayout")
+ self.mirrorBehaviour_groupBox = QtWidgets.QGroupBox(Form)
+ self.mirrorBehaviour_groupBox.setTitle("")
+ self.mirrorBehaviour_groupBox.setObjectName("mirrorBehaviour_groupBox")
+ self.mirrorBehaviour_gridLayout = QtWidgets.QGridLayout(self.mirrorBehaviour_groupBox)
+ self.mirrorBehaviour_gridLayout.setObjectName("mirrorBehaviour_gridLayout")
+ self.mirrorBehaviour_checkBox = QtWidgets.QCheckBox(Form)
+ self.mirrorBehaviour_checkBox.setObjectName("mirrorBehaviour_checkBox")
+ self.mirrorBehaviour_gridLayout.addWidget(self.mirrorBehaviour_checkBox)
+ self.gridLayout.addWidget(self.mirrorBehaviour_groupBox, 0, 0, 1, 1)
self.upvRefArray_groupBox = QtWidgets.QGroupBox(Form)
self.upvRefArray_groupBox.setObjectName("upvRefArray_groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.upvRefArray_groupBox)
@@ -63,13 +72,14 @@ def setupUi(self, Form):
self.upvRefArray_verticalLayout_2.addItem(spacerItem)
self.upvRefArray_horizontalLayout.addLayout(self.upvRefArray_verticalLayout_2)
self.gridLayout_2.addLayout(self.upvRefArray_horizontalLayout, 0, 0, 1, 1)
- self.gridLayout.addWidget(self.upvRefArray_groupBox, 0, 0, 1, 1)
+ self.gridLayout.addWidget(self.upvRefArray_groupBox, 1, 0, 1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(gqt.fakeTranslate("Form", "Form", None, -1))
+ self.mirrorBehaviour_checkBox.setText(gqt.fakeTranslate("Form", "Mirror Behaviour L and R", None, -1))
self.upvRefArray_groupBox.setTitle(gqt.fakeTranslate("Form", "Reference Array", None, -1))
self.refArrayAdd_pushButton.setText(gqt.fakeTranslate("Form", "<<", None, -1))
self.refArrayRemove_pushButton.setText(gqt.fakeTranslate("Form", ">>", None, -1))
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.ui b/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.ui
index 36c583db..b447cf1a 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.ui
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_01/settingsUI.ui
@@ -7,7 +7,7 @@
0
0
284
- 207
+ 361
@@ -15,12 +15,32 @@
-
+
+
+
+
+
+
-
+
+
-
+
+
+ Mirror Behaviour L and R
+
+
+
+
+
+
+
+
+ -
Reference Array
-
-
+
-
-
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_02/__init__.py b/release/scripts/mgear/shifter_classic_components/shoulder_02/__init__.py
index dba24156..4bd9122d 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_02/__init__.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_02/__init__.py
@@ -26,6 +26,9 @@ def addObjects(self):
self.length0 = vector.getDistance(self.guide.apos[0],
self.guide.apos[1])
+ if self.settings["mirrorBehaviour"] and self.negate:
+ self.length0 = self.length0 * -1
+
t = transform.getTransformLookingAt(self.guide.apos[0],
self.guide.apos[1],
self.normal,
@@ -47,6 +50,18 @@ def addObjects(self):
po=datatypes.Vector(.5 * self.length0 * self.n_factor, 0, 0),
tp=self.parentCtlTag)
+ rot_offset = (0, 0, 0)
+ if self.settings["mirrorBehaviour"] and self.negate:
+ t = transform.getTransformLookingAt(self.guide.apos[0],
+ self.guide.apos[1],
+ self.normal,
+ axis="-xy",
+ negate=self.negate)
+ t = transform.setMatrixPosition(t, [0, 0, 0])
+ t = transform.setMatrixScale(t, [1, -1, 1])
+ self.ctl_npo.setMatrix(t)
+ rot_offset = (180, 180, 0)
+
t = transform.getTransformFromPos(self.guide.apos[2])
self.orbit_ref1 = primitive.addTransform(
self.ctl, self.getName("orbit_ref1"), t)
@@ -66,8 +81,16 @@ def addObjects(self):
w=self.length0 / 4,
tp=self.ctl)
- self.jnt_pos.append([self.ctl, "shoulder"])
+ if self.settings["mirrorBehaviour"] and self.negate:
+ self.orbit_cns.sx.set(-1)
+ self.jnt_pos.append(
+ {
+ "obj": self.ctl,
+ "name": "shoulder",
+ "rot_off": rot_offset,
+ }
+ )
# =====================================================
# ATTRIBUTES
# =====================================================
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_02/guide.py b/release/scripts/mgear/shifter_classic_components/shoulder_02/guide.py
index 03a80c2a..e870c7ce 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_02/guide.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_02/guide.py
@@ -12,10 +12,10 @@
from . import settingsUI as sui
# guide info
-AUTHOR = "anima inc."
+AUTHOR = "anima inc., Joji Nishimura"
URL = "www.studioanima.co.jp"
EMAIL = ""
-VERSION = [1, 0, 0]
+VERSION = [1, 1, 0]
TYPE = "shoulder_02"
NAME = "shoulder"
DESCRIPTION = "Simple shoulder with space switch for\n the arm, and Orbit " \
@@ -63,6 +63,7 @@ def addParameters(self):
self.pRefArray = self.addParam("refArray", "string", "")
self.pUseIndex = self.addParam("useIndex", "bool", False)
+ self.pMirrorBehaviour = self.addParam("mirrorBehaviour", "bool", False)
self.pParentJointIndex = self.addParam(
"parentJointIndex", "long", -1, None, None)
@@ -118,6 +119,13 @@ def populate_componentControls(self):
# populate tab
self.tabs.insertTab(1, self.settingsTab, "Component Settings")
+ if self.root.attr("mirrorBehaviour").get():
+ self.settingsTab.mirrorBehaviour_checkBox.setCheckState(
+ QtCore.Qt.Checked)
+ else:
+ self.settingsTab.mirrorBehaviour_checkBox.setCheckState(
+ QtCore.Qt.Unchecked)
+
# populate component settings
refArrayItems = self.root.attr("refArray").get().split(",")
for item in refArrayItems:
@@ -132,6 +140,10 @@ def create_componentLayout(self):
self.setLayout(self.settings_layout)
def create_componentConnections(self):
+ self.settingsTab.mirrorBehaviour_checkBox.stateChanged.connect(
+ partial(self.updateCheck,
+ self.settingsTab.mirrorBehaviour_checkBox,
+ "mirrorBehaviour"))
self.settingsTab.refArrayAdd_pushButton.clicked.connect(
partial(self.addItem2listWidget,
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.py b/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.py
index 2bd4970c..8587b32a 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.py
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.py
@@ -33,6 +33,15 @@ def setupUi(self, Form):
Form.resize(284, 207)
self.gridLayout = QtWidgets.QGridLayout(Form)
self.gridLayout.setObjectName("gridLayout")
+ self.mirrorBehaviour_groupBox = QtWidgets.QGroupBox(Form)
+ self.mirrorBehaviour_groupBox.setTitle("")
+ self.mirrorBehaviour_groupBox.setObjectName("mirrorBehaviour_groupBox")
+ self.mirrorBehaviour_gridLayout = QtWidgets.QGridLayout(self.mirrorBehaviour_groupBox)
+ self.mirrorBehaviour_gridLayout.setObjectName("mirrorBehaviour_gridLayout")
+ self.mirrorBehaviour_checkBox = QtWidgets.QCheckBox(Form)
+ self.mirrorBehaviour_checkBox.setObjectName("mirrorBehaviour_checkBox")
+ self.mirrorBehaviour_gridLayout.addWidget(self.mirrorBehaviour_checkBox)
+ self.gridLayout.addWidget(self.mirrorBehaviour_groupBox, 0, 0, 1, 1)
self.upvRefArray_groupBox = QtWidgets.QGroupBox(Form)
self.upvRefArray_groupBox.setObjectName("upvRefArray_groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.upvRefArray_groupBox)
@@ -63,13 +72,14 @@ def setupUi(self, Form):
self.upvRefArray_verticalLayout_2.addItem(spacerItem)
self.upvRefArray_horizontalLayout.addLayout(self.upvRefArray_verticalLayout_2)
self.gridLayout_2.addLayout(self.upvRefArray_horizontalLayout, 0, 0, 1, 1)
- self.gridLayout.addWidget(self.upvRefArray_groupBox, 0, 0, 1, 1)
+ self.gridLayout.addWidget(self.upvRefArray_groupBox, 1, 0, 1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(gqt.fakeTranslate("Form", "Form", None, -1))
+ self.mirrorBehaviour_checkBox.setText(gqt.fakeTranslate("Form", "Mirror Behaviour L and R", None, -1))
self.upvRefArray_groupBox.setTitle(gqt.fakeTranslate("Form", "Reference Array", None, -1))
self.refArrayAdd_pushButton.setText(gqt.fakeTranslate("Form", "<<", None, -1))
self.refArrayRemove_pushButton.setText(gqt.fakeTranslate("Form", ">>", None, -1))
diff --git a/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.ui b/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.ui
index 36c583db..8a4be24c 100644
--- a/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.ui
+++ b/release/scripts/mgear/shifter_classic_components/shoulder_02/settingsUI.ui
@@ -15,12 +15,32 @@
-
+
+
+
+
+
+
-
+
+
-
+
+
+ Mirror Behaviour L and R
+
+
+
+
+
+
+
+
+ -
Reference Array
-
-
+
-
-