how to pass a ramp parameter of a hda to a node inside the hda?

   3294   7   0
User Avatar
Member
25 posts
Joined: 7月 2018
Offline
I create a hda, and add a ramp parameter slope_ramp.
for example, i use a heightfield_maskbyfeature node, it have some ramp parameter.


How to pass the hda's ramp parameter slope_ramp to the node heightfield_maskbyfeature1 sloperamp parameter?
And then if i change the slope_ramp, heightfield_maskbyfeature1 sloperamp will change accordingly.

Thanks.
Edited by ChenA - 2019年10月23日 09:45:16

Attachments:
parameter.PNG (55.4 KB)

User Avatar
Member
8766 posts
Joined: 7月 2007
Offline
you can either create your HDA ramp parameter by promoting then ramp from internal node (dragging to parameter list or using From Nodes Tab)

OR if you already have both ramp parameters created

on your HDA's Slope Ramp RMB/Copy Parameter
on internal node's Slope Ramp RMP/Paste Relative References
Edited by tamte - 2019年10月23日 11:39:50
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
25 posts
Joined: 7月 2018
Offline
It works, thanks.
User Avatar
Member
25 posts
Joined: 7月 2018
Offline
The ramp parameter sometimes work, sometimes don't work.
It seems have some bug.

I create a heightfield mask byfeature node, it have a toggle parameter “Mask By Slope”, and a Ramp parametr “SlopeRamp”.




I create a toggle parameter “enable_slope” and a ramp parameter “slope_ramp” for hda.
I use ch(“../../enable_slope”) and ch(“../../slope_ramp”) to connect the hda parameter and heightfield mask byfeature node parameter.

the toggle parameter works, but the ramp parameter don't work.
Edited by ChenA - 2019年11月1日 06:56:29

Attachments:
ramp_param.png (10.9 KB)
RampTest.hda (18.5 KB)

User Avatar
Member
8766 posts
Joined: 7月 2007
Offline
ChenA
I use ch(“../../enable_slope”) and ch(“../../slope_ramp”) to connect the hda parameter and heightfield mask byfeature node parameter.
it wouldn't work if you just put ch(“../../slope_ramp”) as an expression in there, use one of the mentioned methods as those link the ramp multiparm properly
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
25 posts
Joined: 7月 2018
Offline
tamte
ChenA
I use ch(“../../enable_slope”) and ch(“../../slope_ramp”) to connect the hda parameter and heightfield mask byfeature node parameter.
it wouldn't work if you just put ch(“../../slope_ramp”) as an expression in there, use one of the mentioned methods as those link the ramp multiparm properly

Thanks.
When i use “Paste Relative References” it works.
I check the expressions, it's “ch(”../../slope_ramp“)”.

But when i use a foreach in the hda, i need the expressions to be something like
“ch(strcat(”../../slope_ramp“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”,
“detail(”../foreach_count1/“, ”iteration“, 0) + 1” is the index.

then sometimes the ramp don't work, but the toggle (“ch(strcat(”../../enable_slope“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”) always work.

because the loop times is variable(read form a json use python), so i can't use the method you mention before.
why can't just use the expression like the toggle parameter?
Thanks.
Edited by ChenA - 2019年11月4日 01:35:44
User Avatar
Member
159 posts
Joined: 2月 2018
Offline
ChenA
tamte
ChenA
I use ch(“../../enable_slope”) and ch(“../../slope_ramp”) to connect the hda parameter and heightfield mask byfeature node parameter.
it wouldn't work if you just put ch(“../../slope_ramp”) as an expression in there, use one of the mentioned methods as those link the ramp multiparm properly

Thanks.
When i use “Paste Relative References” it works.
I check the expressions, it's “ch(”../../slope_ramp“)”.

But when i use a foreach in the hda, i need the expressions to be something like
“ch(strcat(”../../slope_ramp“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”,
“detail(”../foreach_count1/“, ”iteration“, 0) + 1” is the index.

then sometimes the ramp don't work, but the toggle (“ch(strcat(”../../enable_slope“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”) always work.

because the loop times is variable(read form a json use python), so i can't use the method you mention before.
why can't just use the expression like the toggle parameter?
Thanks.

Yeah, the ramp parm is buggy with multi-parm block / for loop. So I just replace it with VEX chramp to direct get the ramp from the parameter panel.
The Import Block is not work well with multi-parm block / for loop as far as my experience.
User Avatar
Member
25 posts
Joined: 7月 2018
Offline
EricSheng
ChenA
tamte
ChenA
I use ch(“../../enable_slope”) and ch(“../../slope_ramp”) to connect the hda parameter and heightfield mask byfeature node parameter.
it wouldn't work if you just put ch(“../../slope_ramp”) as an expression in there, use one of the mentioned methods as those link the ramp multiparm properly

Thanks.
When i use “Paste Relative References” it works.
I check the expressions, it's “ch(”../../slope_ramp“)”.

But when i use a foreach in the hda, i need the expressions to be something like
“ch(strcat(”../../slope_ramp“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”,
“detail(”../foreach_count1/“, ”iteration“, 0) + 1” is the index.

then sometimes the ramp don't work, but the toggle (“ch(strcat(”../../enable_slope“, detail(”../foreach_count1/“, ”iteration“, 0) + 1))”) always work.

because the loop times is variable(read form a json use python), so i can't use the method you mention before.
why can't just use the expression like the toggle parameter?
Thanks.

Yeah, the ramp parm is buggy with multi-parm block / for loop. So I just replace it with VEX chramp to direct get the ramp from the parameter panel.
The Import Block is not work well with multi-parm block / for loop as far as my experience.

You use vex chramp to set the ramp parameter of a node? How?
Or you just get the ramp value in vex node?
Thanks.
  • Quick Links