Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  FAQFAQ  SuchenSuchen  AnmeldenAnmelden  MitgliederMitglieder  LoginLogin  

Austausch | 
 

 Hazard Ausrüstung im InExantros-Stil zeichnen.

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: Hazard Ausrüstung im InExantros-Stil zeichnen.   Mo Mai 31, 2010 1:01 am

Vorwort

Hallo, CNDG-Gemeinde. Nachdem hier schon des öfteren die Frage aufkam wie die Ersteller des InExantros-Packs es geschafft haben die Ausrüstung zu zeichnen und die Antworten leider immer sehr unbefriedigend waren, habe ich mich entschlossen jetzt mal ein komplett Tutorial zu schreiben. Ich werde das ganze jetzt im Bezug auf Hazard-Ausrüstung beschreiben, jedoch kann jeder halbwegs fähige Scripter das ganze auf jeden Clonk übertragen.

Benötigt: Blender, den Blenderclonk und das Hazard-Pack.
Vorwissen: Blenderclonk, etwas Wissen über Materials, Attach, Effekte.

Schwierigkeit: Like a Star @ heaven Like a Star @ heaven

Das Blendertutorial ist wirklich nur eine kurze Erklärung, den Rest sollte man mit Grundwissen abdecken. Allgemein setzte ich hier ein gewisses Wissen und eine gewisse Kenntnis voraus und erkläre nicht alles bis ins Detail. Dafür sind ja auch die Tuts verlinkt. Die Bilder sind auf Dropbox gehostet, wenn sie wer nicht sehen kann solls sagen, dann such ich nen anderen Host.

Blender Quick&Dirty

Wir wollen heute einen Helm für den Hazardclonk erstellen und diesen zeichnen lassen. Als erstes brauchen wir eine Overlaygrafik die wir mit Blender anfertigen. Wir öffnen Blender, laden den Hazardclonk und beginnen alle Materials transparent zu machen. Wir drücken auf F5. Unter "Link to Object" (Pfeil) können wir das ganze durchschalten. Wir stellen bei allen Einträgen, außer "Helmet" den Alpharegler auf Null und schalten ZTransparency ein (Pfeile).


Nachdem dies erledigt ist wählen wir "Helmet" an. Hier können wir jetzt eine tolle Textur draufklatschen oder einfach nur die Farbe ändern, ganz abhängig wie gut man in Blender ist. Sind wir fertig rendern wir das ganze Full. Nun sollte etwa sowas rauskommen. Nicht schön, aber das wirds tun. Falls die Füße auch drauf sind, entfernt ihre Vertices, dann sind sie weg.



Das Overlayobjekt

Okay, dann haben wir ja mal die Graphics, dann wirds Zeit fürs Scripten.
Machen wir uns zuerst ans Hilfsobjekt. Dazu erstellen wir, wie gehabt ein neues Objekt, wichtig ist das das Objekt einen Vertex bei 0/0 hat, nicht einsammelbar ist, und 20 Pixel hoch sowie 16 breit ist. Eben die Maße eines Hazardclonks. Desc und Names.txt ist uns auch erstmal egal. Die Standardgrafik lassen wir drin, das vermeidet Errors. Nun ziehen wir unsere Grafik in dieses Objekt hinen und nennen sie "GraphicsHelmet". Als nächstes kommt die Actmap. Wir kopieren die des Hazardclonks rüber und modifizieren sie folgendermaßen: Wir ersetzten alle Prozeduren durch die Prozedur "ATTACH". Dies ist notwendig da das Objekt nachher an den Clonk attached wird. Wir setzen Delay auf Null da wir mit SetPhase arbeiten wollen und entfernen zu Errorvermeidung alle Start und EndCalls. Beispiel an der Action "Walk".
Code:

[Action]
Name=Walk
Procedure=ATTACH
Directions=2
FlipDir=1
Length=16
Delay=0
Facet=0,0,16,20,0,0
NextAction=Walk
Das wars damit auch schon. Kommen wir nun zum Script. Dies wird natürlich in #strict 2 geschrieben.
Wir haben eine local, die den Clonk, an den das Overlayobjekt geklebt wird, speichert. Die Funktion Attach wird später vom Helmobjekt aufgerufen, pObj ist der Clonk und szGraphics ist der Name der Grafik die gesetzt wird, in unserem Falle "Helmet". Der Effekt sorgt dafür das immer die richtige Action mit der richtigen Phase vorhanden ist. Am Anfang muss erst eine Action gesetzt werden, denn bei Idle kann nicht attached werden. SetActionData sagt dem Objekt wo es sich attachen soll, mit SetGraphics wird die Helmgrafik gesetzt. Dann wird noch der Effekt geaddet und der Clonk gespeichert. Der Effekt sorgt lediglich dafür das das Objekt immer die gleiche Action und die gleiche Phase wie der Clonk hat und in die richtige Richtung gedreht ist.
Code:

/*-- Overlay --*/

#strict 2

local pClonk;

func Attach(object pObj, string szGraphics)
{
 SetAction(GetAction(pObj), pObj);
  SetActionData(0,this());
  SetGraphics(szGraphics);
    AddEffect("Draw", this, 101, 1, this, 89OY);
    pClonk = pObj;
}

func FxDrawTimer()
{
 SetAction(GetAction(pClonk));
  SetPhase(GetPhase(pClonk));
  SetDir(GetDir(pClonk));
}


Den Helm


Nun wir ein Helmobjekt. Natürlich in #strict 2 und GEAR muss includiert werden. Wir benötigen eine Variable um das Overlayobjekt zu speichern. IsHazardGear ist Pflicht, GEAR_Helmet auch, das ist übrigens von Hazard aus vordefiniert. GearEffekt wird beim Anlegen aufgerufen, hier wird das Overlay erzeugt (Die ID muss passen) und Attach mit den entsprechenden Parametern aufgerufen, den Rest übernimmt das Overlayobjekt selbst. Bei GearResetEffekt wird nur das Overlay wieder entfernt, dass es nicht weiterhin am Clonk klebt. Hier gehört natürlich noch die OnClonkDmg Funktion rein, aber damit will ich nun wirklich niemand nerven. Genausowenig wie mit DefCore&Co. das könnt ihr auch selber.
Code:

/*-- Helm --*/

#strict 2
#include GEAR

local Overlay;

func IsHazardGear() { return(true); }
func GetGearType()  { return(GEAR_Helmet); }

func GearEffect(object pHazard)
{
  Overlay = CreateObject(89OY);
  Overlay->Attach(pHazard, "Helmet");
}

func GearEffectReset()
{
 RemoveObject(Overlay);
}

Ergebnisse

So wenn wir nun vernünftig gescriptet haben und alles stimmt können wir die Engine starten und den Helm aufsetzten. Schau mer mal.

Laufen tut er schonmal richtig.

Und auch beim Backflip funktioniert diese Technik.

Zusätzliches
-Mit SetObjDrawTransform() lässt sich das Overlay zusätzlich anpassen, kann nützlich sein.
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

Männlich Alter : 22
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

BeitragThema: Re: Hazard Ausrüstung im InExantros-Stil zeichnen.   Mo Mai 31, 2010 12:02 pm

Was mir auffällt im Script.. Fängt denn der Helm keinen Schaden ab? Ist also nur Deko-objekt?
Wie kann man denn bei nem Gear einstellen ob es Rüstung ist und wieviel Schaden es abhält?

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: Re: Hazard Ausrüstung im InExantros-Stil zeichnen.   Mo Mai 31, 2010 2:06 pm

Ich hab mir den OnClonkDmg Aufruf gespart, das kann jeder Fortgeschrittene selber und hätte bloß das Script unnötig in die Länge gezogen. Steht auch oben. Die Hazarddoku erklärt die ganze Sachen etwas schwammig, stimmt. Ich glaube das schreit nach einem Tutorial. Aber ich muss erstr duschen und frühstücken, dann mach ich mich ran.
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Hazard Ausrüstung im InExantros-Stil zeichnen.   

Nach oben Nach unten
 
Hazard Ausrüstung im InExantros-Stil zeichnen.
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Fortgeschrittene :: Tutorials-
Gehe zu: