B3D-Exporter Version 1.4

1.Installation

1.1. Hinweise

Ich stelle das Plugin trotz eines hohen Produktionsaufwandes kostenlos als Freeware zur Verfügung. Es ist daher nur fair, wenn Du mir dafür einen Eintrag in den Credits Ihres Spiels spendierst :-) .
Die Nutzung geschieht auf eigene Gefahr, ich übernehme keine Haftung für Schäden jeglicher Art, die durch diese Software entstanden sind.

Viel Spaß wünscht:
Robert Hierl (BIG BUG)

Homepage: www.mein-murks.de
Kontakt: rhierl@gmx.de

1.2. Installation

Extrahiere einfach die Zip-Datei in Deinen Cinema4D/Plugin-Ordner.
Nach dem Neustart von Cinema4D kann dort dann der Exporter mit dem Menübefehl „Plug-Ins->Blitz3D->Export B3D-File" aufgerufen werden.


Für dieses Plugin  wird mindestens Cinema4D Release 6 vorausgesetzt.
 

2.Anwendung

Um eine Szene als Blitzbasic B3D-Datei zu exportieren, muss hier einfach der Menübefehl „Plug-Ins->Blitz3D->Export B3D-File" aufgerufen werden.

2.1. Dialog

Darauf hin erscheint folgendes Bild:

 

 

Folgende Einstellungen können hier vorgenommen werden:

 

a.

Festlegen der „Animationsebene“. Bei „root node“ erhält das Objekt direkt an der Wurzel die Animationsinformation. Es kann in Blitz3D dann direkt mit „Animate“ angesprochen werden.
Die zweite Option „second level“ schreibt die Animationsinformation auf die zweite Ebene. Um eine Animation dann in Blitz3D ablaufen zu lassen, muss also erst das enstprechende Unterobjekt mit „FindChild“ oder „GetChild“ ermittelt und dieses dann mit „Animate“ animiert werden.

b.

Festlegen, welche Animationsdaten geschrieben werden sollen. Rotationsdaten werden immer geschrieben, Positionsdaten normalerweise schon, Skalierungsdaten normalerweise nicht.
Bei Boneobjekten werden aus technischen Gründen immer alle Daten geschrieben.

c.

Automatisches Setzen von Keys. Ist diese Option deaktiviert, werden nur die Animationskeys geschrieben, welche in C4D explizit gesetzt wurden. Interpolation für flüssige Übergänge, sowie Wiederholungssequenzen werden dabei ignoriert.

Bei der Option „simple“ werden automatisch zusätzliche Keys erzeugt. Interpolation und Wiederholungssequenzen werden somit berücksichtigt.

Die Option „full“ erzeugt auch automatisch Keys wie „simple“, hierbei werden aber zusätzlich noch Expressions ausgewertet. Objekte, die nur über XPresso- oder Ausrichtungstag animiert sind, werden also mit berücksichtigt.

d.

Hier wird das minimale Intervall für automatisch gesetzte Keys festgelegt. Das Plugin optimiert die Animationskeys im Nachhinein aber noch, so dass keine unnötigen Keys entstehen. Im Normalfall kann diese Option also auf „1“ gesetzt werden, ohne mit erheblich größeren Dateien rechnen zu müssen.

e.

Automatisches Konvertieren in Grundobjekte. Ist diese Option deaktiviert, so werden nur PolygonObjekte, also „in Grundobjekt konvertierte“ mit ihrer Struktur exportiert. Alles andere wird als Pivot gespeichert. Bei aktivierter Option versucht C4D alle Objekte zuerst automatisch in Grundobjekte zu konvertieren und exportiert dann z.B. auch Würfelobjekte mit Struktur. Sollte nur zum Testen verwendet werden, da es beim automatischen Konvertieren zu Fehlern in den UV-Koordinaten kommen kann.

f.

Automatisches Auftrennen der Polygone. Es treten hier dann keine Texturprobleme mehr auf, allerdings werden auch mehr Vertices erzeugt.

g.

Beleuchtung für Texturemixmode „normal“ berücksichtigen. Beim Texturmischmodus „normal“ wird die Beleuchtung in Blitz3D ignoriert, das Objekt verhält sich also wie mit der Option „leuchten“.
Ist diese Option aktiviert, so wird der Modus „normal“ automatisch in „multiplizieren“ umgeändert und die Objektfarbe auf weiss gesetzt. Somit erfolgt wieder eine Beleuchtung der entsprechenden Objekte.
Bei Multtexturing wird der Modus „normal“ auf „addieren“ gesetzt, um dem C4D-Verhalten zu entsprechen.

h.

Texturendung anpassen. Praktisch für PNG-Texturen, da Cinema4D diese nicht kennt. 

 

2.2.Warnungen und Fehlermeldungen

In der Konsole von Cinema4D( Aufruf über <shift>+F10 oder das Fenster-Menü) wird eine detaillierte Protokollierung über den Verlauf des Exports geführt. Neben Infos, wie den exportierten Texturen, Materialen und Objekten, werden hier auch Warnungen und Fehlermeldungen eingetragen.


Folgende Meldungen können derzeit auftreten:

E: No parent mesh for bone!

Es wurde ein Bone gefunden, aber dieser ist keinem PolygonObjekt zugeordnet(wurde das Parentobjekt vielleicht nicht in ein Grundobjekt konvertiert?).

W:Parent mesh isn't in null position. It might be shown corrupt or displaced.

Bone-animierte Gitterobjekte sollten am Besten nicht verschoben, skaliert oder rotiert sein, sondern in der Null-Position der Weltachse liegen.
Das ist dann ein Problem, wenn nicht jeder Vertexpunkt einem Bone zugeordnet ist, da diese dann in der ursprünglichen Position liegen, egal wie das Mesh positioniert oder rotiert bzw. skaliert ist und auch entsprechend deplaziert angezeigt werden.

W:There aren't any vertices affected by bone(No valid restriction found).

Für diesen Bone wurde kein Beschränkungstag gefunden, er wirkt sich also nicht direkt auf die Animation aus.

W:Multiple UV for at least one vertex. Texturemapping might not be correct.

Es wurden mehrere unterschiedliche Texturkoordinaten für einen Vertexpunkt gefunden, so dass die Textur teilweise verzerrt wird.
Da Cinema4D UV-Koordinaten je Polygon, Blitz3D aber je Vertex speichert, kann es zu Fehlern in der Texturdarstellung kommen, wenn die einzelnen Polygone nicht voneinander getrennt sind. Durch Setzen der Option „Disconnect polygons“ kann dieses Problem umgangen werden.

W:UVW-tag not found. No texture mapping for this one.

Für das entsprechende Objekt wurde kein UVW-Tag gefunden. Es ist also kein Texturmapping möglich. Im Objektbrowsers kann mit der Funktion „Textur->UVW-Tag erzeugen“ ein entsprechende Tag erstellt werden.

W: Texture projection isn't set to UVW. Texture mapping might not be correct.

Bei mindestens einem Texturtag ist das Mapping nicht auf UVW gestellt. Da immer nur die UVW-Tags ausgelesen werden, könnte die Textur in Blitz3D anders als in Cinema4D erscheinen.

W: Too many textures for brush. Writing 8 texture layers.

Für ein Surface sind maximal 8 Texturlayer erlaubt. Sollte es mehr geben, werden diese ignoriert.

W:Object not recognized. Exporting as pivot.

Das Objekt ist weder Null-, Polygon- oder BoneObjekt. Es wird also als Pivot exportiert.

W:Blend/FX/Texture-Flag couldn’t be evaluated.

In den Materialoptionen wurde zwar beim Leuchten, Transparenz oder Alphakanal zwar ein Texturflag gefunden, dieses enthält aber keinen gültigen Wert.

 

 

 

 

 

2.3.Objekthierarchie

2.4.Texturen&Materialien

Leuchten

EntityFX

Transparenz

EntityBlend

Alpha

Texturflag (siehe LoadTexture)

2.5.Animation

2.6.Boneobjekte

2.7. Vertexfarben / Vertexalpha

Name der Punktwichtung

Wirkung

RED

Rot-Komponente der Vertexfarbe(default Materialfarbe)

GREEN

Grün-Komponente der Vertexfarbe(default Materialfarbe)

BLUE

Blau-Komponente der Vertexfarbe(default Materialfarbe)

BRIGHTNESS

Helligkeit des Vertices(default 100%)

ALPHA

Alpha-Wert des Vertices(default 100% = undurchsichtig)

 

 

3.Hilfs-Plug-Ins

Neben dem eigentlichen PlugIn zum Export der Dateien gibt es noch folgende praktische „Helferlein“:

 

H_Disconnect All Polygons

Hiermit werden alle Polygone des ausgewählten und aller untergeordneten Objekten voneinander getrennt und auf eigene Vertexpunkte gesetzt.

H_Invert Vertex Map

Hiermit kann eine Vertexmap invertiert werden. Mit der Option „Skip zero-weights“ kann verhindert werden, dass Vertices mit dem Wert „0“ auf „100“ gesetzt werden.

H_Reverse All Normals

Hiermit werden die Normalen aller Polygone des ausgewählten und aller untergeordneten Objekten umgedreht. Praktisch, wenn ein ganzes Modell falsch ausgerichtet ist(z.B. Zygote-Figuren)

 

4.Bekannte Probleme

- In Cinema4D Release 10 werden Wichtungsmaps noch nicht unterstützt und Animationen lassen sich nur mit aktiviertem „Autokeyframing“ exportieren, da der entsprechende Zugriff über COFFEE noch nicht möglich oder noch nicht dokumentiert ist.

5.Änderungen

Version 0.8
!Fehlerhafter Export der UV-Koordinaten behoben
!Exporter muss jetzt über das Plugin-Verzeichnis aufgerufen werden, so dass dieser jetzt sogar mit der C4D-Demo funktioniert.
+Unterstützung von Bones
+Warnungen & Fehler beim Export werden protokolliert und in der Console ausgewiesen

Version 0.9
!Bei der Dateiabfrage können jetzt auch wieder neue Dateien angegeben werden
+Animationssupport für C4D-Release 8 & 9. In Release.txt muss hierfür die korrekte Releasenummer eingegeben werden(ohne führende Leerzeichen).
+Hilfsplugin um alle Normalen aller selektierten Objekte umzukehren
+Hilfsplugin um allen Polygonen aller selektierten Objekte eigene Punkte zuzuordnen

 

Version 1.0

!Umfangreiche Überarbeitung

!Verbesserte Kompatibilität

+Dialog mit einigen Optionen zum Export

+Nachträgliche Verschiebung und Skalierung wird jetzt berücksichtigt

+Es kann jetzt ein zweites UV-Set je Objekt exportiert werden

+Materialparameter Alpha, Leuchten und additive Transparenz  werden berücksichtigt.

+Bei den Materialkanälen Leuchten, Transparenz und Alpha können jetzt in dem Feld Texturname jeweils Flags für EntityFX, EntityBlend und Textureflags gesetzt werden. Dazu muss einfach ein Doppelpunkt und dann der gewünschte Wert eingegeben werden(z.B. „Leuchten“ mit Texturenamen „:16“ deaktiviert BackfaceCulling). Die weiteren Einstellungen im Dialog werden damit überschrieben.

 

Version 1.1

!Bei Bone-animierten Objekten konnte es passieren, dass der Fehler „Position/Scale/Rotation of parent mesh isn't set to zero!” fälschlicherweise angezeigt wurde und kein Export erfolgt ist.

+Zusätzliche Prüfung auf maximale Vertexanzahl pro Objekt

+Fehlermeldungen bei TextureFlags je Kanal aufgesplittet

+Demos angehängt

+Englische Dokumentation

 

Version 1.3

!Die Option „Enable shading for texture mix mode 'normal'” funktioniert jetzt immer korrekt.

!Dialog für bessere Darstellung bei unterschiedlichen Schriftarten überarbeitet

!Bei Boneobjekten wird jetzt immer mindestens ein Key erzeugt, da hier die „echte“ Position im Key gespeichert ist.

!Beim Hilfsplugin H_Disconnect_All_Polygons werden VertexMaps und Punktselektionen nicht mehr zerstört

+Texturbeschränkungen auf Polygonselektionen werden jetzt berücksichtigt. Hier wird dann ein eigenes Surface generiert.

+Materialkonzept überarbeitet, so dass jetzt auch Multitexturing möglich ist

+Neue Option „Disconnect polygons“ um die Polygone erst beim Export auftrennen zu können(wie Hilfsplugin H_Disconnect_All_Polygons)

 

Version 1.4

!Zuordnung von UVW-Tag zu Textur so geändert, dass diese jetzt wie in Cinema4D funktioniert.

+Unterstützung von Vertexcolor und –alpha mittels Punktwichtungen(siehe 2.7=

-Meldung “W:Blend/FX/Texture-Flag couldn’t be evaluated” entfernt, da nicht unterschieden warden kann, ob es sich tatsächlich um einen Fehler oder einfach nur den Wert “0” handelt.

 


Viel Spaß wünscht:
Robert Hierl

Homepage: www.mein-murks.de
Kontakt: rhierl@gmx.de

27.05.2007 ©Robert Hierl