I’m wondering if it’s possible for Replicator to randomize a certain axis for an object within a class, while leaving one or two unchanged from the original position.
I tried this with 4 cones, placed them under the same class and placed them at different points on the z-axis. My goal is to randomize the x-axis, set the y-axis to a set point, and have the z-axis be unaffected by replicator, keeping the cones at the same points they originated.
Do I have to modify.attribute the x-axis? Setting the modifier to only one number affects all of the axis’. Here’s the code I have so far
import omni.replicator.core as rep
camera = rep.create.camera(position=(0, 300, 550), rotation=(-25, 0, 0), focal_length = 18.14756)
render_product = rep.create.render_product(camera, (1920, 1200))
cone1 = rep.create.cone(position=(0, 0, 0), semantics=[('class', 'cone')] cone2 = rep.create.cone(position=(0, 20, -120), semantics=[('class', 'cone')] cone3 = rep.create.cone(position=(0, 40, -240), semantics=[('class', 'cone')] cone4 = rep.create.cone(position=(0, 60, -360), semantics=[('class', 'cone')] def cone_move(): with rep.get.prims(semantics=[('class', 'cone')]): rep.modify.pose(position = rep.distribution.uniform((-120, 0, null), (120, 0, null))) rep.randomizer.register(cone_move) with rep.trigger.on_frame(num_frames=10, rt_subframes=32): rep.randomizer.cone_move() writer = rep.WriterRegistry.get("BasicWriter") writer.initialize( output_dir="coneTest", rgb=True) writer.attach([render_product])