Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mi März 31, 2010 2:35 pm
Vorwissen: Mittlere Scriptfähigkeit und Verständniss Schwierigkeit: ***** Hallo und Willkommen zu einer meiner Tutorials. Heute lernen wir mal, wie man ein Fahrzeug mit z.B folgender Grafik: Zu einem tollen Fahrzeug mit einer tollen Physic scripten kann. Inspiriert wurde ich von Tundaners APC. (Es war doch Tundaner, oder? ;D) Das man so einfach ein so tollen Fahrzeug scripten kann, ich war echt verblüft. Und nun will ich das auch allen anderen verständlich erklären damit sie soetwas auch können. Also gut, fangen wir an. Schritt 1: Die Defcore Zuersteinmal erstellen wir eine neue Objektdefinition und kopieren die tolle Fahrzeuggrafik rein. Die nennen wir, falls sie nicht schon so heißt, "Graphics.png". Das ganze sieht jetzt ungefähr so aus: Jetzt geht zur DefCore und öffnet sie. Sollte so aussehen:
Die ID, die sollte 4 Stellen haben und einzigartig sein.
Den Name Paramater
Die Category, die schreibt ihr um zu: Category=C4D_Vehilce|C4D_SelectVehicle|C4D_SelectKnowledge
Parameter Width, Height, Offset und Picture der Grafik anpassen. Width = Breite der Graphics.png, Height=Höhe der Grafik und Offset= -(Width/2),-(Height/2)
Ganz wichtig: Alles was mit Vertices zu tun hat LÖSCHEN! Das heißt raus mit den Zeilen Vertices=1 bis VertexFriction=20.
Collectible=0, man will das Fahrzeug ja nicht einsammeln..
Die Zeile "VehicleControl=2" hinzufügen, das ist der Grundstein damit man das Fahrzeug überhaupt steuern kann.
Außerdem nocn "Rotate=1" ,"RotatedEntrance=1" und "NoStabilize=1" schreiben, damit sich das Objekt drehen kann und der Eingang noch richtig berechnet wird.
Auch wichtig: Damit ihr in euer Fahrzeug reingehen könnt müsst ihr einen Entrance setzen. Wenn ihr überral reingehen sollen könnt, dann schreibt: "Entrance=Offset,Höhe,Breite"
Die Section "Pyhsical" hinzufügen. Darunter Float=1000 schreiben. Das ist später für die Action wichtig.
Optional: BorderBound=1 machen, damits wenns gegen den Rand knallt aufhöhrt zu fahren und nicht die Engine zum crashen bringt.
Habt ihr alles richtig gemacht müsste eure DefCore so aussehen:
Und das war auch schon der Erste Schritt. Jetzt kommt: Schritt 2 Die Actmap Nun erstellt erstmal ein neues Textdokument: Dann nennt sie um zu ActMap.txt! Jetzt kopiert ihr ersteinmal folgenden Inhalt rein:
Nun die Vorlage müsst ihr nurnoch etwas anpassen. Bei "Facet" gebt ihr die Koordinaten der oberen Linken Ecke der Fahren animation ein.(des ersten Bildes) und dann die Koordinaten der unteren rechten Ecke der Fahranimation des ersten Bildes. Ich hab keine Fahranimation, deshalb gebe ich einfach nur die Grafik als meine "Animation" an. 0,0 ist ganz oben links und 66,38 ist die untere Rechte ecke meiner Graphics.png. Des Folgend habe ic hhier auch "Length=1" da meine "Animation" nur 1 Bild besitzt. Aber nun etwas Erklärung: Ihr errinnert euch doch, das wir oben in die ActMap eine Section "Pyhsical" und darunter "Float=1000" geschreiben haben. Die Zahl "1000" kann x-beliebig sein, die Geschwindigkeit wird später im Script geregelt. Wichtig ist hier nur, das wir hier eine Exisitierende Procedure haben. Und so schnell haben wir die ActMap Schritt 3: Der SCRIPT Nun kommen wir endlich zum Eigentlichen hierr. Der Script. Am Anfang sieht euer Script so aus:
Code:
/*-- Neues Objekt --*/
#strict
func Initialize() {
return(1); }
Recht leer^^ Nun, zuallerst inkludieren wir mal die Tank-Physic. Das machen wir im Script durch #include L_TK "L_TK" ist die ID des Tank-Physik objektes. Zu finden übrigens hier: Jetzt werden wir erstmal ein Paar Zeilen aus diesem Objekt übernehmen. Kopiert folgende Zeilen in euer Script:
Code:
// X- and Y-Offset to wheels (which are 2) from the center: assumes that the distance // to the wheels are the same from the center. public func XOffsToWheels() { return(20); } public func YOffsToWheels() { return(19); }
public func MaxSpeed() { return(6000); } // maximum speed public func BrakeStrengh() { return(400); } // speed of braking public func Acceleration() { return(600); } // speed of speeding up
So das bedarf natürlich wieder einer Erklärung. Das Tank-Pyhsic Objekt macht uns das Scripten eigentlich relativ einfach. Wir müssen nur bestimmt Funktionen erstellen und ein Paar Zahlen zurückgeben denn rest macht das Objekt von alleine. Die ersten 2 Funktion "X/YOffsToWheels" geben die Koordinaten der RÄDER abhängig zum Offset an. Wenn ihr z.B eine Grafik hat und in der Grafik sind die Räder bei Position 56,35 (das andere Interresiert erstmal nicht) dann werden die Werte durch 56-XOffset und die Y mit 35 - YOffset berechnet. Die nächsten 3 Funktionen geben die Geschwindigkeit an. MaxSpeed() die maximal zu erreichende Geschwindigkeit, BrakeStrength() die Geschwindig wenn das Fahrzeug loswährt und Acceleration die Beschleunigung mit der es weiterfährt. Jetzt brauchen wir noch die Funktionen die das Steuern von innen ermöglichen. Die werden mit ContainedLeft() (wenn man drinnen ist und nach Link drückt) ContainedRight() und ContainedDown() gemacht. Hier die Theorie: Wenn man ContainedLeft() drückt und man fährt derzeit nach RECHTS dann erfolgt ein Richtungswechsel. Fährt er bereits nach Link dann mach garnichts. (man könnt ja auch extra beschleunigung machen ) Und bei ContainedDown() wenn er in irgenteine Richtung fährt wird langsam angehalten, wenn er bereits steht darf er aussteigen. Hier die Funktionen dazu:
public func ContainedDown(object driver) { // Down if(IsDriving()) { Stop(); return(1); } if(GetPlrDownDouble(GetOwner(driver))) { Exit(driver,0,-5); } return(1);
/*Die Funktion womit man das Auto dreht*/ func Turn() { SetDir(!GetDir()); } }
Gut, soweit so gut. Zuletzt noch müssen wir machen das wenn das Auto erstellt ist der Eingang aufgemacht wird und die Action "Drive" macht. So machen wir es:
Code:
func Initialize(){ SetAction("Drive"); SetEntrance(1); return(_inherited()); //wichtig! damit die initialize aus dem tank objekt auch noch ausgeführt wird }
Tada! Schon sind alle nötigen Schritte getan und einer ersten Probefahrt steht nun nichts mehr im Wege!
Bei Fragen, Anregungen und Problemen darf keine Gepostet werden!
Das war nur der erste Teil! Im 2ten Teil werden wir unserem Fahrzeug noch ein Geschütz verpassen, das auch dem Clonk das HUD anzeigt und viele weiter Kniffe
Ich hoffe es hat euch gefallen und war leicht verständlich. MfG Gamer
Zuletzt von Gamer am Sa Sep 11, 2010 10:24 pm bearbeitet; insgesamt 2-mal bearbeitet (Grund : Link zum 2ten Tut eingefügt)
YoCed Vizeadmiral
Alter : 28 Ort : Rheine Anmeldedatum : 23.05.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mi März 31, 2010 2:43 pm
Ganz nett, kann ich gut gebrauchen, freu mich schon auf teil 2
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Do Apr 01, 2010 2:47 pm
Anscheinend interressiert sich niemand außer YoCed für mein Tutorial..
Markus Oberst
Alter : 28 Ort : Leibnitz Anmeldedatum : 24.07.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Do Apr 01, 2010 3:55 pm
Es is gut erklärt werds mal ausprobieren werd in nächster Zeit eh ein paar Panzer machen (für was is ein Geheimnis siúche aber paar Grafiker ^^ )
Germanator Fähnrich
Alter : 30 Ort : Kanada Anmeldedatum : 19.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Fr Apr 02, 2010 8:34 am
Super tut! Hat direkt beim ersten versuch geklappt. Freu mich auch schon auf Teil 2.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Fr Apr 02, 2010 10:00 pm
wtf! Da hat man mal einen Tag kein Inet...
sehr gut, sehr gut das Tut. Und evtl. nützlich für ein gewisses Projekt
Thoros Generalmajor
Anmeldedatum : 22.09.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 9:27 am
Cooles Turorial! Aber wo gibt es TankPhysics.C4d? Und geht das auch mit Endeavour?
Tundanér Fregattenkapitän
Alter : 29 Ort : Rödental Anmeldedatum : 03.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 9:44 am
Die Tank Physics findet man im neuen Hazardpack und die sind nicht mit Clonk Endeavour kompatibel.
Thoros Generalmajor
Anmeldedatum : 22.09.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 4:08 pm
Ach mist! Aber Danke für die Info^^ Ich hol mir warscheinlich sowieso Clonk Rage. Findet ihr eigentlich das es sich lohnt Rage zu holen?
Mozart Kanzler
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 24.02.08
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 4:25 pm
Das ist hier leider nicht Thema
awed Kadett
Ort : berlin Anmeldedatum : 24.02.10
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 4:57 pm
Spam:
Spoiler:
clonk ist in vielen punkten besser, zum beispiel ist der script teil um vielesvergrößert.
Kein Spam:
Dein toturial ist geil, freu mich schon auf teil 2
Tackleberry Leutnant
Anmeldedatum : 29.04.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Di Apr 06, 2010 11:01 pm
Falls jemand die DefCore rauskopiert hat, es muss C4D_Vehicle heißen und nicht C4D_Vehilce, kleiner Typo.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mi Apr 07, 2010 12:22 pm
Habs ausgebessert, danke fpr den Hinweiß.
Mupf Leutnant
Ort : RLP Anmeldedatum : 19.07.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mo Apr 12, 2010 5:33 pm
Tolles Tutorial! Vielleicht ein bisschen kleinschrittig, aber so kann es auch jeder nachmachen.
WarPig Leutnant
Alter : 30 Anmeldedatum : 16.04.10
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Fr Apr 16, 2010 9:09 pm
Boaah geil, danach hab ich schon seit ner halben ewigkeit gesucht. Super tut, leicht verständlich und schön anschaulich. Danke danke danke!
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Fr Apr 16, 2010 9:36 pm
WarPig schrieb:
Danke danke danke!
Bitte bitte bitte! Mich freut es das es bei allen so toll funktioniert, das keiner Probleme hat. Und wenn es interresiert, ich schreibe grade den 2ten Teil!
Mr. X Feldmarschall
Alter : 27 Ort : Schweiz/Baselland Anmeldedatum : 23.02.10
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Sa Apr 17, 2010 5:36 pm
mir ist da was aufgefallen bei offset hast du -17, aber es müsste doch -19 sein wenn man es genau sieht^^ is aber glaub nicht so wichtig nun zu meiner frage hab ich da irgendwas falsch gemacht?
/*-- Neues Objekt --*/
#strict
func Initialize() {
// 51X- and 43Y-Offset to wheels (which are 2) from the center: assumes that the distance // to the wheels are the same from the center. public func XOffsToWheels() { return(10); } public func YOffsToWheels() { return(9); }
public func MaxSpeed() { return(6000); } // maximum speed public func BrakeStrengh() { return(400); } // speed of braking public func Acceleration() { return(600); } // speed of speeding up
public func ContainedDown(object driver) { // Down if(IsDriving()) { Stop(); return(1); } if(GetPlrDownDouble(GetOwner(driver))) { Exit(driver,0,-5); } return(1);
/*Die Funktion womit man das Auto dreht*/ func Turn() { SetDir(!GetDir()); } } func Initialize(){ SetAction("Drive"); SetEntrance(1); return(_inherited()); } return(1); }
NilsZ Admiral
Ort : Mein Rekord: 27 Punkte! :D Anmeldedatum : 07.08.08
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Sa Apr 17, 2010 10:41 pm
Super geiles Tut!!! Endlich gibt es sowas wo die Hazardphyik erklärt wird! Danke Gamer! Daumen -> hoch
Edit: Aber im Script sind auch mehrer Fehler drinnen!
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) So Apr 18, 2010 3:07 pm
Mr.X du hastr d mehrer Klammerfehler beim Schließen der Funktionen drinnen. So müsste es richtig lauten: (Einfach die letzten 3 Funktionen total löschen und dafür die hier einfügen)
Code:
public func ContainedDown(object driver) { // Down if(IsDriving()) { Stop(); return(1); } if(GetPlrDownDouble(GetOwner(driver))) { Exit(driver,0,-5); } return(1); }
Und die öetzten beiden Funktionen werden so geschlossen:
Code:
/*Die Funktion womit man das Auto dreht*/ func Turn() { SetDir(!GetDir()); return(1); }
Ort : Mein Rekord: 27 Punkte! :D Anmeldedatum : 07.08.08
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) So Apr 18, 2010 4:18 pm
@Gamer: Du hast noch vergessen diese virtuellen Verticses zu bennen, sonst hängt das Auto wie bei mir am Boden fest.
Code:
// The vehicle has 4 virtual vertices. One left, one right, one on top, one on bottom public func VertexLeft() { return(15); } public func VertexRight() { return(15); } public func VertexTop() { return(13); } public func VertexBottom() { return(13); }
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) So Apr 18, 2010 9:35 pm
Also bei mir gings auch ohne diese Scriptzeilen.. Mr.X, gibts i-welche Errors beim reinziehen oder so? Oder allgemein welche Errors macht es?
Mr. X Feldmarschall
Alter : 27 Ort : Schweiz/Baselland Anmeldedatum : 23.02.10
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mo Apr 19, 2010 5:58 pm
ne ich kann es erst gar nicht in ein szen rein tun ( es ist nicht in der Liste Fahrzeuge)
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mo Apr 19, 2010 9:07 pm
Dann fehlt wohl Category=...|C4D_SelectVehicle|... ... Aber selbst wenn es nicht daran liegt: Das macht nichts, denn du kannst ein Objekt einfach im Entwicklermodus in ein Szen ziehen und das Szenario dann abspeichern... oder im Script definieren, dass ein solches Objekt erzeugt wird. Das alles geht natürlich nur, wenn das Objekt szenariointern ist oder in den Vorgaben aktiviert wurde. Sonst wird die Objektdefinition gar nicht geladen.
NilsZ Admiral
Ort : Mein Rekord: 27 Punkte! :D Anmeldedatum : 07.08.08
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1) Mo Apr 19, 2010 9:13 pm
Die Graphics.png bzw. -.bmp darf auch keine Fehler haben, sonst wird das Objekt nicht geladen. Ebenso dürfen keine Grafiken die nicht mit Graphics, Rank, Portrait oder Title anfangen im Objektordner liegen.
Gesponserte Inhalte
Thema: Re: Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1)
Hazard Fahrzeuge mit Tank-Physics und Geschütz erstellen (Teil 1)