Skip to content
Forum Archive

Two Dimensional Tentacles

15 posts

Pixelcraft#

Two Dimensional Tentacles

I made preset of a 2D version of the 3D tentacles .ape! Well, sort of.

UnConeD, if you're out there, what do you think? 🙂
Jaheckelsafar#
You don't really need the invert there. It might make a nice background, but I can't really see a presed based on that.
Pixelcraft#
UnConeD made a preset based on 3D tentacles, and he got showered with praise for it!(Of course he's got a reputaion as "the codemaster"😛 ) Oh well, I like it.

But I will change the DM coding to make it less repetitive; thanks making me realize that Anubis 🙂
hungryskull#
umm...this isn't a tentacles effect
I kind of agree with Atero. And this preset might look better with some colour.
This preset is Decent but could be a lot better.
Pixelcraft#
ReSubmmision

Resubmission
AVS Axer#
well. i think its very clever.
after looking at it, i was expect a much bigger dm code. But you have used a very nice method.
Some of the movement is too speedy and erratic, especially in the newer version.
Atero is right though, technikly (nghey), its not a 'tentacle' affect.
For a REAL tentacle affeect, you need to make the reaction time of each arm segment relative to its distance from the center, (d).
UnConeD#
You mean like this?

It calculates the 1th-4th derivatives at the current point and plugs them into a Taylor polynomial to get a good approximation of the tentacles' history of movement (as if you would use an array).
UnConeD#edited
There's a small error in the 2nd DM per point code. The polynomial contains d3 two times. The last one has to be d4.

For music responsiveness I've updated the 2nd DM. This code guarantees continuity until the 4th derivative, which prevents the tentacles from jumping around at the ends.

init:

elastic=1
per-frame:

sa=sa*.8+getspec(0,0.1,0)+.01;
st1=st1*.8+sa*.2;st2=st2*.8+st1*.2;st3=st3*.8+st2*.2;
ra=ra+(sin(t)+cos(t*.1)*(sin(t*.714)+.1)+sin(t*3.17)*.3)*st3*.1+(rt4-ra)*.2;
rt1=rt1*.8+rtg*.2;rt2=rt2*.8+rt1*.2;rt3=rt3*.8+rt2*.2;rt4=rt4*.8+rt3*.2;

d1=da*(1-elastic)+(ra-lra)*elastic;
d2=d2*(1-elastic)+(d1-ld1)*elastic;
d3=d3*(1-elastic)+(d2-ld2)*elastic;
d4=d4*(1-elastic)+(d3-ld3)*elastic;

lra=ra;ld1=d1;ld2=d2;ld3=d3;t=t-.05;
onbeat:

rtg=ra+(rand(200)*.01-1)*6*getspec(0,0,0)
per point:

dp=d*10;
r=r-d1*dp+d2*sqr(dp)*.5-d3*sqr(dp)*dp*.166+d4*sqr(sqr(dp))*.04166+ra;
Pixelcraft#
Wow, a remix by UnConeD, I feel so honored😁

That is really good! I've never seen 'elastic' used as a variable before🧟
dirkdeftly#
Originally posted by Pixelcraft
I've never seen 'elastic' used as a variable before🧟
...does it matter?

and yes, that is a very good tweak...i've been trying to get rid of those awful corner repititions with no luck, any suggestions?

oh, and couldn't you randomize that dm or make it respond to something? 😛