Childs texturieren (gelöst)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Elendil

Betreff: Childs texturieren (gelöst)

BeitragSa, Jul 24, 2010 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
Hab folgendes Problem: Ich würde gern in meinem Spiel die Textur vom Kopf meines animierten Elben ändern wollen. Weise ich jetzt aber die Textur dem Elben zu ist die gesamte Kopftextur über die Figur gezogen, da es mehrere Texturen für das Modell gibt. Also wollt ich den Kopf mittels FindChild herausfinden. Hat soweit auch alles geklappt. Nur kann ich das Head-Child nicht texturieren, da Blitz mir sagt "Entity is not a Model", was ja auch logisch scheint. Über EntityClass hab ich rausgefunden, dass Blitz die Childs als Pivots bezeichnet.
Ich weiß nun nur nicht wie ich diese texturieren kann. Hoff ihr könnt mir helfen!
  • Zuletzt bearbeitet von Elendil am So, Jul 25, 2010 12:31, insgesamt einmal bearbeitet

ZaP

BeitragSa, Jul 24, 2010 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht ganz sicher, ob das funktioniert, aber Du kannst anhand der alten Textur das Surface vom Kopf herausfinden (GetSurfaceBrush, GetBrushTexture usw.) und versuchen das mit PaintSurface neu zu bepinseln.
Starfare: Worklog, Website (download)

Elendil

BeitragSa, Jul 24, 2010 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
erstmal danke für deine hilfe Smile. Hab jetzt aber noch nicht so ganz verstanden, wie ich damit das Surface rausbekommen soll. Sorry ich steh grad aufm schlauch >.<.

ZaP

BeitragSa, Jul 24, 2010 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du gehst alle Surfaces durch, holst dir jedes Mal die Textur aus dem Brush von dem Surface, und vergleichst in mit der alten Textur. Bei einer Übereinstimmung hast Du deinen Kopf gefunden, und damit auch das Surface, das Du dann neu bemalst:

Code: [AUSKLAPPEN]

For i = 0 To CountSurfaces(mesh)
  If GetBrushTexture(GetSurfaceBrush(GetSurface(mesh, i))) = AlteTextur
    DasSurface = GetSurface(mesh, i)
  EndIf
Next

Local brush = LoadBrush("neuetextur.png")
PaintSurface DasSurface, brush
Starfare: Worklog, Website (download)

Elendil

BeitragSa, Jul 24, 2010 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
du bist spitze ^^ Smile werds gleich mal ausprobieren!
Edit: So habs jetzt mal probiert. Leider bekomm ich folgende Fehlermeldung: "Surface Index out of Range!"

darth

BeitragSa, Jul 24, 2010 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

wenn ich mich recht erinnere (und das ist nicht unwahrscheinlich :> ) dann fängt der Laufindex für Surfaces nicht bei 0 sondern bei 1 an, also müsste es heissen:

BlitzBasic: [AUSKLAPPEN]
For i = 1 To CountSurfaces(mesh) 
If GetBrushTexture(GetSurfaceBrush(GetSurface(mesh, i))) = AlteTextur
DasSurface = GetSurface(mesh, i)
EndIf
Next


Allerdings fangen die Indizes für Triangles und Vertices bei 0 an, warum auch immer das so gemacht wurde -.-

MfG,
Darth
Diese Signatur ist leer.

Elendil

BeitragSo, Jul 25, 2010 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hey,
danke darth so funktionierts Smile leider sagt mir jedoch blitz, dass es kein surface mit der textur findet. woran könnte das noch liegen? hoffe ihr habt noch ne idee, ich bin mit meinen am ende :-\..
Edit: Ich habs mit allen Texturen der Figur versucht, irgnwas kann noch nicht stimmen >.<..

Edit2: Alles klar leute habs gelöst. Hab jetzt durch durchprobieren der einzelnen Surfaces rausgefunden was was ist (also surface 1 rot angemalt, gesehn wases is usw.-> evtl. nich schön gelöst ich weiß aber jetz weiß ich was ich wissen musste)

Danke an alle die mir geholfen haben Smile

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group