I wanted to do this JScript, but I had to do it in Python first, to establish that it was actually possible (with JScript, you’ve got to mess around with VBarrays and such).
# Using one of the CrowdFX sample scenes: Application.SelectObj("Pedestrian_Mesh.Actor_Copies", None, None); o = Application.Selection(0) a = o.ActivePrimitive.Geometry.GetICEAttributeFromName("Materials") print len(a.DataArray2D) print len(a.DataArray2D[0] ) print a.DataArray2D[0][0] for s in a.DataArray2D[0][0]: print s # 1 # 1 # (u'', u'Sources.Materials.PedestrianLib.Shoes', u'Sources.Materials.PedestrianLib.Hair', u'Sources.Materials.PedestrianLib.Legs', u'Sources.Materials.PedestrianLib.Skin', u'Sources.Materials.PedestrianLib.Shirt') # Sources.Materials.PedestrianLib.Shoes # Sources.Materials.PedestrianLib.Hair # Sources.Materials.PedestrianLib.Legs # Sources.Materials.PedestrianLib.Skin # Sources.Materials.PedestrianLib.Shirt
After I had it working in Python, I was able to figure it out in JScript:
// Using one of the CrowdFX sample scenes: SelectObj("Pedestrian_Mesh.Actor_Copies", null, null); o = Selection(0); a = o.ActivePrimitive.Geometry.GetICEAttributeFromName("Materials"); x = new VBArray( a.DataArray2D ).toArray(); y = new VBArray( x[0] ).toArray(); for ( var i = 0; i < y.length; i++ ) { LogMessage( y[i] ); }