Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [Tutorial] Effekte einfügen (Wetter, Rauch, usw.) * » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Tutorial] Effekte einfügen (Wetter, Rauch, usw.) * 3 Bewertungen - Durchschnitt: 10,003 Bewertungen - Durchschnitt: 10,003 Bewertungen - Durchschnitt: 10,003 Bewertungen - Durchschnitt: 10,003 Bewertungen - Durchschnitt: 10,00
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Lampe [Tutorial] Effekte einfügen (Wetter, Rauch, usw.) * Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi!
Also, ich schreibe hier jetzt mal ein Tutorial über Effekte und wie man sie in seine Map bekommt.


Inhalt:
A Wettereffekte in die Map einbauen
B Sonne einbauen
C Effekt mit script origin einfügen
D Effekt mit script struct einfügen
E Bewegte Effekte einbauen




A Wettereffekte einbauen
1.Schritt

Ich nehme mal die Map mp_test1 - die ist eine Kopie der Map mp_test.
Dann erstellen wir die Dateien (mp_test1.gsc) und (mp_test1_fx.gsc) im Ordner (raw\maps\mp)


Inhalt von (mp_test1.gsc):


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
 main()
{
maps\mp\_load::main();
maps\mp\mp_test1_fx::main();

maps\mp\_compass::setupMiniMap("compass_map_mp_test1");


ambientPlay("ambient_farm");
VisionSetNaked("mp_test1");


game["allies"] = "sas";
game["axis"] = "russian";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";

setdvar( "r_specularcolorscale", "3" );

setdvar("compassmaxrange","1800");
}





Inhalt von (mp_test1_fx.gsc):


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
 main()
{

}




2. Schritt

So, jetzt suchen wir uns einen Effekt aus - dazu öffnen wir über das "CoD4 Compile Tool" unter "Applications" den "Effects Editor"

Wenn der effect editor nicht geht “kann effekt nur im spielpfad öffnen“ einfach bei „edit – set Default Game Phat…“ und den Pfad neu angeben



(Klick mich)

3. Schritt

Wir wollen jetzt in die Map (mp_test1) Regen einfügen.
Dazu gehen wir auf "Öffnen"...


(Klick mich)

... und (die Effekte befinden sich im Ordner (raw\fx)) öffnen im Ordner (weather) die Datei (rain_mp_farm.efx)


(Klick mich)

Jetzt noch auf "Play" und wir sehen, wie es regnet:


(Klick mich)

4. Schritt

Also, jetzt haben wir den Effekt, den wir haben wollen, nur müssen wir diesen noch in der Map einfügen.
Dazu öffnen wir jetzt die Datei (mp_test1_fx.gsc) (mit Programmer's Notepad, Editor o. ä.).
Als erstes fügen wir den Effekt ein mit folgenden Befehl:

level._effect["rain"] = loadfx ("weather/rain_mp_farm");


(Klick mich)

Und nun die Koordinaten, wo der Effekt abgespielt wird:

maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3);



Die Koordinaten erhalten wir, wenn wir im "Radiant" mit der Maus auf die Stelle der Map gehen, siehe Markierung auf dem Screenshot, dort kannst Du sie ablesen.
Habe sie hier mal plaziert:


(Klick mich)

(PS.: Hatte beim Erstellen des Tutorials das Problem, dass die Zeilen in die mp_test1.gsc mussten - bei einer anderen Map habe ich es allerdings so gemacht wie hier beschrieben - also einfach ausprobieren, ist halt übersichtlicher, wenn es in verschidenen Dateien ist...)

Hier nochmal die mp_test1.gsc mit Effekten:


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
 main()
{
maps\mp\_load::main();

          level._effect["rain"] = loadfx ("weather/rain_mp_farm");
          maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3);


maps\mp\_compass::setupMiniMap("compass_map_mp_test1");

setExpFog(300, 1400, 0.5, 0.5, 0.5, 0);
ambientPlay("ambient_farm");
VisionSetNaked("mp_test1");


game["allies"] = "sas";
game["axis"] = "russian";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";

setdvar( "r_specularcolorscale", "3" );

setdvar("compassmaxrange","1800");
}




)

5.Schritt

Jetzt starten wir die Map mal:
Dazu gehen wir ins "Compile Tool" auf "Level Compiling"

Da arbeiten wir diese Schritte ab:

1. 1.Compile BSP
2. 2. Compile Reflections
3. 3. Build Fast File
4. 5. Run Selected Map (Karte wieder schlissen)
5. 4. Update Zone File (Einträge rüber kopieren)
6. 3. Build Fast File
7. 5. Run Selected Map

Die Punkte 4 – 7 müssen eventuell wiederholt werden:


(Klick mich)

6. Schritt

Und jetzt noch ein bißchen Nebel, Rauch oder so...

Wir nehmen mal diesen...

level._effect["smoke"] = loadfx ("smoke/steam_large_vent");

... mit den gleichen Koordinaten

Also:

maps\mp\_fx::loopfx("smoke", (-192, -256, 64), 3);

In der mp_test1_fx.gsc sieht das dann so aus

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 main()
{

          level._effect["rain"] = loadfx ("weather/rain_mp_farm");
          maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3);

          level._effect["smoke"] = loadfx ("smoke/steam_large_vent");
          maps\mp\_fx::loopfx("smoke", (-192, -256, 64), 3);

}




Man kann sich das Ganze auch im Effect Editor ansehen (im Ordner "smoke" die Datei „steam_large_vent.efx), wie ihr oben nachlesen könnt.

Dann Map starten, indem man Punkt 3-7 wiederholt:


(Klick mich)

7. Schritt

Ich will den Rauch jetzt aber in einer anderen Richtung haben, wie mache ich das jetzt?

Also geben wir jetzt dem Effekt noch eine Richtung an - läuft zur Zeit in der X-Richtung, wir wollen ihn aber in der Y-Richtung haben: also ändern wir die Position der Koordinaten und ergänzen ihn mit zusätzlichen Koordinaten, wobei sich die Y-Achse um 10 erhöht

maps\mp\_fx::loopfx("smoke", (-192, -256, 64), 3, (-192, -246, 64));

Im Ganzen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 main()
{

          level._effect["rain"] = loadfx ("weather/rain_mp_farm");
          maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3);

          level._effect["smoke"] = loadfx ("smoke/steam_large_vent");
          maps\mp\_fx::loopfx("smoke", (-192, -256, 64), 3, (-192, -246, 64));

}




Dann Map starten, indem man Punkt 6-7 wiederholt, da kein neuer Effekt dazu gekommen ist:


(Klick mich)

Also, das war´s erstmal, ich hoffe, dass ich dem einen oder anderen geholfen habe. Mit den anderen Effekten einfach ausprobieren - wichtig sind die zwei Zeilen für den Effekt und der Ort. Wenn ihr den Effekt mehrmals haben wollt, einfach die Zeile mit den Koordinaten kopieren und andere Koordinaten einfügen.

Hier nochmal die ganze Datei "mp_test1.gsc", wenn es in der Datei „mp_test1_fx.gsc“ nicht klappt:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
 main()
{
maps\mp\_load::main();

          level._effect["rain"] = loadfx ("weather/rain_mp_farm");
          maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3);
          
          level._effect["smoke"] = loadfx ("smoke/steam_large_vent");
          maps\mp\_fx::loopfx("smoke", (-192, -256, 64), 3, (-192, -246, 64));


maps\mp\_compass::setupMiniMap("compass_map_mp_test1");

setExpFog(300, 1400, 0.5, 0.5, 0.5, 0);
ambientPlay("ambient_farm");
VisionSetNaked("mp_test1");


game["allies"] = "sas";
game["axis"] = "russian";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";

setdvar( "r_specularcolorscale", "3" );

setdvar("compassmaxrange","1800");
}
 





B Sonne einfügen

Eine sonne zu erstellen ist ganz einfach als erstes erstellt man im ordner „raw“ einen Ordner
Namens „sun“ im ordner sun erstelt man eine Text Datei und fügt folgendes ein

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
r_sunsprite_shader "sun"
r_sunsprite_size "28.8433"
r_sunflare_shader "sun_flare_icbm"
r_sunflare_min_size "237.8"
r_sunflare_min_angle "40.869"
r_sunflare_max_size "669.9"
r_sunflare_max_angle "2.14669"
r_sunflare_max_alpha "0.62536"
r_sunflare_fadein "0.2604"
r_sunflare_fadeout "0.2992"
r_sunblind_min_angle "33.9543"
r_sunblind_max_angle "9.9647"
r_sunblind_max_darken "0.20934"
r_sunblind_fadein "0.5"
r_sunblind_fadeout "1"
r_sunglare_min_angle "10.6101"
r_sunglare_max_angle "48.2526"
r_sunglare_max_lighten "0.21569"
r_sunglare_fadein "2.263"
r_sunglare_fadeout "3"
r_sun_fx_position "X Y Z"


Bei "r_sunsprite_shader" und " r_sunflare_shader" kann man auch folgendes eintragen

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
sun_flare_rainbow
sun_flare_marksman
sun_flare_icbm
sun_flare_aftermath
sun_flare
sun


Bei "r_sun_fx_position" ersetzt man „XYZ“ durch die in den Worldspawn setings gegebene "sundirection" beispiel mp_backlot

"sundirection" "-43.5 25.11 0"
Also
r_sun_fx_position "-43.5 25.11 0"
Die Datei speichert man dann als mp_name der Map.sun

Als nächstes fügt man in das Zonefile
rawfile,sun/ mp_name der Map.sun
ein






C Effekt mit script origin einfügen

Man kann Effekte auch im radiant plazieren. Dies kann nützlich sein wenn man mehrere objekte mit festem effeckt z.B. Lampen macht dazu fügt man einfach ein skript-origin ein und plaziert ihn dort wo der effekt laufen soll. Als nächstes öffnet man mit „N“ das Entry Fenster und fügt Key: targetname und faule: effekt01 das ist der name mit dem das skript auf das skript-origin zugreift.
Als nächstes das skript

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
 main()
{




	fx = getent("fx1","targetname");

	
	
	level._effect[ "feuer" ] = loadfx( "test_fx/meteor" );
	maps\mp\_fx::loopfx("feuer", (glow.origin), 3, (glow.origin) + (0, 0, 90));	



}
 


Bei dieser Methode muss man allerdings wenn man einen zweiten effekt einfügt einen neuen targetnamen vergeben.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
 main()
{




	Fx1 = getent("fx1","targetname");
	fx2= getent("fx2","targetname");


	
	
	level._effect[ "feuer" ] = loadfx( "test_fx/meteor" );
	maps\mp\_fx::loopfx("feuer", (fx1.origin), 3, (fx1.origin) + (0, 0, 90));	
	maps\mp\_fx::loopfx("feuer", (fx2.origin), 3, (fx2.origin) + (0, 0, 90));	




}
 


Was aber bei einer größeren anzahl doch etwas umständlich ist.




D Effekt mit script struct einfügen

Genau wie mit einem skript_origin kann man Effekte mit einem script_struct direkt im radiannt einfügen. Dazu fügt man ein script_struct ein und vergibt per Entry Fenster Key: targetname und faule: struct_effekt01 ( Bei dieser Methode kann man mehrere skript_struct mit gleichem targetname erstellen ) . Beim Skript gibt es zwei versionen einmal für Oneshot Effekte (_structFX_oneshot.gsc) und einmal für loop Effekte(_structFX_loop.gsc).

_structFX_oneshot.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
#include common_scripts\utility;
#include maps\mp\_utility;
	
init()
{
	randomStartDelay = randomfloatrange( -20, -15);


	global_FX( " struct_effekt01", "funken", "test_fx/funken", randomStartDelay );

}

global_FX( targetname, fxName, fxFile, delay, soundalias )
{
	// script_structs
	ents = getstructarray(targetname,"targetname");
	if ( !isdefined( ents ) )
		return;
	if ( ents.size <= 0 )
		return;
	
	for ( i = 0 ; i < ents.size ; i++ )
		ents[i] global_FX_create( fxName, fxFile, delay, soundalias );
}

global_FX_create( fxName, fxFile, delay, soundalias )
{
	if ( !isdefined( level._effect ) )
		level._effect = [];
	if ( !isdefined( level._effect[ fxName ] ) )
		level._effect[ fxName ]	= loadfx( fxFile );
	
	// default effect angles wenn keine vergeben wurden
	if ( !isdefined( self.angles ) )
		self.angles = ( 0, 0, 0 );
	
	ent = createOneshotEffect( fxName );
	ent.v[ "origin" ] = ( self.origin );
	ent.v[ "angles" ] = ( self.angles );
	ent.v[ "fxid" ] = fxName;
	ent.v[ "delay" ] = delay;
	if ( isdefined( soundalias ) )
	{
		ent.v[ "soundalias" ] = soundalias;
	}
}



_structFX_loop.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
#include common_scripts\utility;
#include maps\mp\_utility;
	
init()
{
	

		global_FX( " struct_effekt01", "feuer", "test_fx/meteor", .1 );
	
}

global_FX( targetname, fxName, fxFile, delay, soundalias )
{
	// script_structs
	ents = getstructarray(targetname,"targetname");
	if ( !isdefined( ents ) )
		return;
	if ( ents.size <= 0 )
		return;
	
	for ( i = 0 ; i < ents.size ; i++ )
		ents[i] global_FX_create( fxName, fxFile, delay, soundalias );
}

global_FX_create( fxName, fxFile, delay, soundalias )
{
	if ( !isdefined( level._effect ) )
		level._effect = [];
	if ( !isdefined( level._effect[ fxName ] ) )
		level._effect[ fxName ]	= loadfx( fxFile );
	
	// default effect angles wenn keine vergeben wurden
	if ( !isdefined( self.angles ) )
		self.angles = ( 0, 0, 0 );
	
	ent = createLoopEffect( fxName );
	ent.v[ "origin" ] = ( self.origin );
	ent.v[ "angles" ] = ( self.angles );
	ent.v[ "fxid" ] = fxName;
	ent.v[ "delay" ] = delay;
	if ( isdefined( soundalias ) )
	{
		ent.v[ "soundalias" ] = soundalias;
	}
}


Bei beiden skrips ist der targetname gleich(und das darf so nicht sein), deshalb werde ich ab jetzt vor oneshot Effekte ose_effekt und vor Loop Effekte le_effekt schreiben das garantiert mir das es den targetname nur einmal gibt
Wenn ich jetzt einen zweiten Effekt hinzufügen möchte kann man den bestehenden script_struct einfach kopieren oder einen neuen erstellen und gleichen targetname verwenden.


Jetzt aber erstma eine Erklärung was wie wohin kommt also

global_FX( targetname, fxName, fxFile, delay, soundalias )

global_FX() ist immer gleich in die Klammer kommt mit Komma Trennung
targetname = Der Name der im Radiant dem script_struct gegeben wurde
fxname = Name für den Effekt kann frei gewählt werden muss aber einmalig in diesem Skript sein
fxfile = Ort an dem der Effekt gespeichert ist Ordner/Name des Effekts
delay = Bei Loop Effekten die Wiederholungsrate des Loops bei OneShot Effekten ?
soundalias = Name des Sound aus der Soundalias Datei

Beispiel: global_FX( " ose_feuer01", "feuer01", "test_fx/feuer01", randomStartDelay, "feuer01" );

Wenn man aber einen anderen Effekt einbinden will muss man nur eine Zeile dem jeweiligen Skript hinzufügen, ich nehme mal einen OneShotEffekt da ist das die zeile 9 jetzt beim neuen Zeile 9 und 10


_structFX_oneshot.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
#include common_scripts\utility;
#include maps\mp\_utility;
	
init()
{
	randomStartDelay = randomfloatrange( -20, -15);


	global_FX( " ose_ funken 01", "funken01", "test_fx/funken01", randomStartDelay );
	global_FX( " ose_feuer01", "feuer01", "test_fx/feuer01", randomStartDelay );


}

global_FX( targetname, fxName, fxFile, delay, soundalias )
{
	// script_structs
	ents = getstructarray(targetname,"targetname");
	if ( !isdefined( ents ) )
		return;
	if ( ents.size <= 0 )
		return;
	
	for ( i = 0 ; i < ents.size ; i++ )
		ents[i] global_FX_create( fxName, fxFile, delay, soundalias );
}

global_FX_create( fxName, fxFile, delay, soundalias )
{
	if ( !isdefined( level._effect ) )
		level._effect = [];
	if ( !isdefined( level._effect[ fxName ] ) )
		level._effect[ fxName ]	= loadfx( fxFile );
	
	// default effect angles wenn keine vergeben wurden
	if ( !isdefined( self.angles ) )
		self.angles = ( 0, 0, 0 );
	
	ent = createOneshotEffect( fxName );
	ent.v[ "origin" ] = ( self.origin );
	ent.v[ "angles" ] = ( self.angles );
	ent.v[ "fxid" ] = fxName;
	ent.v[ "delay" ] = delay;
	if ( isdefined( soundalias ) )
	{
		ent.v[ "soundalias" ] = soundalias;
	}
}


So jetzt habe ich 2 Effekte die ich per script_struct im Radiant verwenden kann.
Bei Loop Effekten kann man das genauso machen bis auf das die letzte zahl die widerholrate vorgibt die muss dann an den jeweiligen Effekt angepasst werden.

Man kann dem ganzen auch noch einen Sound hinzufügen man brauch dazu allerdings eine Soundalias Datei (Wie man diese erstellt findet man hier im OL Forum) .
Um den Sound einzubauen muss mal lediglich die Zeile im Skript mit dem in der Soundalias definierten Namen erweitern.

_structFX_oneshot.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
#include common_scripts\utility;
#include maps\mp\_utility;
	
init()
{
	randomStartDelay = randomfloatrange( -20, -15);


	global_FX( " ose_ funken 01", "funken01", "test_fx/funken01", randomStartDelay );
	global_FX( " ose_feuer01", "feuer01", "test_fx/feuer01", randomStartDelay, "feuer01" );


}

global_FX( targetname, fxName, fxFile, delay, soundalias )
{
	// script_structs
	ents = getstructarray(targetname,"targetname");
	if ( !isdefined( ents ) )
		return;
	if ( ents.size <= 0 )
		return;
	
	for ( i = 0 ; i < ents.size ; i++ )
		ents[i] global_FX_create( fxName, fxFile, delay, soundalias );
}

global_FX_create( fxName, fxFile, delay, soundalias )
{
	if ( !isdefined( level._effect ) )
		level._effect = [];
	if ( !isdefined( level._effect[ fxName ] ) )
		level._effect[ fxName ]	= loadfx( fxFile );
	
	// default effect angles wenn keine vergeben wurden
	if ( !isdefined( self.angles ) )
		self.angles = ( 0, 0, 0 );
	
	ent = createOneshotEffect( fxName );
	ent.v[ "origin" ] = ( self.origin );
	ent.v[ "angles" ] = ( self.angles );
	ent.v[ "fxid" ] = fxName;
	ent.v[ "delay" ] = delay;
	if ( isdefined( soundalias ) )
	{
		ent.v[ "soundalias" ] = soundalias;
	}
}


So jetzt habe ich in der Zeile 10 dem Effekt " ose_feuer01" den Sound „feuer01“ zugweisen der wird jetzt an jeder Stelle wo der Effekt abgespielt wird auch abgespielt.

Die zwei Skript kann man für jede Map benutzen da man nur den Effekt den man auch eingebaut hat mit ins FF File packen muss, nur die Soundalias Datei sollte neu erstellt werden um unnötige Sounds nicht immer mit einzubinden.




E Bewegte Effekte einbauen

Man kann effekte auch bewegen, dazu reicht es aber nicht einen Effekt per scriipt_origin oder _struct einzubauen und diesen per Skript zu bewegen.
Um einen Effekt zu bewegen Fügt man im Radiant ein script_model ein und zwar das Xmodel "tag_origin" und gibt ihm einen Targetname z.B. "FX01" das ist erstmal alles nun zum skript


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
main()
{

fx1 = getent ("fx01","targetname");

level._effect[ "FX01" ] = loadfx( "test_fx/auf_on" );

fx1 thread fx1_effekt();

}

fx1_effekt()
{
  while(1)
  {
    playfxontag (level._effect["FX01"], self , "tag_origin");
    wait 0.1; // muss dann der Effektdauer angepasst werden, damit es nach einem Loop aussieht
  }

}


So jetzt wird an der Spitze des tag_origin der Effekt abgespielt. Man muss allerdings einen oneshot Effekt nehmen da der Effekt z.B. oben alle 0.1sec erneut abgespielt wird und das bei Loop Effekten nichts aussieht. Wenn man allerdings einen Loop Effekt benutzen möchte kann man im Effekt Editor einen Loop Effekt in einen OneShot Effekt umwandeln und unter neuen Namen Speichern.
Nun aber wieder zur Bewegung. Der Effekt wird ja schon mal abgespielt nur bewegt er sich noch nicht da wir erst das Grund Skript haben also (Spiel auf dem tag_origin mit dem Targetname fx01 den Effekt FX01 ab).
Den tag_origin kann man auf die herkömmliche weise bewegen move, rotate…

z.B.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
main()
{

fx1 = getent ("fx01","targetname");

level._effect[ "FX01" ] = loadfx( "test_fx/auf_on" );

fx1 thread fx1_effekt();

while(1)
  {

fx1 movez (10,1)
fx1 waittill ("movedone");
fx1 movez (-10,1)
fx1 waittill ("movedone");


}
}



fx1_effekt()
{
  while(1)
  {
    playfxontag (level._effect["FX01"], self , "tag_origin");
    wait 0.1; // muss dann der Effektdauer angepasst werden, damit es nach einem Loop aussieht
  }
} 


Das ist soweit alles habe in der Testmap noch ein paar weitere Beispiele wofür man bewegte Effekte verwenden kann.





Downloads:
Testmap als RAW Fils: Download
Testmap: Download


Zur Testmap:
1. Wer sich die rawfils runterläd muss bevor er die map läd erstmal in Asset Manager die skybox konvertieren einfach die datei mp_test_fx.gdt aus dem ordner source_data öffnen die skybox makieren und F10 drücken

2. Die map kann nur mit TDM gestartet werden


Also das wars erstma wenn jemand fragen hat oder etwas nicht ganz verstanden hat einfach fragen hoffe aber mal das der ein oder andere was dazulernt und viel Spaß beim Testen

BadMan

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von BadMan: 25.08.2008 16:58.

BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
=OSZ=LoSt.BoY
Hat kein Zuhause


images/avatars/avatar-1042.gif


Dabei seit: 08.02.2008
Beiträge: 89


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

wow super anleitung

die hab ich dringend gebraucht
danköööööööö

__________________

www.senil-mit-stil.de
=OSZ=LoSt.BoY ist offline E-Mail an =OSZ=LoSt.BoY senden Homepage von =OSZ=LoSt.BoY Beiträge von =OSZ=LoSt.BoY suchen Nehmen Sie =OSZ=LoSt.BoY in Ihre Freundesliste auf
-tiger-
Steuerzahler


images/avatars/avatar-1082.jpg


Dabei seit: 22.01.2008
Beiträge: 189


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

gut geschrieben und wieder was dazu gelernt.

thx

__________________


Processor: Intel Core2 Quad Q6600 | Mainboard: ABIT IP35 | Grafikkarte: GeForce 9800 GTX | Arbeitsspeicher: 2 GB G-Skill | Netzteil: Be Quiet! Straight Power

-tiger- ist offline Homepage von -tiger- Beiträge von -tiger- suchen Nehmen Sie -tiger- in Ihre Freundesliste auf
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich habe mal ein bild erneuert zusatz info :-)

BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
steinacker
Milupa-Fan


images/avatars/avatar-1080.gif


Dabei seit: 13.03.2008
Beiträge: 662


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

was muss ich eintragen, wenn es auf der ganzen map regen bzw. nebel geben soll verwirrt

muss ich dazu die koordinaten leer lassen, oder so wie beim nebel, mehrere koordinaten eingeben

beispiel:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
level._effect["rain"] = loadfx ("weather/rain_mp_farm");
maps\mp\_fx::loopfx("rain", (-192, -256, 64), 3, (192, 256, 64), (-192, 256, 64), 192, -256, 64));



das müsste doch eigentlich ein quadrat sein, in dem der regen dann niederschlägt???

__________________
Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende grosses Grinsen
steinacker ist offline E-Mail an steinacker senden Beiträge von steinacker suchen Nehmen Sie steinacker in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von steinacker
was muss ich eintragen, wenn es auf der ganzen map regen bzw. nebel geben soll verwirrt


Kann Dir erst heut Abend das Script der mp_village reinstellen (bin auf Arbeit), aber da ist ein Aufruf in der mp_village.gsc drin:

thread AddRain();

Eventuell suchst mit Search in all Files nach dieser Funktion und schaust Dir an, was die so macht. (Hier ein nettes Programm, womit Du in allen Files eines Ordners suchen kannst: Programmer's Notepad)

ToM

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
steinacker
Milupa-Fan


images/avatars/avatar-1080.gif


Dabei seit: 13.03.2008
Beiträge: 662


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

goile sache das tool - danke-
in der besagten datei wird dir der pfad mitangegeben, da brauchst du nich lange suchen:

thread maps\createfx\mp_village_fx::Add_Rain();

also in: mp_village.iwd\maps\craetefx\mp_village_fx.gsc

da iss die funktion Add_Rain() drin
in dieser funktion befindet sich ein "aufruf" von:

ent = maps\mp\_utility::createOneshotEffect( "rain_heavy_mist" );

die funtion: createOneshotEffect
befindet sich wiederum in:
raw\maps\mp\_utility.gsc

die wohl in die fastfile miteingebunden wird, da ich diese nur in meinem cod4-mapping ordner gefunden hab


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
	ent = maps\mp\_utility::createOneshotEffect( "rain_heavy_mist" );
	ent.v[ "origin" ] = ( -2448.0, -4100.0, 900 );
	ent.v[ "angles" ] = ( 270, 276, 0 );
	ent.v[ "fxid" ] = "rain_heavy_mist";
	ent.v[ "delay" ] = -1;

//...usw.



__________________
Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende grosses Grinsen
steinacker ist offline E-Mail an steinacker senden Beiträge von steinacker suchen Nehmen Sie steinacker in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von steinacker
goile sache das tool - danke-


Gelle? Nie wieder Editor Augenzwinkern

Ich hoff mal, Du bekommst den flächigen Regen hin, mit dem Radianten hab ich absolut nix am Hut, was man da wie und wo klicken und drücken muss...

ToM

__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 08.04.2008 17:58.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Wishmaster
Tele-Tubbie


Dabei seit: 10.04.2007
Beiträge: 135


immer wieder fehler.:-( Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi ich muß ja sagen das ich es ja gut finde das sich einer mal die mühe macht und das tut hir reinsetzt.

Mein problem ist es das ich immer und immer wieder script fehler bekomme und ich weis nicht woran es liegt!

Kann mir einer helfen??

hit meine GSC-Datein:


main()
{
maps\mp\_load::main();
maps\mp\mp_tunnel4_fx::main();



maps\mp\_compass::setupMiniMap("compass_map_mp_tunnel4");

//setExpFog(300, 1400, 0.5, 0.5, 0.5, 0);
//ambientPlay("ambient_farm");
VisionSetNaked("mp_tunnel4");


game["allies"] = "sas";
game["axis"] = "russian";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";

setdvar( "r_specularcolorscale", "3" );

setdvar("compassmaxrange","1800");
}



und meine fx-Datei:



main()
{

level._effect["fire"] = loadfx ("fire/firelp_med_pm.efx");
maps\mp\_fx::loopfx("fire", (-248 , -2896, 32), 3);


}


und ich weis nicht warum er es nicht machen will..
Wishmaster ist offline E-Mail an Wishmaster senden Beiträge von Wishmaster suchen Nehmen Sie Wishmaster in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


RE: immer wieder fehler.:-( Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von Wishmaster

und meine fx-Datei:


main()
{

level._effect["fire"] = loadfx ("fire/firelp_med_pm.efx");
maps\mp\_fx::loopfx("fire", (-248 , -2896, 32), 3);


}


Das rot makrierte gehört da nicht hin.
Und wenn du Script-Fehler bekommst, ist es hilfreich, wenn du die Fehler hier auch postest (aber aus der Console und nicht nur den Fehler, der dir im schwarzen Bildschirm angezeigt wird). Dann muss man nämlich nicht raten.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 13.04.2008 13:18.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
Wishmaster
Tele-Tubbie


Dabei seit: 10.04.2007
Beiträge: 135


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ok danke mal für dein tip und hilfe aber es lag an einer datei die ich mit // ausschalten muste und einen ordenr namens creatfx muste ich machen...

Habe alles hir im foruum gefunde...

Jetzt geht alles
Wishmaster ist offline E-Mail an Wishmaster senden Beiträge von Wishmaster suchen Nehmen Sie Wishmaster in Ihre Freundesliste auf
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe das Tut mal erweitert viel Spaß damit
BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
steinacker
Milupa-Fan


images/avatars/avatar-1080.gif


Dabei seit: 13.03.2008
Beiträge: 662


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hab mir mal die verschieden versionen mit effekten einfügen etwas näher betrachtet und mit meiner version effekte und sounds
etwas kombiniert

@BadMan
von daher könntest du dein tut noch um einen punkt erweitern

ich hab in meiner datei createfx\mp_map_fx.gsc den effekt "fire"
so programmiert, wie das bei der map mp_village der fall ist
somit braucht man da im radiant kein struct oder sonst was einbauen und man kann sich das compilieren der map ersparen, wenn man den effekt um ein paar koordinaten verschiebt oder einen neuen einbaut, da reicht es dann aus, die ff-file neu zu builden.

maps\createfx\mp_moria_fx.gsc:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Add_Fire
{
	ent = maps\mp\_utility::createOneshotEffect( "fire" );
	ent.v[ "origin" ] = ( -346, -800, 238 );
	ent.v[ "angles" ] = ( 0, 180, 0 );
	ent.v[ "fxid" ] = "fire";
	ent.v[ "delay" ] = -1;
	ent.v[ "soundalias" ] = "fire_wood_small";
}



die letzte zeile mit der "soundalias" hab ich von BadMans tut, das fügt dann den gewünschten sound an gleicher stelle ein
somit kann ich mir, wie bei meinem tutorial effekte und sounds, die zweite script datei ersparen, mit der ich den sound einfüge

den effekt "fire" hab ich wie bei mp_village in der datei maps\mp\mp_moria_fx.gsc definiert

maps\mp\mp_moria_fx.gsc:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
main
{
	level._effect["fire"] = loadfx ("fire/firelp_barrel_pm");
}



aufgerufen werden dann beide scripts in mp_map.gsc

mp_moria.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
main
{
	maps\mp\mp_moria_fx::main();
	thread maps\createfx\mp_moria_fx::Add_Fire();
}



__________________
Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende grosses Grinsen
steinacker ist offline E-Mail an steinacker senden Beiträge von steinacker suchen Nehmen Sie steinacker in Ihre Freundesliste auf
ProAqua
Zu-Hause-Esser


Dabei seit: 15.12.2009
Beiträge: 60


hallo Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo und grüsse an die members vom Board


habe das tutorial mit den effekten gelesen
sehr aufschlussreich
danke

habe da nur ein kleines proplem
beim öffnen erscheint die fehler mitteilung

"this is probably because there is no vaild game data at "I:\Ca...-Mod\raw\fx\weather"
Path must point to the directory where the game is installed.

also von meinem spiel habe ich damals ein kopie
auf I angelegt (main spiel liegt auf C)
unter I habe ich dann die mod Tools eingefügt

die erste Zeile des Current game path ist das (i)
kleingeschrieben......(i:/call of duty 4 - mod/raw/fx/weather)

in default game path steht dieser pfad
I:\Call of Duty 4 - Mod\raw\fx\weather

nur leider kann ich die erste Zeile nicht editieren ... weil diese grau unterlegt ist ...

gibt es dann ne möglichkeit ...?
wäre sehr dankbar

gruss Pro Aqua
ProAqua ist offline Beiträge von ProAqua suchen Nehmen Sie ProAqua in Ihre Freundesliste auf
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dein default game path ist

i:\call of duty 4 - mod\

nicht mehr und nicht weniger
BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
ProAqua
Zu-Hause-Esser


Dabei seit: 15.12.2009
Beiträge: 60


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke ..

aber selbst wenn ich dies auf kleinschreibung ändere
kommt dieselbe fehlermeldung

... gibt es keine möglichkeit
den current game path zu ändern

...

danke im vorraus
ProAqua ist offline Beiträge von ProAqua suchen Nehmen Sie ProAqua in Ihre Freundesliste auf
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Gibt es

Start – Ausführen regedit
dort
HKEY_CURRENT_USER\Software\iw\EffectsEd3\Settings

Dort kannst du GameDir _DefaultPath umbennenen
BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
ProAqua
Zu-Hause-Esser


Dabei seit: 15.12.2009
Beiträge: 60


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke Badman

für die Hilfe

nur leider macht es im moment keine sinn
-- egal was ich ändere .. er zeigt mir immer den link an
- der im kleingeschrieben Stil steht

-- nur leider nicht den richtigen
- und immer die vertröstenden Worte .. das er das Spiel nicht auf die partition findet ...

- gab es damals schon öfters dieses Problem ..
hinsichtlich des fx bereiches in den Modtools ..

wenn nicht muss ich sie nach dem beendigen des aktuellen Projekts

neu installieren

danke und Gruss ProAqua
ProAqua ist offline Beiträge von ProAqua suchen Nehmen Sie ProAqua in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [Tutorial] Effekte einfügen (Wetter, Rauch, usw.) *

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv