TRIVIAL BUG: RBD Object Creation Frame

   4415   4   0
User Avatar
Member
387 posts
Joined: July 2005
Offline
Hi,

Linux houdini 8.0.383

If the Creation Frame parameter on an RBD Object is not an Integer, then the Object will not be created. Eg. Set it to 3.5 (halfway between frame 3 and 4).

There seems to be lots of ways to fix this. The RBD Object is an HDA, so dropping down inside it, the Activation expression in the Empty Object could be changed from: $FF == ch(“../createframe”) to: $FF >= ch(“../createframe”)
At least the use of $FF suggests a floating point frame number was expected. .

Alternately, the parameter could be changed from Float to Integer in the HDA's Type Properties panel (woo! I just noticed that sliders of Integer type parameters now create Integer values, not floating point values! yay!).

Though I think this was meant to be a float. Changing the type on an existing parameter in a “published” HDA is a nightmare when they're already being used. Lots of incompatibilty errors. Don't mention the war. :-) I gather the best approach is to make a new parameter which replaces the functionality of the old parm, and then set the old parm to be “invisible” in the Type Properties window. That way the parm still exists, so you don't get errors when loading, etc. And you then get everyone to use the new parm. (?). ooops. I mentioned it once.

Perhaps there's some way to make the frame-number-test check more often (increase the sampling somehow?)

cheers,
ben.
''You're always doing this: reducing it to science. Why can't it be real?'' – Jackie Tyler
User Avatar
Staff
1449 posts
Joined: July 2005
Offline
OK, bug submitted. Thanks.
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Actually I don't think there is any bug here.

Two problems….

With doing the
$FF >= ch(“../createframe”)

You get an object created on every time step.. so after 10 frames you have 10 objects instead of just one.

Second,

Since your start frame is say 1.5 you need to make sure your simulation time steps match up. By Default the simulation does a time step every (1/$FPS). If you want it to catch your start frames of 1.5 then you could change your time step to be (1/$FPS*2) or you could set the Offset time to something like ((1/$FPS)/2) (You can change both these parameters on the DOPNet itself).
if(coffees<2,round(float),float)
User Avatar
Member
387 posts
Joined: July 2005
Offline
ben simons
Perhaps there's some way to make the frame-number-test check more often (increase the sampling somehow?)
Wolfwood
If you want it to catch your start frames of 1.5 then you could change your time step to be (1/$FPS*2) or you could set the Offset time to something like ((1/$FPS)/2)
aha. That's what I was looking for. Thanks wolfwood. I agree, it's not a bug.

I tried an example where I adjusted the Offset Time parm with an expression:

if($FF<3, ((1/$FPS)/2), 0).

You might want this for two objects: one created at frame 2.5, and the other at frame-5. Well, it didn't work. It appears the offset is only evaluated once, at the beginning. Flipping the “<” to “>” proved this: the offset remained at 0 instead.

However! The Time Step parameter is regularly evaluated, and so for the above example (2 RBD Object creations, at frames 2.5 and 5) the following expression worked:

if($FF<3, ((1/$FPS)/2), 1/$FPS).

Coool. Now! there's a solution look'n for a problem!! eh? … I hadn't noticed the parameters in the Simulation Tab of the DopNet itself. :-) thanks.

experimentally,
ben.
''You're always doing this: reducing it to science. Why can't it be real?'' – Jackie Tyler
User Avatar
Member
387 posts
Joined: July 2005
Offline
ben simons
The RBD Object is an HDA, so dropping down inside it, the Activation expression in the Empty Object could be changed from: $FF == ch(“../createframe”) to: $FF >= ch(“../createframe”)
At least the use of $FF suggests a floating point frame number was expected.

Hey,

I hear $SF is a “good thing” to use in preference to $FF

eg: $SF == ch(“../createframe”)

??

cheers,
ben.
''You're always doing this: reducing it to science. Why can't it be real?'' – Jackie Tyler
  • Quick Links