Objekt auf einmal unsichtbar

User avatar
Mofi
Posts: 126
Joined: Sun May 16, 2010 2:29 am
Contact:

Objekt auf einmal unsichtbar

Post by Mofi »

Hi,

Ich arbeite gerade an nem Salzstreuer. Bei dem ist hinten der Streuer mit Hydraulikschläuchen animiert. Die Hydraulikschläuche wurden mit Bones animiert. Im GE ist alles in ordnung, kann die Animation abspielen und bleibt auch alles so wie es soll. Nur wenn ich den Salzstreuer im Spiel kaufe sind die Hydraulikschläuche auf einmal unsichtbar. Selbst wenn ich den Streuer ein oder ausklappe bleiben die unsichtbar. Der Streuer der auch in der selben Animation bewegt wird bleibt sichtbar. Ich weiß absolut nicht warum.

Desweiteren will ich die Streuscheibe (wenn die so heißt) drehen lassen, sobald der Streuer eingeschaltet ist. Momentan dreht die Scheibe dauerhaft. Ich hab schon verschiedene Dinge probiert, aber die dreht immer dauerhaft. Das Script sieht im Update so aus:

Code: Select all

    if self:getIsActive() then		
        if self.setIsTurnedOn then
            rotate(self.rotor, 0, self.rotorSpeed*dt, 0);
        end;
    end;
Ich hoffe ihr könnt mir helfen. :(

MfG
MfG
Mofi


Image
Stegei
GIANTS Software | CTO
Posts: 1787
Joined: Sat Jun 09, 2007 10:51 am

Re: Objekt auf einmal unsichtbar

Post by Stegei »

Bei deinem Script-Code verwendest du if self.setIsTurnedOn, das muss lauten: if self.isTurnedOn

Du darfst das Shape der geskinnten Objekte nicht verschieben, nur die Joints davon.
Da das Shape aber ein Kind vom Objekt ist, wird das natürlich auch umher geschoben.
Du kannst z.B. das Shape beim laden an den root node der Welt linken.

Code: Select all

function Spec:load(xmlFile)
    self.skinnedShape = Utils.indexToObject(.....)
end;
function Spec:postLoad(xmlFile)
    if self.skinnedShape ~= nil then
        link(getRootNode(), self.skinnedShape);
    end;
end;

function Spec:delete()
    if self.skinnedShape ~= nil then
        delete(self.skinnedShape);
    end;
end;
Wichtig ist hier, dass der Link Aufruf in der Funktion postLoad ist, weil sonst andere Spezialisierungen Probleme haben können, weil beim linken die Indices verschoben werden.
Und im delete muss dann das Shape auch wieder gelöscht werden, da dies dann nicht mehr automatisch passieren.
User avatar
Mofi
Posts: 126
Joined: Sun May 16, 2010 2:29 am
Contact:

Re: Objekt auf einmal unsichtbar

Post by Mofi »

Hi,

Soweit hat alles schon mal funktioniert. Nur wandern die Hydraulikschläuche jetzt wärend der fahrt hin und her. Die bleiben nicht an dem Punkt wo die eigentlich bleiben sollten.

MfG
MfG
Mofi


Image
Stegei
GIANTS Software | CTO
Posts: 1787
Joined: Sat Jun 09, 2007 10:51 am

Re: Objekt auf einmal unsichtbar

Post by Stegei »

Denke das liegt daran, dass sich die Joints auch bewegen. Kannst du evtl. mal ein Screenshot vom Scenegraph machen, und erklären was wo wie bewegt wird?
Du kannst auch mal an jeden Joint ein Cube Shape hängen, und sehen wie sich die Joints im Spiel bewegen.
User avatar
Mofi
Posts: 126
Joined: Sun May 16, 2010 2:29 am
Contact:

Re: Objekt auf einmal unsichtbar

Post by Mofi »

Ich hab mal 2 Screenshots gemacht. Ein am Anfang der Animation und ein am Ende. In der Animation hängt das Streuer und joint1 - joint7. Der Hydraulikschlauch selber ist nicht in der Animation.

Image Image

MfG
MfG
Mofi


Image
Stegei
GIANTS Software | CTO
Posts: 1787
Joined: Sat Jun 09, 2007 10:51 am

Re: Objekt auf einmal unsichtbar

Post by Stegei »

Welches der Shapes ist das geskinnte? Und was hast das für eine Translation/Rotation im I3D?
Wenn die nicht 0 sind, dann solltest du den Code in der postLoad Funktion noch so anpassen:

Code: Select all

    if self.skinnedShape ~= nil then
        link(getRootNode(), self.skinnedShape);
        setTranslation(self.skinnedShape, 0,0,0);
        setRotation(self.skinnedShape, 0,0,0);
    end;
User avatar
Mofi
Posts: 126
Joined: Sun May 16, 2010 2:29 am
Contact:

Re: Objekt auf einmal unsichtbar

Post by Mofi »

Damit hats endlich geklappt. Danke für die Unterstützung. ;)

Noch ne kleine Frage. Gibt es ne möglichkeit der Spiel zu sagen, das der Tank immer offen ist? Bei diesem Salzstreuer kann man den Tank nicht schließen bzw. öffnen.

MfG
MfG
Mofi


Image
Post Reply