RaQdoll

Discuss anything not covered by any of the other categories.
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

RaQdoll

Post by Error »

Been slowly modding in my spare time, which doesn't happen too incredibly often. Working on ragdolls in Quake.
No extensions needed. Just multiple models and good ole Quake physics action. Wish I had a good video of it in action. Can anyone suggest a good program to video this?

Image
Realtime limb "draping"

Image
Pile-Up action

:D
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: RaQdoll

Post by leileilol »

Darkpalces does have built-in video capture functions IIRC AFAIK
i should not be here
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

Re: RaQdoll

Post by Error »

uncompressed, the videos get HUGE
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

Re: RaQdoll

Post by Error »

Disclaimer: These aren't high quality ragdolls. I will never claim they are. The effect is quite nice though. Best option I could come up with without switching model formats and tossing a shit ton of extensions on the mod.
Spirit
Posts: 1065
Joined: Sat Nov 20, 2004 9:00 pm
Contact:

Re: RaQdoll

Post by Spirit »

DP can record straight to compressed Theora video I think. Will look awful though. reQuiem has incredibly easy video capture (haven't tested it on Windows myself). Just make sure VSync is off and it will be only limited by your harddisk speed. Here is a slightly out of date but hopefully working beta: http://chunk.io/f/d0bf59d08b5c4d8692ad30df8b7e9bb6

Just record a demo, then "capturedemo demoname" and it will write an uncompressed AVI. Yes, those get big. Just compress them later on. If you are on Linux, just use ffmpeg+x264: "ffmpeg -i movie.avi -acodec libmp3lame -ab 192k -vcodec libx264 -preset slow -crf 20 movie.mkv"

It also has a builtin spawn command so you could easily populate the map ;)
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: RaQdoll

Post by frag.machine »

Nice... Do you intend to extend this to monsters, too ?
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
gnounc
Posts: 428
Joined: Mon Apr 06, 2009 6:26 am

Re: RaQdoll

Post by gnounc »

*gasp* HE LIVES!
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

Re: RaQdoll

Post by Error »

Yes, easily done for monsters. That's after I get it how I want it. I will release this when completed.

Quick QC question:
What would be the best way to have an entity "circle" another entity while being affected by gravity and velocity? It should be a straight line on a set distance. Tracelines aren't working too well for me. All my entities are movetype_bounce currently.
r00k
Posts: 1111
Joined: Sat Nov 13, 2004 10:39 pm

Re: RaQdoll

Post by r00k »

Maybe you can do something fancy with MOVETYPE_FOLLOW?
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: RaQdoll

Post by toneddu2000 »

Great addition Error! I can't wait to see more! What kind of models are? IQM?
I use Kazam Screencaster on Ubuntu and it records DP very well
Keep up the good worK!
Meadow Fun!! - my first commercial game, made with FTEQW game engine
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

Re: RaQdoll

Post by Error »

The model format is mdl. I don't want to use movetype_follow. It won't work any better than the way I'm already doing this. I'm trying to find a good way for an entity to orbit another entity in a fixed distance while being affecting by velocity and gravity.
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: RaQdoll

Post by frag.machine »

@Error: here's a code snippet from Spinal's Total Destruction mod. It is from the "sucker ball" attack (a kind of black hole/vortex charm):

Code: Select all

void() Sucker_Suck =
{
        if (self.ltime < time)
           {
                self.health = 200;
                self.owner = self.goalentity; // REMENDO
                GrenadeExplode ();
                return;
           }

        if (self.frags < 525)
           self.frags = self.frags + 10;

        local entity e;

        e = findradius(self.origin, 400);

        while (e)
         {
                if ((e.classname == "player") ||
                   (e.classname == "missile") ||
                   (e.classname == "grenade") ||
                   (e.classname == "spike") ||
                   (e.classname == "gib") ||
                   (e.classname == "backpack") ||
                   (e.classname == "rune") ||
                   ((e.classname == "td_temp") && (e.magic == 102)) || // pipebombs
                   ((e.classname == "td_temp") && (e.magic == 24))     // trappacks
                   )
                     {
                        traceline(self.origin, e.origin, FALSE, self);

                        if ((trace_ent == e) || (trace_fraction == 1.0))
                           {
                                e.flags = e.flags - (e.flags & FL_ONGROUND);

                                local vector vd;

                                vd = self.origin - e.origin;

                                // impedir stuck de itens
                                vd_x = vd_x + crandom() * 32;
                                vd_y = vd_y + crandom() * 32;
                                vd_z = vd_z + crandom() * 32;

                                vd = normalize (vd);
                                vd = vd * self.frags;

                                if (e.classname != "player")
                                   e.velocity = e.velocity + vd * (2 + random());  //random=impedir stuck de itens
                                else
                                   e.velocity = e.velocity + vd;
                           }
                     }

                e = e.chain;
         }

        self.effects = self.effects | EF_MUZZLEFLASH;

        self.nextthink = time + 0.1;
};
DISCLAIMER: I am not the author (although I believe he's fine with someone reusing it).
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Spiney
Posts: 63
Joined: Mon Feb 13, 2012 1:35 pm

Re: RaQdoll

Post by Spiney »

You can do ragdolls with MDL?

mind = blown
Error
InsideQC Staff
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA
Contact:

Re: RaQdoll

Post by Error »

2 videos. Not the best of quality. Weird high framerate.

RaQdolls in action: https://www.youtube.com/watch?v=fdCI4oP ... e=youtu.be

RaQdoll stick physics test: https://www.youtube.com/watch?v=wOG7izR ... e=youtu.be
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: RaQdoll

Post by toneddu2000 »

RaQdolls: very very cool, but when they touch the ground I'd expect more bouncing (like stick phys)

RaQdoll stick physics: supercool, really. Maybe a LIIITTLE quicker and it's perfect

congrats dude! :D
Meadow Fun!! - my first commercial game, made with FTEQW game engine
Post Reply