======Glyph Doors====== This tutorial will explain how to make secret doors which are opened by frobbing a glowing glyph in front of the door, like those found in Thief: Deadly Shadows as well as Yandros' Thief 2 FM [[http://www.komag.net/missionst2/WC_WhatLiesBelow_v1.zip|What Lies Below]]. Eight concrete objects are required, and are listed below. Under each, you'll find the properties you need to set up on each one, including on archetypes where necessary, plus all required links between the eight objects. In the future, I will add a diagram further showing the links. [[dromed:an_introduction_to_custom_scripts|Custom Scripts]] required: Either [[http://thiefmissions.com/scripts/|Gaylesaver's scripts]], or [[http://thiefmissions.com/telliamed/#PublicScripts|Telliamed's PublicScript]] module to support the //TrapPhantom// and //TrapMetaProp// scripts. ---- ===Glyph Decal=== == Glyphs parent archetype (under Decorative): == [[dromed:property:scripts|Scripts]] = //TrigWorldFrob, TrapPhantom, ActivateAmbient//\\ [[dromed:property:renderalpha|Alpha]] = 0.25\\ [[dromed:property:frobinfo|FrobInfo]] = Script, None, None\\ [[dromed:property:frobinfo|DesignNote]] = alpha_max=1.0; alpha_min=0.0; rate=0.35; curve=1 == Individual Glyph archetype: == [[dromed:property:modelname|Model name]] = whatever (probably one of Vigil's glyph models) == Glyph concrete object: == * In WLB I used the glyph loop sounds from T3 and a custom schema [[dromed:property:ambienthacked|AmbientHacked]] (optional) = 8, 0, NoSharpCurve\\ == Links: == * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#AnimLightPoint]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#TrapMetaProp]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#TimedRelay]] * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#Inverter]] * [[dromed:link:scriptparams|ScriptParams]] <- [[glyph_doors#TrapMetaProp]] ===AnimLightPoint=== * Coloured light to illuminate glyph when frobbed * Place 0.25 units in front of glyph [[dromed:property:animlight|AnimLight]]:\\ Mode = smoothly dim\\ Millisec to brighten = 2000\\ Max brightness = 250\\ Min brightness = 0\\ Radius/Inner rad = 1.5\\ \\ [[dromed:property:lightcolor|LightColor]] = whatever colour you want the glyph to glow == Links: == * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#Glyph Decal]] ===TrapMetaProp=== * Makes the Glyph frobinert once it's been frobbed once Be sure to load the custom script module! Create a Marker with:\\ [[dromed:property:scripts|Scripts]] = //TrapMetaProp// ==Links:== * [[dromed:link:scriptparams|ScriptParams]] -> //FrobInert (-1629)// link data=S1 * [[dromed:link:scriptparams|ScriptParams]] -> [[glyph_doors#Glyph Decal]] link data=A@1 * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#Glyph Decal]] ===TimedRelay=== * Delays the end sequence, when the glyph disappears and the door "opens" * This delay allows the AnimLight to come on slowly, making the Glyph gradually appear to glow * I prefer the use of //NVRelayTrap// (NVScript.osm), but you can also use //TrapTimedRelay// (gen.osm) [[dromed:property:scripts|Scripts]] = //NVRelayTrap// or //TrapTimedRelay//\\ [[dromed:property:designnote|DesignNote]] = "NVRelayDelay=2500" (if using //NVRelayTrap//) **OR** \\ [[dromed:property:scripttiming|Timing]] = 2500 (if using //TrapTimedRelay//)\\ [[dromed:property:trapflags|TrapControlFlags]] = Once ==Links:== * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#Glyph Decal]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#DoorBlocking]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#Inverter]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#SoundTrap]] \\ If you want to play a VO or show onscreen text as I did in //What Lies Below//, [[dromed:link:controldevice|ControlDevice]] link this Delay to it as well. ===Inverter=== * Inverts the Delay's signal to send **TurnOff** back to the Glyph and the [[glyph_doors#DoorVisible]], which activates their //TrapPhantom// scripts and makes them fade out ==Links:== * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#Glyph Decal]] * [[dromed:link:controldevice|ControlDevice]] -> [[glyph_doors#DoorVisible]] * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#TimedRelay]] ===DoorBlocking=== * An unrendered object in the doorway which blocks the player's movement through the [[glyph_doors#DoorVisible]], which is visible but does not block the player. //(Why? because the DoorVisible can't both slide out of the way and fade out at the same time.)// ==DoorBlocking archetype (under slidy_door or a child of it):== [[dromed:property:modelname|Model name]] = any door model since it's unrendered and you adjust the dimensions anyway (I used my own res_cube model in WLB, a 4x4x4 cube with reskinnable faces)\\ [[dromed:material_tags|MaterialTags]] = something appropriate, probably **Material Stone**\\ [[dromed:property:frobinfo|FrobInfo]] = Ignore, None, None\\ [[dromed:property:rendertype|Render type]] = Not Rendered\\ [[dromed:property:class_tags|Class tags]] = blank (so it plays no sound when it slides open)\\ \\ [[dromed:property:transdoor|Door > Translating]]:\\ Closed = 0\\ Open = a value sufficient to move it into solid\\ Base speed = large (like 50) so it moves almost instantly\\ ==DoorBlocking concrete object:== * Make sure the [[dromed:property:physdims|Dimensions]] are set to fill the doorway airbrush ==Links:== * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#TimedRelay]] ===DoorVisible=== * The actual rendered "door" (or stone wall, whatever the context dictates), it should be reskinnable and use the surrounding terrain texture if you want it to "blend in". **Tips on doing this well:** * Make it 4x4 (if surrounding texture is at Scale 15) or 8x8 (if surrounding texture is at Scale 16) so the texture isn't stretched * It can extend into the wall on either side if, say, the opening is only 6 wide; so long as its center is in air it will be rendered * Make it in complete shadow or full light - since the visible face is a single poly, it will either be fully lit or fully unlit, so if a nearby light's radius reaches only half of it, the door will be fully lit and stick out like a sore thumb! * Tweak its [[dromed:property:extralight|Extra Light]] property as needed (often + or - 0.01 or 0.02 does the trick) ==DoorVisible archetype (also under slidy_door, but could be elsewhere):== * Use a [[dromed:property:modelname|Model name]] of a reskinnable secret door, or my res_cube * Set the [[dromed:property:physdims|Dimensions]] such that the door doesn't block the player; for instance, make its size 1x1x1 and give it a Z Offset of -10 to sink its collision model into the floor (don't do that if there's a room below though!)\\ Props are similar to [[glyph_doors#DoorBlocking]], but also add:\\ [[dromed:property:scripts|Scripts]] = //TrapPhantom//\\ [[dromed:property:designnote|DesignNote]] = alpha_max=1.0; alpha_min=0.0; rate=0.5; curve=1\\ ==Links:== * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#Inverter]] ===SoundTrap=== * Use optionally to play a sound when the door and glyph fade out, revealing the room beyond. * I used the glyph activate sound from T3 in WLB with a custom schema ==Links:== * [[dromed:link:sounddescription|SoundDescription]] -> schema of your choice * [[dromed:link:controldevice|ControlDevice]] <- [[glyph_doors#TimedRelay]] \\ --- //[[society:yandros:index]] 2007/03/08//