Пример #1
0
 def test_GetTimeOutputRanges(self):
     Tag=mTag.GetExportTagFromSelected('GameRoot')[0]
     result=[(name,'%0.2f' % start,'%0.2f' % end) for name,start,end in Tag.GetTimeOutputRanges()]
     assert result==[('Middle', '30.00', '60.00'), ('Start', '1.00', '22.00'), ('End', '61.00', '100.00'), ('', '101.00', '110.00')]
     Tag=mTag.GetExportTagFromSelected('Test_EntityGrp')[0]      
     assert Tag.GetTimeOutputRanges()==[('__timelines__', 1.0, 24.0)],\
                     'TimeOutputRanges incorrect, even without loopData this should return an output time for the exporter'
Пример #2
0
 def test_AddActiveTimeData(self):
     '''
     The VFX Tag has an extra attr "ManageEL4TimelineVis" which determines if the Visibility
     of each node should be derived from its keyed visibility state. This is then cast to an
     attr on the node and subsequently serialized to Collada
     '''
     tag=mTag.GetExportTagFromSelected(pCore.PyNode('vfx_visiblityDataCast'))[0]
     nodes=tag._ProcessBaseTagFilter()
     
     result=['%s,on:%0.2f,off:%0.2f' % (node.name(),node.TimelineStart.get(),node.TimelineEnd.get()) for node in nodes]
     expected=['pSphere2,on:1.00,off:19.00',
               'pSphere3,on:20.00,off:31.00',
               'pSphere4,on:32.00,off:49.00',
               'pSphere5,on:50.00,off:70.00',
               'pSphere6,on:71.00,off:85.00',
               'pSphere7,on:71.00,off:101.00',
               'pSphere8,on:102.00,off:117.00',
               'pSphere9,on:118.00,off:136.00',
             'pSphere10,on:137.00,off:137.00']
     assert result==expected
     assert not [node for node in nodes \
                 if not node.SerializeForExport.get()=='[["TimelineStart", "TimelineStart", false],["TimelineEnd", "TimelineEnd", false]]']
     #Try removing the data added
     for node in nodes:
         mTag.RemoveActiveTimeData(node)
     assert not [node for node in nodes if node.hasAttr('TimelineStart') \
                 or node.hasAttr('TimelineEnd')  or node.hasAttr('SerializeForExport')]
Пример #3
0
 def setup(self):
     pCore.openFile(MAYA_TEST_FILES_DIR + "FindTagTypes.ma", f=True)
     self.Tag=mTag.GetExportTagFromSelected('GameRoot')[0]
     self.Tag.m_Delete()
     self.Tag=mTag.AddExportTag('GameRoot', 'Character', 'MRIG')
     self.Tag.AddLoopData('TestLoop',23,46)
     self.Tag.AddOverRides(Nodes=[pCore.PyNode('L_Leg')])
Пример #4
0
 def test_DeleteSampleSpaceRef(self):
     Tag=mTag.GetExportTagFromSelected('CarGroup')[0]
     assert Tag.GetChildSampleSpace()==['EXP_Crate2', 'EXP_Driver']
     Tag.DeleteSampleSpaceRef()
     assert not Tag.GetChildSampleSpace()
     #Reset the scene as we've destroyed it here
     self.setup()
Пример #5
0
 def test_GetSampleSpace(self):
     #check this nodes SampleSpace setup
     pCore.select('joint1')
     Tag=mTag.GetExportTagFromSelected()[0]
     ss=Tag.GetSampleSpace()
     assert isinstance(ss, mTag.MExportTag_EntityGroup)
     assert ss.MetaNode=='EXP_Car'
     assert Tag.GetSampleSpace(TagOnly=False)=='|CarGroup'
Пример #6
0
 def test_B_ConvertScene(self):
     current=mTag.FindExportTags()
     mTag.ConvertSceneToMetaTags()
     new=mTag.FindExportTags()
     assert not new==current
     converted=mTag.GetExportTagFromSelected(pCore.PyNode('Old_ProxyTag'))[0]
     assert isinstance(converted,mTag.MExportTag_Entity)
             
             
Пример #7
0
 def test_AddLoopDataFromVisibility(self):
     '''
     From the given tag cast it's keyed visibilty into loopTag data
     NOTE: This uses the _GetKeyedVisibilityNode funct which is overloaded for characters
     '''
     tag=mTag.GetExportTagFromSelected(pCore.PyNode('VisibilityCastTest'))[0]
     assert tag._GetKeyedVisibilityNode()=='VisibilityCastTest'
     loops=tag.AddLoopDataFromVisibility()
     assert [loop.__repr__() for loop in loops]==['MExportTimeRange(TimeStamp: "Vis_00", Start: 22.78, End: 55.78)',
                                                     'MExportTimeRange(TimeStamp: "Vis_01", Start: 80.0, End: 129.0)',
                                                     'MExportTimeRange(TimeStamp: "Vis_02", Start: 158.0, End: 159.0)',
                                                     'MExportTimeRange(TimeStamp: "Vis_03", Start: 230.0, End: 275.0)',
                                                     'MExportTimeRange(TimeStamp: "Vis_04", Start: 290.0, End: 290.0)']
     result=[(name,'%0.2f' % start,'%0.2f' % end) for name,start,end in tag.GetLoopData(AsTime=False)]
     assert result==[('Vis_01', '80.00', '129.00'),
                     ('Vis_00', '22.78', '55.78'),
                     ('Vis_02', '158.00', '159.00'),
                     ('Vis_03', '230.00', '275.00'),
                     ('Vis_04', '290.00', '290.00')]
Пример #8
0
 def test_AddOverRides(self): 
     Tag=mTag.GetExportTagFromSelected('Test_Zone')[0] 
     includers=[pCore.PyNode(node) for node in ['Area_A1_pSphere4','Area_A2_pSphere6','Area_A3_pSphere4','Area_A3_pSphere5']]
     excluders=[pCore.PyNode(node) for node in ['Area_A1_pSphere2','Area_A2_pSphere4','Area_A3_pSphere2','Area_A3_pSphere3']]
     
     Tag.AddOverRides(Nodes=includers,State='Include')
     Tag.AddOverRides(Nodes=excluders,State='Exclude')
     assert Tag.GetOverRides(State='Include')==includers
     assert Tag.GetOverRides(State='Exclude')==excluders
     allOverrides=list(excluders)
     allOverrides.extend(includers)
     assert sorted(Tag.GetOverRides())==sorted(allOverrides)
     
     Tag.SetOverRides(includers,'Exclude')
     assert not Tag.GetOverRides(State='Include')
     assert Tag.GetOverRides(State='Exclude')==sorted(allOverrides)
     assert sorted(Tag.GetOverRides())==sorted(allOverrides)
     
     Tag.DeleteOverRides()
     assert Tag.GetOverRides()==[]
Пример #9
0
 def test_GetChildSampleSpace(self):
     #Check for child SampleSpaces
     pCore.select('CarGroup')
     Tag=mTag.GetExportTagFromSelected()[0]
     assert Tag.GetChildSampleSpace()==['EXP_Crate2', 'EXP_Driver']
     assert [t.MetaNode for t in Tag.GetChildSampleSpace(AsMetaData=True)]==['EXP_Crate2', 'EXP_Driver']==['EXP_Crate2', 'EXP_Driver']
Пример #10
0
 def test_EntityPerFrame(self):
     '''
     Test the conversion to single visibility switched nodes
     '''
     pCore.playbackOptions(min=1, max=50)
     tag=mTag.GetExportTagFromSelected(pCore.PyNode('pCube1'))[0]
     tag=tag.ConvertTagType('EntityPerFrame')
     data=tag._ProcessBaseTagFilter()
     
     #Test that the new nodes have the TimeLine Data cast over to them
     firstTenResults=['%s,on:%0.2f,off:%0.2f' % (node.name(),node.TimelineStart.get(),node.TimelineEnd.get()) for node in sorted(data)[:10]]
     assert firstTenResults==['EntityPerFrame_1,on:1.00,off:2.00',
                              'EntityPerFrame_10,on:10.00,off:11.00',
                              'EntityPerFrame_11,on:11.00,off:12.00',
                              'EntityPerFrame_12,on:12.00,off:13.00',
                              'EntityPerFrame_13,on:13.00,off:14.00',
                              'EntityPerFrame_14,on:14.00,off:15.00',
                              'EntityPerFrame_15,on:15.00,off:16.00',
                              'EntityPerFrame_16,on:16.00,off:17.00',
                              'EntityPerFrame_17,on:17.00,off:18.00',
                              'EntityPerFrame_18,on:18.00,off:19.00']
     
     expected=['EntityPerFrame_1',
              'EntityPerFrame_10',
              'EntityPerFrame_11',
              'EntityPerFrame_12',
              'EntityPerFrame_13',
              'EntityPerFrame_14',
              'EntityPerFrame_15',
              'EntityPerFrame_16',
              'EntityPerFrame_17',
              'EntityPerFrame_18',
              'EntityPerFrame_19',
              'EntityPerFrame_2',
              'EntityPerFrame_20',
              'EntityPerFrame_21',
              'EntityPerFrame_22',
              'EntityPerFrame_23',
              'EntityPerFrame_24',
              'EntityPerFrame_25',
              'EntityPerFrame_26',
              'EntityPerFrame_27',
              'EntityPerFrame_28',
              'EntityPerFrame_29',
              'EntityPerFrame_3',
              'EntityPerFrame_30',
              'EntityPerFrame_31',
              'EntityPerFrame_32',
              'EntityPerFrame_33',
              'EntityPerFrame_34',
              'EntityPerFrame_35',
              'EntityPerFrame_36',
              'EntityPerFrame_37',
              'EntityPerFrame_38',
              'EntityPerFrame_39',
              'EntityPerFrame_4',
              'EntityPerFrame_40',
              'EntityPerFrame_41',
              'EntityPerFrame_42',
              'EntityPerFrame_43',
              'EntityPerFrame_44',
              'EntityPerFrame_45',
              'EntityPerFrame_46',
              'EntityPerFrame_47',
              'EntityPerFrame_48',
              'EntityPerFrame_49',
              'EntityPerFrame_5',
              'EntityPerFrame_50',
              'EntityPerFrame_6',
              'EntityPerFrame_7',
              'EntityPerFrame_8',
              'EntityPerFrame_9'] 
     
     assert [n.name() for n in sorted(data)]==expected
     toClean=['EntityPerFrame']
     toClean.extend(expected)
     assert sorted(pCore.melGlobals['NodesToDeleteOnCleanUp'])==toClean
     
     #test the Cleanup calls
     tag._CleanupProcessedTagFilter()
     assert not pCore.melGlobals['NodesToDeleteOnCleanUp']
     assert not [n for n in data if pCore.PyNode(n).exists()]
Пример #11
0
 def test_ProgressiveMorphFilter(self):
     '''
     Test the convertion of the deformerData to linear blendshape
     '''
     pCore.playbackOptions(min=1, max=50)
     tag=mTag.GetExportTagFromSelected(pCore.PyNode('pCube1'))[0]
     data=tag._ProcessBaseTagFilter()
     
     #Note the actual Tagged Node is NOT passed into the filtered nodes!
     assert data==['pCube1_progressive']
     
     #Test the generated Progressive network
     node=data[0]
     shape=node.getShape()
     shape.listHistory(type='mesh')
     blendshape=shape.listHistory(type='blendShape')[0]
     assert blendshape.name()=='blendShape1'
     assert blendshape.getTarget()==['Progressive_1',
                              'Progressive_2',
                              'Progressive_3',
                              'Progressive_4',
                              'Progressive_5',
                              'Progressive_6',
                              'Progressive_7',
                              'Progressive_8',
                              'Progressive_9',
                              'Progressive_10',
                              'Progressive_11',
                              'Progressive_12',
                              'Progressive_13',
                              'Progressive_14',
                              'Progressive_15',
                              'Progressive_16',
                              'Progressive_17',
                              'Progressive_18',
                              'Progressive_19',
                              'Progressive_20',
                              'Progressive_21',
                              'Progressive_22',
                              'Progressive_23',
                              'Progressive_24',
                              'Progressive_25',
                              'Progressive_26',
                              'Progressive_27',
                              'Progressive_28',
                              'Progressive_29',
                              'Progressive_30',
                              'Progressive_31',
                              'Progressive_32',
                              'Progressive_33',
                              'Progressive_34',
                              'Progressive_35',
                              'Progressive_36',
                              'Progressive_37',
                              'Progressive_38',
                              'Progressive_39',
                              'Progressive_40',
                              'Progressive_41',
                              'Progressive_42',
                              'Progressive_43',
                              'Progressive_44',
                              'Progressive_45',
                              'Progressive_46',
                              'Progressive_47',
                              'Progressive_48',
                              'Progressive_49',
                              'Progressive_50']
Пример #12
0
 def test_GetExportTagFromSelected_PyNode(self):
     Tag=mTag.GetExportTagFromSelected(pCore.PyNode('GameRoot'))[0]
     assert isinstance(Tag,mTag.MExportTag_Character)
     assert Tag.TagNote=='MRIG'
     assert Tag.rootNode()=='GameRoot'
     assert Tag.TagType=='Character'
Пример #13
0
 def test_RemoveExportTags(self):
     self.TestTag=mTag.AddExportTag('NewNode', 'Entity', 'EntityTag')
     assert self.TestTag.MetaNode=='EXP_EntityTag'
     mTag.RemoveExportTags('NewNode')
     assert not mTag.GetExportTagFromSelected(pCore.PyNode('NewNode'))
Пример #14
0
 def test_GetLoopData_FromSelected_asString(self):
     Tag=mTag.GetExportTagFromSelected('GameRoot')[0]
     loops=Tag.GetLoopData(AsTime=False)
     result=[(name,'%0.2f' % start,'%0.2f' % end) for name,start,end in loops]
     assert result== [('Middle', '30.00', '60.00'), ('Start', '1.00', '22.00'), ('End', '61.00', '100.00'), ('', '101.00', '110.00')]
Пример #15
0
 def test_GetLoopData_FromSelected_asTime(self):
     Tag=mTag.GetExportTagFromSelected('GameRoot')[0]
     loops=Tag.GetLoopData(AsTime=True)
     assert [loop.MetaNode for loop in loops]==['Middle','Start','End','MExportTimeRange']
     assert [loop.TimeStamp for loop in loops]== ['Middle', 'Start', 'End', '']
Пример #16
0
 def test_GetMSRCExport(self):
     tag=mTag.GetExportTagFromSelected('GameRoot')[0]
     MChar=tag.GetMSRC_Export()
     assert isinstance(MChar,meta.eMCharacter.MSRC)
Пример #17
0
 def test_GetExportTagFromSelected_Cmds(self):
     Tag=mTag.GetExportTagFromSelected('Test_Zone')[0]
     assert isinstance(Tag,mTag.MExportTag_Zone)
     assert Tag.TagNote=='Zone'
     assert Tag.rootNode()=='Test_Zone'
     assert Tag.TagType=='Zone'