Rayne@Posted: Fri Sep 17, 2004 12:33 am :
Ok, I will be brief, because some aspects of what we are going to use in this tutorial are already documented. If you miss how to use NURBS, please go here and read carefully.

I’ll show how move moveable objects using nurbs, very usefull to simulate some kind of animations (such as panels that will explode, floor tiles that will pop in the air, possessed objects etc) In this case, I will make a big brick that will fly in the air when triggered, following a nurbs path. If you get hit by the brick, you will take damage


Ok, load up a square room, our friend fo mapping tests. I’ve got this


Image


Now create a brick... Do following your taste, I make my brick considerably big, and textured with

textures/hell/cbrick_single

This is my brick.

Image


Now, make it moveable, I choose moveable-->moveable_base_brick to mantain some coerence.. Now it is good, but i set my mass to 400 for a better effect.

Let’s do the cool things: select your moveable and choose “Curve...” for the entity menu, and select nurbs, so the editor will create a new basic nurbs for you. Now you have simply to tweak it around to make a cool path the brick will follow. (please see the "basic nurbs tutorial if you don't know how to do that) I’ve got this :D

Image


It will work by now, but we are going to add some parameters to make things looks better.

First parameter: add key: initSplineTime value: 1000 that basically tell to the brick how much time it will follow the spline path. In this case, after 1000 milliseconds (one second) the brick will not continue to follow the spline path, but will continue to use normal physic instead.

Second parameter: key: def_damage value: damage_triggerhurt_75 so the brick will hurt everything will touch it..

Obviously, you can add others parameters, and tweak everything you want, like “acceltime” “deceltime” etc I will leave everything to you.


Now everything it’s ready, we have to simply make a trigger that target our moveable, in order to start the animation. You can trigger it as you like, for this tutorial I simply added a trigger_once to my map and targeted the moveable. Just take a look

Image


Compile your map, step on your trigger, and watch that “flying bricks” :lol:


Testmap: Download here (map name is tut_3.map )

Videotutorial: available soon



Gazz_X@Posted: Wed Oct 20, 2004 7:22 am :
Quote:
If you miss how to use NURBS, please go here and read carefully.


Go where? :? , there is no link, just post the http link.

thnx



Rayne@Posted: Wed Oct 20, 2004 8:04 am :
Oooops! :shock:


I forgot it :D



Fixing it!



DaZ@Posted: Wed Oct 20, 2004 1:31 pm :
You are my new best friend :o



ZeRo_HoUr@Posted: Wed Oct 20, 2004 4:04 pm :
Doesen't this remove the need for a script while using nurbs?



Rayne@Posted: Wed Oct 20, 2004 4:09 pm :
Eh, try to reproduce the monorail without scripting :lol:



:wink:



ZeRo_HoUr@Posted: Wed Oct 20, 2004 4:19 pm :
Jeez :roll: I know that but simple stuff like your light tutorial could be done without the scripting part!



Rayne@Posted: Wed Oct 20, 2004 4:22 pm :
Oh... obviously! :D The "jumping" panels in DooM 3 are done with this method! Yes, you're right



ZeRo_HoUr@Posted: Wed Oct 20, 2004 4:25 pm :
Wouldn't it be possible to create a trigger multiple and have it happen multiple times like a light moving back and forth or something like that OR am I just talking nonsense LOL! :lol:



DoV_Tomas@Posted: Fri Jan 07, 2005 9:23 pm :
Thanks Rayne for your little instructional post.

Quote:
key: initSplineTime value: 1000 that basically tell to the brick how much time it will follow the spline path.


Through my own testing I have found that key/value controls the initial time (I guess how long it takes to start on the NURBS path) rather than the time the moveable spends traveling along the path. The actual key/value combination for time to move along the NURBS path is "initialSplineTime". Interestingly- as I discovered through testing, you must include the key/value "initSplineTime value/XXX to make the movable actually work and move.

I seem to be a little behind the times as I just recently got interested in the Doom3 editor. I hope not everyone has left as I feel like I'm the only one still posting and interested in these matters. I decided to post in an effort to keep some record of my study of the editor, and to keep the DoomWorld tutorial dbase up to date on new editor findings as I discover them. The DW tutorials have been a great source of information and inspiration to me. While Radiant is a great modder tool, working it has been, at times difficult to learn- no personal experience at this type of editor.

Rock on!



voldemort@Posted: Fri Oct 14, 2005 2:41 am :
reproduce the tram

you can reproduce the tram simply use target_setkeyval to use multiple spllines you select wiich spline by triggering specific triggers in other words trigger one sets teh moveable to use spline 3 trigger 2 makes it use splie 5 etc each target_setkeyval can store a seperate spline



DoV_Tomas@Posted: Sat Oct 15, 2005 9:48 pm :
Wow, amazing how far we've come since January. The set key/val works but since then I've started using the unbind/bind script command to make movers and cameras follow different splines within one routine. It's funny to look back at where I was in January in terms of the my DoomEdit knowledge, and now, making the tram, and making it fully functional seems routine.

I almost exclusively use scripts for movers and cameras nowadays, and use splines only occasionally when I need nice curved moves. I find splines are a pain and the required script somewhat complex. But for me, scripts replace so many map elements and thus make sequences easier to set up.



voldemort@Posted: Sun Oct 16, 2005 1:52 am :
I agree about the scripts they will allways give you more control and are better

I only have two problems with them

One is the fact that I cant type worth a piss and that makes trouble shooting a pain

tow for beginners its easier to jump in and get started so your not overwhelmed as quick then they can look at what theyv done and learn how to do it in the future properly



Rayne@Posted: Sun Oct 16, 2005 11:51 am :
I am for intense use of scripting, I love scripts. If you can do something without them, then it's an whole other story.



DoV_Tomas@Posted: Sun Oct 16, 2005 8:42 pm :
Quote:
I only have two problems with them

One is the fact that I cant type worth a piss and that makes trouble shooting a pain

tow for beginners its easier to jump in and get started so your not overwhelmed as quick then they can look at what they've done and learn how to do it in the future properly


LOL. I can't code worth a damn either, I am just good at analyzing ID's code, and cutting and pasting theirs into my own. After doing that for a while I got a sense of what the code was doing, then I began to alter it to my own use. Also unpacking and studying the def and event scripts helps a lot too, especially the event scripts which give code syntax.

As for beginners trying to code, I admit it took me a while to get comfortable with scripting. But I was a total newbie to 3D games when I started D3, and while I am a "grown up" and hopefully possess matured sensibilities (yeah, right), maybe its a bit easier for me than say a younger person to learn code. But, I know a lot of younger guys that mod, so to say coding is a realm of the older or expert is not entirely accurate.

There is no right or wrong way to map, and as you show scripting is not a requirement. But, learning how to script isn't insurmountable, and helps to do away with having to add a lot of map elements. And any way to cut down the time it takes to map is a welcome tool.

All the best.



hardcore_gamer@Posted: Mon Apr 30, 2007 8:23 pm :
my object does not fall down after it has gone after the line :(



hardcore_gamer@Posted: Mon Apr 30, 2007 11:30 pm :
hardcore_gamer wrote:
my object does not fall down after it has gone after the line :(


forget it, works now :wink:

To bad it does not seem to work with ragdolls :(



Skul@Posted: Tue May 01, 2007 12:18 am :
I think you need to bind the ragdolls to a func_mover, then tell the mover to follow the NURB path.