Im Laufe des Tages konnte ich heute beobachten, dass die Load der Maschine recht erheblich war. Der sonst übliche Neustart wegen aufgeblähtem Mono brachte nichts, ohne Betrieb auf den SIMs blieb die Last bei einer nahezu ausgelasteten CPU (von zweien). Also dann mal rein ins Grid und schauen was da so los ist. Der erste Eindruck: Das übliche wenn etwas viel Power nimmt: Bewegen war kaum möglich. Mittels Ctrl-Shift-1 war denn auch klar wo es herkam: 200ms und mehr Physics-Time je Frame, wo das verursacht werden mag? ;). Ein Sichten der vorhandenen Objekte brachte denn auch Klarheit, und zunächst dachte ich wir hätten Besuch gehabt von jemandem der ein wenig „aufgeräumt“ hat: Nahezu alle physischen Objekte lagen wild zuckend auf dem Boden rum statt locker zu pendeln wie es die Absicht war. Ob das jetzt am Neustart lag oder sich die Dinger einfach im Laufe der Zeit verselbständigen bleibt zunächst unklar. Klar ist auf jeden Fall eines: So geht’s nicht, weil dass sich während der Abwesenheit ein beliebiges Chaos einstellt ist nicht akzeptabel. Also war es das zunächst mit der Ninja-Physics, ich gehe wieder zurück auf die althergebrachte Steuerung von Objekten und konstruiere die „Gelenke“ selbst. Zwar wesentlich aufwändiger, aber dafür auch sicher. Außerdem brauche ich keinerlei Hilfsobjekte die die Bewegungen zwangs-initiieren. 🙂
Schlagwort: Ninja
Ninja Number One
Die Ninja Physics Erweiterung der ODE ist vom Resultat her eine feine Sache. Endlich sind Gelenke möglich, zur Zeit sind lediglich zwei Arten realisiert: Ein Kugelgelenk (balljoint) und ein Scharnier (hingejoint). Die Ergebnisse sind wunderbar anzuschauen, Videos dazu auf Youtube geben nur sehr unpräzise wieder was möglich ist, daher spare ich mir hier die Einbindung.
Was die Implementation angeht, muss ich aber sagen, dass ich von den Machern enttäuscht bin, denn die Verknüpfung der Prims mittels eines Joint-Prims über Namen und Beschreibung halte ich für sehr unprofessionell. Wo bleibt die weltweit eindeutige UUID mit der man hätte arbeiten können? Sicherlich ist somit eine Konstruktion ohne Scripting möglich, aber was für ein Aufwand den man betreiben muss um erstellte Objekte funktionsfähig zu erhalten. Und das ist wirklich ein grosser Nachteil: Bastelt man an einem neuen Objekt herum und passt nicht auf mit den Namen, geschieht es leicht dass man schon existierende zerstört, was niemals sein darf.
Okay, ich gebe zu, meine recht schlampige Arbeitsweise wird hier zwangs-diszipliniert, was auch angenehm sein kann. 🙂
Ein recht mühseliger weiterer Punkt ist, dass man Gelenke die sich nicht an der Oberfläche ansiedeln sollen, auf irgendeine Art in der Luft halten muss. Auch Fortbewegungen der gebauten Figuren müssen zwangsinitiiert werden. Aber hier liegen die scheinbaren Begrenzungen sicherlich noch daran dass ich mich nicht genügend mit der Materie beschäftigt habe.
Das Resumé lautet: Wunderbar in der Wirkung, gewöhnungsbedürftig in der Anwendung. Scripting und Velocity-Einbau wird sich noch zeigen in wieweit das machbar ist.