voldemort@Posted: Fri Jun 23, 2006 5:42 pm :
Tutorial tip (easy rotating fans and other rotators)

For the longest time I tried to figure out how to make a desktop fan that swung in the 2 directions a set amount I used func_rotate and func_activators and tirggers etc whole bunches of techniques when all along the editor had a beautiful little function built in that I wasnt using properly because I was thinking in terms of what its name implied

func_shaking
yup thats it its really that simple

create a func_shaking in your level
now click the model tab and assign it a model so you can see whats happening

now enter theese parms

period
3


shake 0 30 0
gues what it will swing 15 in each direction on a stesdy basis it really is that easy to create a swinging fan or any othe rotator you need to rotate a fixed amount instead of a continuous spin



voldemort@Posted: Fri Jun 23, 2006 5:45 pm :
need banging shutters and other stuff here you go



voldemort@Posted: Fri Jun 23, 2006 5:50 pm :
other ideas rocking chairs ghostly crib or bassinet--you would have to provide the wailing child sound



voldemort@Posted: Fri Jun 23, 2006 5:52 pm :
please feel free to add to the ideas Im curious to see what uses you all come up for rocking items nice thing about this is its better then pendulom because all axis are available drawback you cant just make a volume brush to do it you would have to bind your object to the func_shaking still what ideas do you have :D



voldemort@Posted: Fri Jun 23, 2006 7:08 pm :
this can be part of the solution with piston cranks as is discussed in this thread

http://www.doom3world.org/phpbb2/viewto ... 016#147016



Shikamaru@Posted: Sun Jun 25, 2006 9:40 am :
wow ive never seen someone post so many times in there own post lol, but good work im going to use that func_shaking.... :wink:



voldemort@Posted: Mon Jun 26, 2006 4:08 pm :
2 tips you can use with this are

one intergers can be quite large I set up one with 800 and worked find

accel_time and decel_time are valid parms that work

combined you can make a simple centrifuge that winds up to speed in both directions

example parameters for you to try

shake 0 500 0
period 16
accel_time 4
decel_time 4

creates anice effect



voldemort@Posted: Mon Jun 26, 2006 4:39 pm :
if your needing a somewhat random feel to somehting like shutters you can target it with a triger_timer and set the random wait instead of a regular wait

Wether it really works or not I pluged tables into the period and shake values as well and it seemed to vary

period
2* chainTable[time / 4]

shake
0 0 2* chainTable[time / 4] wether it varies or not is hard to tell because the tirgger timer but it didnt hickup either but if by any chance it is using the tirgger timer it would be necassary to reactivate the entity and change the parm anyhow but just a trigger timeer alone makes a nice effect



voldemort@Posted: Mon Jun 26, 2006 7:15 pm :
got to thinking will have to whip up an example map tonight when I get home but I should be able to attack the func_shaking to a mover on a spline and with the decall and accel times create a great threading and unthreading affect like your unscrewing something and then screwing somthing back in another spot

in combo with a target_setcolor or target_setmodel you should be able to create a nice mechanical effect this way



voldemort@Posted: Mon Sep 11, 2006 5:04 pm :
I talked about releasing a demo of how to make a machine that threads in and out and did it a long time ago but never did post the map so here it is

Code:
Version 2
// entity 0
{
"classname" "worldspawn"
"frame" "44"
// primitive 0
{
brushDef3
{
  ( 0 0 1 -512 ) ( ( 0.03125 0 -0.03125 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 -1 0 -191 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 1 0 0 -192 ) ( ( 0.03125 0 -0.03125 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 1 0 -193 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( -1 0 0 -192 ) ( ( 0.03125 0 0.03125 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 -1 504 ) ( ( 0.0078125 0 -0.0078125 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
}
}
// primitive 1
{
brushDef3
{
  ( -1 0.0000002687 0 184 ) ( ( 0.0078125019 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( -0.0000002687 -1 0 -183.9999389648 ) ( ( 0.0312500075 0 -0.0000009537 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0.0000002687 1 0 -184.0000152588 ) ( ( 0.0312500075 0 0.0000009537 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 1 -504 ) ( ( -0.0312500037 -0.0000000084 0.000000596 ) ( 0.0000000084 -0.0312500037 0.0000007153 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 -1 8 ) ( ( -0.0312500037 0.0000000084 0.000000596 ) ( -0.0000000084 -0.0312500075 -0.0000014305 ) ) "textures/common/caulk" 0 0 0
  ( 1 -0.0000002687 0 -191.9999847412 ) ( ( 0.0312500075 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 2
{
brushDef3
{
  ( 1 0 0 184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 0 1 0 -184 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 -1 0 -184 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 1 -504 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 -1 8 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( -1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
}
}
// primitive 3
{
brushDef3
{
  ( 0 1 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( -1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 -1 8 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 1 -504 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 1 0 0 -184 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 -1 0 184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
}
}
// primitive 4
{
brushDef3
{
  ( 0 -1 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( -1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 -1 8 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 1 -504 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 1 0 184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
}
}
// primitive 5
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 -1 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 1 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( -1 0 0 -192 ) ( ( 0.03125 0 0 ) ( 0 0.03125 0 ) ) "textures/common/caulk" 0 0 0
  ( 0 0 1 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
}
}
}
// entity 1
{
"classname" "func_bobbing"
"name" "func_bobbing_2"
"model" "func_bobbing_2"
"origin" "-28 92 196"
"height" "6"
"speed" "7.5"
"accel_time" "2"
"decle_time" "2"
"toggle" "1"
"start_on" "1"
// primitive 0
{
brushDef3
{
  ( -1 0 0 -20 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 0 1 0 -20 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 1 0 0 -20 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 0 -1 0 -20 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 0 0 1 -76 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
  ( 0 0 -1 -76 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/enpro/enwall1" 0 0 0
}
}
}
// entity 2
{
"classname" "func_shaking"
"name" "func_shaking_7"
"origin" "-32 96 104"
"model" "models/mapobjects/base/misc/fireext.ase"
"shake" "0 800 0"
"period" "15"
"accel_time" "1.5"
"decel_time" "1.5"
"bind" "func_bobbing_2"
}
// entity 3
{
"classname" "light"
"name" "light_3"
"origin" "-48 -64 176"
"light_origin" "40 32 176"
"light_rotation" "1 0 0 0 1 0 0 0 1"
"model" "light_3"
"texture" "lights/exhale3/ambientlight_hurt"
"def_damage" "damage_painTrigger"
"anyTouch" "1"
// primitive 0
{
brushDef3
{
  ( 0 0 -1 -288 ) ( ( 0.0009124088 0 0.5547445416 ) ( 0 0.0008680556 0.4583333433 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
  ( 0 0 1 -296 ) ( ( 0.0009124088 0 0.5547445416 ) ( 0 0.0008680556 0.5416666865 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
  ( 0 -1 0 -544 ) ( ( 0.0008680556 0 0.5416666865 ) ( 0 0.0017123288 0.8082191944 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
  ( 1 0 0 -576 ) ( ( 0.0009124088 0 0.5547445416 ) ( 0 0.0017123288 0.8082191944 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
  ( 0 1 0 -552 ) ( ( 0.0008680556 0 0.4583333433 ) ( 0 0.0017123288 0.8082191944 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
  ( -1 0 0 -576 ) ( ( 0.0009124088 0 0.4452554882 ) ( 0 0.0017123288 0.8082191944 ) ) "textures/exhale3/particle_tests/biground1_blamplight_cv" 0 0 0
}
}
}
// entity 4
{
"classname" "info_player_start"
"name" "info_player_start_3"
"origin" "-136 8 0"
}