def setKey(controlers=xsi.Selection): if not controlers.Count: uit.msgBox("Nothing selected", c.siMsgExclamation, "Key Selection Failed") return False keyable_params = getKeyableParameters(controlers) if not keyable_params.Count: uit.msgBox("There is no keyable parameter on selection", c.siMsgExclamation, "Key Selection Failed") return False # Save Key playcontrol = xsi.GetValue("PlayControl") # Some Keyable display parameters (id) can be in the list, we need to remove them # or some parameters with expression on them itemsToRemove = XSIFactory.CreateObject("XSI.Collection") for param in keyable_params: if not param.Animatable or param.isAnimated(c.siExpressionSource): itemsToRemove.Add(param) if itemsToRemove.Count: keyable_params.RemoveItems(itemsToRemove) xsi.SaveKey(keyable_params, playcontrol.Parameters("Key").Value) return True
def importFromXml(self, path): if not self.setFromFile(path): return if not self.valid: uit.msgBox("Imported guide is not up to date, Check log for missing element") self.draw() self.model.Name = os.path.basename(path).split(".")[0] xsi.SelectObj(self.model) return self.model
def deleteReference(prop, list_name, item_name): if not prop.Parameters(list_name).Value: return a = prop.Parameters(list_name).Value.split(",") if uit.msgBox("Are you sure you want to delete this reference", c.siMsgExclamation | c.siMsgYesNo, "Confirm") == c.siMsgNo: return a.pop(prop.Parameters(item_name).Value) # build combobox items array items = [] for i, name in enumerate(a): items.append(name) items.append(i) layout = prop.PPGLayout item = layout.Item(item_name) item.UIItems = items if items: prop.Parameters(list_name).Value = ",".join(a) prop.Parameters(item_name).Value = items[-1] else: prop.Parameters(list_name).Value = "" prop.Parameters(item_name).Value = 0
def deleteReference(prop, list_name, item_name): if not prop.Parameters(list_name).Value: return a = prop.Parameters(list_name).Value.split(",") if uit.msgBox("Are you sure you want to delete this reference" , c.siMsgExclamation|c.siMsgYesNo, "Confirm") == c.siMsgNo: return a.pop(prop.Parameters(item_name).Value) # build combobox items array items = [] for i, name in enumerate(a): items.append(name) items.append(i) layout = prop.PPGLayout item = layout.Item(item_name) item.UIItems = items if items: prop.Parameters(list_name).Value = ",".join(a) prop.Parameters(item_name).Value = items[-1] else: prop.Parameters(list_name).Value = "" prop.Parameters(item_name).Value = 0
def createXtraRig(model): return xrig_org = model.FindChild(XRIG_ORG_NAME) if xrig_org: uit.msgBox("There is already a %s null on this model"%XRIG_ORG_NAME, c.siMsgExclamation, "Xtra Rig Creation Failed") return xtra_org # Create xtra rig root null xrig_org = model.AddNull(XRIG_ORG_NAME) xrig_anim_prop = xrig_org.Properties("anim_prop") xrig_setup_prop = xrig_org.Properties("setup_prop") # Add null to group hidden_grp = model.Group("hidden_grp") if hidden_grp: hidden.grp.AddMember(xrig_org) return xrig_org
def update(self, sel): if sel.Type == "#model": self.model = sel else: self.model = sel.Model name = self.model.Name self.setFromHierarchy(self.model, True) if self.valid: rtn = uit.msgBox("No error detected. \n Do you really want to update it ?", c.siMsgYesNo, "Guide Update") if rtn == c.siMsgNo: return self.model.Name = name + "_old" self.draw() self.model.Name = name
def update(self, sel): if sel.Type == "#model": self.model = sel else: self.model = sel.Model name = self.model.Name self.setFromHierarchy(self.model, True) if self.valid: rtn = uit.msgBox("No error detected. \n Do you really want to update it ?", c.siMsgYesNo, "Guide Update") if rtn == c.siMsgNo: return self.model.Name = name+"_old" self.draw() self.model.Name = name