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 - +