menu Biont 3D Homepage Biont 3D Demonstrations Biont 3D Talk Biont 3D Software

Dokumentation

1. Allgemeines
1.1. Cinema 4D als »Leveleditor«
1.2. Verwendete Symbole
1.3. Der Ordner »Map«
1.4. Steuerung
2. Physik / Kollisionserkenneng
2.1. Unbewegliche physikalische Modelle (!)
2.2. Bewegliche physikalische Modelle
3. Keyframeanimationen
3.1. Keyframe-animierte Modelle
3.2. Keyframe-animierte Modelle mit Kollision
4. Hyperlinks
5. Shader
5.1. Texturgrößen
5.2. Normale Shader (C4D)
5.3. Shadowmap & Lightmaps
5.4. Shadowmap
5.5. Lightmap
5.6. Animierte Textur
5.7. Video Textur
6. Sound
6.1. 3D Sound
6.2. Interaktive Sounds
7. Lichtquellen
8. Kamera
8.1. Spawnpoint
8.2. Skybox
8.3. Fog / Nebel
9. Motion Capture
9.1. Record
10. Multiuser (Biont3D-Server)
10.1. Avatare
10.2. Deathmatch
11. Optionale Einstellungen
12. C4D-Objekte

 

 

1. Allgemeines

 

 

 

1.1. Cinema4D als »Leveleditor«

Die Grundidee hinter Biont3D ist, mit Cinema4D eine 3D-Datei so exportieren zu können, dass sie von einem 3D-Viewer direkt als interaktive Welt interpretiert werden kann. Hierzu müssen neben den 3D Daten auch Eigenschaften der Objekte festgelegt werden.

Um diese Eigenschaften festzulegen wurde die Möglichkeit genutzt, die Namen der Modelle selbst so zu codieren, dass alle erforderlichen Parameter in diesen untergebracht werden können.

Diese Vorgehensweise bringt einige Vorteile mit sich. Es ist beispielsweise sehr einfach für uns Biont3D Funktionen zu erweitern bzw. zu verändern ohne dabei Plugins von Cinema4D R7 bis Cinema4D R10.5 überarbeiten zu müssen. Außerdem ist das System sehr einfach in seiner Anwendung und besonders flexibel.

 

 

 

1.2. Verwendete Symbole

| Senkrechter Strich trennt Parameter voneinander
# Raute Objekt wird in Kollisionserkennung aufgenommen
+ Plus-Zeichen Objekt wird zu beweglichem, physikalischen Körper
§ Paragraphzeichen fügt Keyframe Animation Kollisionserkennung zu

 

 

|

Der senkrechte Strich »|« (auch Verkettungszeichen oder engl. Pipe genannt) wird als Trennstrich zwischen Parametern verwendet, um im Objektnamen mehrere Angaben unterzubringen. Den senkrechten Strich tippt man mit der Tastenkombination Alt Gr + <.

Parameter1|Parameter2|Parameter3|Parameter4|...

 

#

Die Raute ist das wichtigste Sonderzeichen im Umgang mit Biont3D. Stellt man es in Cinema4D einem Objektnamen voran, ist es in Biont3D ein fester Gegenstand.

#|Boden

 

+

Das Plus-Zeichen ist das zweitwichigste Sonderzeichen, den es macht 3D Objekte in Biont3D zu beweglichen Objekten mit Gravitation.

+|Fussball

 

§

Das Paragraphzeichen markiert physikalische Keyframe Animationen. Normale Keyframeanimationen brauchen das nicht.

§|Plattform

 

 

 

 

1.3. Der Ordner »Map«

Der Begriff Map ist aus dem Kontext von Computerspielen entnommen. In einer Map befinden sich alle Dateien die für eine 3D Welt benötigt werden. Eine Map kann sowohl online als auch offline verwendet werden.

Im Moment besteht eine Map aus folgender Ordnerstruktur:

map
 |_title
 |_world
 |_skybox
 |_sound
 |_video

Der Ordner »title«

In diesem Ordner kann sich ein Bild befinden, das während des Ladevorganges angezeigt wird. Dieses Bild sollte die Abmessungen 800x450 Pixel haben (es wird in jedem Fall auf diese Grösse skaliert) und im JPG Format gespeichert sein. Dieses Bild muss den genauen Namen title.jpg haben, um von der Engine gefunden zu werden.

map
 |_title
    |_title.jpg

Biont3D versucht dieses Bild als aller erstes zu laden und anzuzeigen.

Der Ordner »world«

In diesem Ordner befindet sich die eigenliche 3D Datei. In dieser Datei sind alle Animationen, Avatare, Hyperlinks, Lightmaps und Shadowmaps gespeichert. Die 3D-Datei muss im Shockwave3D Format gespeichert sein und den Namen world.w3d tragen, um gefunden zu werden.

map
 |_world
    |_world.w3d

Grundsätzlich wäre es möglich, Shockwave3D Dateien auch aus andere Programmen auszugeben und diese zu laden. Allerdings gibt es diverse Unterschiede wie Shockwave3D Dateien von verschiedenen Programmen angelegt werden. Einerseits sind die Koordinatensysteme teilweise verschieden, zum anderen bleiben manchmal Sonderzeichen nicht erhalten oder Hierarchien gehen verloren.

Biont3D ist bisher nur mit Cinema 4D vollständig kompatibel.

Der Ordner »skybox«

In diesem Ordner können sechs Bilder für die Skybox abgelegt werden. Die Bilder müssen folgendermassen benannt sein:

map
 |_skybox
    |_skybox0000.jpg
    |_skybox0001.jpg
    |_skybox0002.jpg
    |_skybox0003.jpg
    |_skybox0004.jpg
    |_skybox0005.jpg

Wenn die Bilder nicht mit dem Biont3D-skybox-setup erstellt worden sind, gilt folgende Regel für die Bilder:

skybox0000.jpg Vorderseite front
skybox0001.jpg rechte Seite right
skybox0002.jpg Rückseite back
skybox0003.jpg linke Seite left
skybox0004.jpg oben top
skybox0005.jpg unten bottom

Sollen also Bilder aus anderen Programmen, die Skyboxen exportieren können, verwendet werden, müssen sie nach dieser Tabelle umbenannt werden, um auf der Skybox richtig dargestellt zu werden.

Der Ordner »sound«

In diesem Ordner befinden sich alle Audio-Dateien, die in der Welt benötigt werden. Im Moment können folgende Dateie verwendet werden:

step.mp3 Schritt
jump.mp3 Absprung
down.mp3 auftrumpfen
   
enter.mp3 Welt betreten (Multiuser)
exit.mp3 Welt verlasen (Multiuser)
signal.mp3 Geräusch für Textnachrichten im Chat
   
respawn.mp3 Tot (Multiuser/Deathmatch)
shot.mp3 Abfeuern der Kanonenkugel (Multiplayer/Deathmatch)
explosion.mp3 Explosion der Kanonenkugel (Multiplayer/Deathmatch)
raygun.mp3 Abfeuern des Lasers (Multiplayer/Deathmatch)
hit.mp3 Geräusch wenn Laser trifft (Multiplayer/Deathmatch)
   
sound01.mp3 Permanente Soundquelle 1
sound02.mp3 Permanente Soundquelle 2
sound03.mp3 Permanente Soundquelle 3
sound04.mp3 Permanente Soundquelle 4

Der Ordner »video«

In diesem Ordner befinden sich alle Videodateien die für die 3D Welt benötigt werden. Die Dateinamen können frei gewählt werden, müssen jedoch in Cinema4D mit Modellen verknüpft werden, um gefunden zu werden.

Mögliche Formate sind Flash (*.swf) und Gif (*.gif)

Über das Flashformat kann beispielweise Streaming-Video oder Streaming-Audio realisiert werden.

 


 

 

1.4. Steuerung

Steuerung

 FUNKTION

 TASTE

3D-Steuerung übernehmen / Hyperlinks klicken Maus 1 oder Maus 2 ins 3D-Feld
gibt den Mauszeiger aus der 3D-Steuerung frei Esc oder Maus 2 (rechte Taste)
   
vorwärts W oder Pfeil nach oben
seitwärts nach links A oder Pfeil nach links
rückwärts S oder Pfeil nach unten
seitwärts nach rechts D oder Pfeil nach rechts
Sprung Leertaste / Space
   
Blickrichtung ändern Maus bewegen
Zoom E
   
Festhalten / Anfassen / Heben F halten oder Maus 1 halten
Schalter auslösen F tippen oder Maus 1 klicken
   
Schuss (nur im Warmode) Maus 1 (linke Taste)
Auswahl Laser (nur im Warmode) 1
Auswahl Kanonenkugel (nur im Warmode) 2
   
Screenshot speichern (nur Standalone) P

 

 

 

2. Physik / Kollisionserkennung

Physikalische Gesetzmässigkeiten machen eine virtuelle Umgebung wesentlich intuitiver. Dies gilt sowohl für den Prozess der Erstellung als auch für die spätere Nutzung. Biont3D verwendet für alle physikalischen Berechnungen die Havok-Engine.

Kollisionsgeometrie

Die Wahl der Kollisionsgeometrie wirkt sich erheblich auf die Performance der Szene aus. Aus diesem Grund gibt es vier mögliche Kollisionsgeometrien, die verwendet werden können:

Lowdetail Mesh (Convexe Geometrie)

ld   Standardmäßig wird bei beweglichen Kollisionsmodellen eine Lowdetail Version der Geometrie des Modells verwendet. Dies führt in den meisten Fällen zu guten Ergebnissen. Hierbei gehen allerdings Löcher und Vertiefungen des Modells verloren.

Highdetail Mesh (Concave Geometrie)

hd  

Hierbei handelt es sich um die vollständige Geometrie des Modells. Bei festen unbeweglichen Modellen wird standardmässig dieses Kollisionsmodell verwendet, da es sehr performant ist.

Besonders unperformant ist das Highdetail-Modell bei beweglichen physikalischen Modellen wenn diese untereinander kollidieren.

Kugel

s   Die höchste Performance wird mit der Kugel erzielt. Hierbei wird als Kollisionsmodell eine ideale Kugel verwendet, die den Radius der Boundig-Sphere (Umkugel) besitzt. Die Boundigsphere ist eine Kugel deren Radius vom Mittelpunkt bis zum äussersten Gitternetzpunkt reicht.

Box

b   Hier wird eine Bounding-Box (Umquader) verwendet.

Tip: Es ist ratsam für die Kollisionserkennung möglichst einfache Modelle anzulegen, die beispielsweise ein detailreicheres Modell als sichtbares Child-Objekt besitzen. Das eigentliche Kollisionsmodell kann dann unsichtbar geschaltet werden.

Hinweise: Alle physikalischen Kollisionsmodelle werden im Moment auf der z-Achse mit dem Wert -1 Skaliert. Dies ist eine Notwendigkeit die sich aus den verschiedenen Koordinatensystemen von Cinema4D und Shockwave3D ergibt.

Bei Modellen wie Kugeln, Würfeln, oder allen anderen Modellen die entlang der z-Achse symmetrisch sind macht das keine Probleme. Texturen werden allerdings spiegelverkehrt dargestellt. Dies kann sehr einfach korrigiert werden, wenn vor dem Export der Shader des Modells auf der x-Achse einen negativen Wert erhält.

Werden Animationen mit diesen Modellen aufgezeichnet und in Cinema4D eingesetzt, muss beim »Biont3D_motion_adapter« ein Häckchen bei »z-Axis correction« gesetzt werden. Dann wird das Modell in Cinema 4D wieder gespiegelt und entspricht dem Modell in der Realtime3D Umgebung.

 

 

 

 

2.1. Unbewegliche physikalische Modelle

Objektnamen in Cinema4D   Feste und unbewegliche Modelle sind dazu gedacht Böden, Wände und andere unbewegliche Modelle festzulegen bzw. in die Kollisionserkennung aufzunehmen. Wenn man sich durch eine Szene bewegt, sind diese Objekte undurchdringlich.

Optionen

typ: # = unbeweglicher physikalischer Körper
visibility: front, back, both, none (default is front)
collision geometry: b=box, s=sphere, ld=low detail, hd=high detail (default is hd)
mass: float number from 0.0 - 1.0 (default is 0.9)
friction: float number from 0.0 - 1.0 (default is 0.9)
restitution: float number from 0.0 - 1.0 (default is 0)
health: »health« muss als letzter Parameter gesetzt werden
death: »death« muss als letzter Parameter gesetzt werden

Syntax

#|name|visibility|collision geometry|friction|restitution|health/death

Beispiele

#|ground
#|ground|back
#|ground|front|ld
#|ground|front|hd|0.9|0.1

#|ground|death
#|ground|both|health
 

 

 

2.2. Bewegliche physikalische Modelle

Objektnamen in Cinema4D   Wenn eine Szene gestartet wird, sind alle beweglichen physikalischen Modelle zunächst »eingefroren«. Sie bewegen sich nicht bis sie aktiviert werden. Um ein Modell zu aktivieren, muss es entweder von einem anderen Modell angestossen werden, mit »Laser« oder »Kanonenkugel« beschossen oder »gegriffen« (Taste F) werden.

Optionen

typ: + = beweglicher physikalischer Körper
visibility: front, back, both, none (default is front)
collision geometry: b=box, s=sphere, ld=low detail, hd=high detail (default is hd)
mass: a float number (default is 50)
friction: float number from 0.0 - 1.0 (default is 0.9)
restitution: float number from 0.0 - 1.0 (default is 0)
health: »health« muss als letzter Parameter gesetzt werden
death: »death« muss als letzter Parameter gesetzt werden

Syntax

+|name|visibility|collision geometry|mass|friction|restitution|health/death

Beispiele

+|box
+|box|back
+|box|front|s
+|box|front|ld|50
+|box|front|hd|100|0.9|0.1
+|box|death
+|box|both|health

Die Physik-Engine versucht möglichst aggressiv alle Modelle, die sich kaum bewegen aus der Berechnung auszuschließen um die Performance möglichst gut zu erhalten.

Bewegliche physikalische Modelle behalten die in Cinema4D untergeordneten Child-Objekte, diese werden mit dem Modell zusammen bewegt. So können auch Soundquellen, Lichtquellen oder andere Modelle zusammen mit dem physikalischen Modell im Raum bewegt werden.

 

 

 

3. Keyframe Animationen

Keyframe Animationen können mit und ohne Kollision genutzt werden.

 

 

 

3.1. Keyframe-animierte Modelle

Objektnamen in Cinema4D   Keyframeanimationen werden entweder in einer ewigen Schleifen abgespielt oder über einen Schalter (Trigger) gesteuert. Wenn ein Trigger verwendet wird, spielt die Animation beim ersten Auslösen bis zur Hälfte ab, bei erneutem Auslösen wird die zweite Hälfte abgespielt.

Optionen

trigger: Enthält der Name des Modells das Wort »trigger« ist es sein eigener Auslöser.
Länge der Animation: Wert in Millisekunden (bei 25 fps ist ein Frame 40ms lang), Standard ist die Länge der Timeline in Cinema 4D
visibility: front, back, both, none (default ist front)


Syntax

name|animationslänge|visibility

Beispiele

keyframemodel
keyframemodel|2000
keyframemodel|2000|front

Trigger/Schalter

Um Keyframeanimationen über einen Trigger auslösen zu können, muss in Cinema4D ein Nullobjekt erzeugt werden, dem das Schalter-Modell und das animierte Modell untergeordnet sind.
group
  |_trigger_01
  |_keyframemodel_01|2000

Das Trigger-Modell muss in seinem Namen das Wort »trigger« enthalten. Es wird automatisch alle mit ihm gruppierten Keyframeanimationen abspielen. Um die Animationen abzuspielen, muss der User nah an den Schalter herantreten, ihn anvisieren und die Taste »F« drücken. Ist die Schussfunktion deaktiviert, kann man das Trigger-Modell einfach anklicken.

Nach dem Auslösen wird die Animation bis zur Hälfte abgespielt und pausiert. Bei erneutem Auslösen wird die zweite Hälfte der Animation abgespielt.

Enthält ein 3D-Modell im eigenen Namen das Wort »trigger« kann es als Schalter für sich selbst verwendet werden:

door_trigger
door_trigger|2000
 

 

 

3.2. Keyframe-animierte Modelle mit Kollision

Objektnamen in Cinema4D   Es können auch Keyframe-animierte Modelle für die Kollisionserkennung verwendet werden. Dies macht beispielsweise Sinn wenn Türen, Aufzüge, Plattformen oder dergleichen realisiert werden sollen. Die Funktionsweise ist die gleiche wie bei normalen Keyframe-animierten Modellen. Es können zusätzlich Parameter für physikalische Eigenschaften gesetzt werden!

Optionen

typ: § = Keyframe-animierter physikalischer Körper
trigger: Enthält der Name des Modells das Wort »trigger« ist es sein eigener Auslöser
Länge der Animation: Wert in Millisekunden (bei 25 fps ist ein frame 40ms lang), Standard ist die Länge der Timeline in Cinema4D
visibility: front, back, both, none (default is front)
collision geometry: b=box, s=sphere, ld=low detail, hd=high detail (default is hd)
friction: float number from 0.0 - 1.0 (default is 0.9)
restitution: float number from 0.0 - 1.0 (default is 0)
health: »health« muss als letzter Parameter gesetzt werden
death: »death« muss als letzter Parameter gesetzt werden

Syntax

§|name|länge|visibility|coll.geometry|friction|restitution|health/death

Beispiele

§|keyframemodel
§|keyframemodel|2000
§|keyframemodel|2000|front
§|keyframemodel|2000|front|hd
§|keyframemodel|2000|front|hd|0.9|0.1
§|keyframemodel|2000|front|hd|0.9|0.1|death

Trigger/Schalter

Um Keyframe Animationen über einen Trigger auslösen zu können, muss in Cinema4D ein Nullobjekt erzeugt werden, dem das Schalter-Modell und das animierte Modell untergeordnet sind.
nullobject
  |_trigger_01
  |_§|keyframemodel|2000|front|hd|0.9|0.1|death

Enthält ein 3D-Modell im eigenen Namen das Wort »trigger« kann es als Schalter für sich selbst verwendet werden:

§|keyframemodel_trigger
§|keyframemodel_trigger|2000

 

 

 

 

4. Hyperlinks

Aus jedem Modell kann ein Hyperlink gemacht werden, welcher sich in der 3D Welt anklicken lässt. Hierbei kann ein Link im gleichen oder in einem neuen Fenster (Tab) geöffnet werden. Neben normalen Hyperlinks ist es auch möglich Javascript Anweisungen oder jeden anderen Link zu verwenden, so wie das in normalen Webseiten auch möglich ist.

Für Hyperlinks werden Nullobjekte verwendet, die einfach unter das Modell gruppiert werden, das als Hyperlink fungieren soll. Wird der Mauszeiger später über das Modell geschoben, wird der Zeigefinger sichtbar (genau wie bei gewöhnlichen Hyperlink). Die Hyperlinks in Biont3D können nur geklickt werden, wenn die Kamera nah genug dran ist.

Optionen

Name: »link« (Der Name muss das Wort »link« enthalten)
open window: ext=extern (öffnet ein neues Fenster), int=intern (öffnet den Link im gleichen Fenster)
hyperlink: vollständige Adresse wie beispielsweise: »http://www.google.de«

Syntax

hyperlinkname|openwindow|URL

Beispiele

link|ext|http://www.google.de
link_01|int|http://www.google.de

#|model01|back |_link_02|ext|http://www.google.de

PopUp Fenster mit Javascript öffnen

link_03|int|javascript:void(window.open('http://www.google.de','Template','height=480,width=640'))

Limitationen

Es können nur 126 Zeichen pro Name exportiert werden. An dieser Stelle weisen wir aber auf den sehr nützlichen Service von http://tinyurl.com hin, mit dessen Hilfe aus langen kurze Hyperlinks generiert werden können.

 

 

 

5. Shader

 

 

 

5.1 Texturgrößen

Beim Erstellen von Texturen sollte folgendes beachtet werden! Texturen werden von Grafikkarten nur in folgenden Grössen dargestellt:

1x1, 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024, 2048x2048, 4096x4096 oder Kombinationen daraus wie 128x1024, 512x8, 512x1024.

Entsprechen die Texturen nicht diesen Grössen, werden sie beim Start auf die nächste verwendbare Grösse gestaucht oder gestreckt. Dies dauert einen kleinen Moment und führt darüber hinaus zu einem Qualitätsverlust! Es ist also in jedem Fall besser Texturen in den entsprechenden Grössen zu verwenden.

 

 

 

5.2 Normale Shader (C4D)

Wenn nichts weiter angegeben ist, werden Texturen so exportiert wie es im Cinema4D Handbuch beschrieben ist (siehe Shockwave3D Exporter). In Biont3D können aber noch einige andere Möglichkeiten genutzt werden.
 

 

 

5.3 Shadowmap / Lightmap

Gouraud Shading

Gouraud Shading

Gouraud Shading
  In einer Shadowmap können vorberechnete Schatten verwendet werden, um die Realtime3D Welt plastischer erscheinen zu lassen. Hierzu müssen zunächst die UV-Koordinaten für das Modell abgewickelt werden (Bodypaint) um anschliessend eine Textur vorberechnen zu können (Textur Backen Tag).

Eine Shadowmap wird später als eine multiplikative Texturebene verwendet. Das heisst, alle weissen Bereiche werden transparent dargestellt und alle farbigen Bereiche werden mit dem darunter liegenden Material multipliziert (verdunkelt).

Lightmaps werden als additive Texturebene verwendet. Hierbei erscheinen alle schwarzen Bereiche transparent und alle farbigen Bereiche werden auf die darunter liegenden Ebenen addiert.

Shadowmaps und Lightmaps sind besonders dann sinnvoll, wenn grosse Flächen oder Modelle texturiert werden sollen.

Die Idee dabei ist, eine gekachelte Textur als Basis-Material mit einer über das gesamte Modell gestreckten Textur, die Licht- und Schatteninformationen enthält, zu mischen.

 

 

 

5.4. Shadowmap

Objektnamen in Cinema4D   Die Shadowmap wird in den Texturkanal »Leuchten« gelegt. Ist der Shader gekachelt worden, so muss der Kachelungswert in den Namen geschrieben werden, um die Shadowmap später auf die richtige Grösse zu skalieren. Da hier eine Funktion hinzugefügt worden ist, die von Cinema4D normalerweise nicht unterstützt wird, wird das Modell im Vieport anders aussehen als später in Biont3D.

Optionen:

name: Name des Shaders
scale: eine Zahl oder ein Vektor (»Kacheln X«, »Kacheln Y«, 1)

Syntax

shadername|zahl
shadername|vector(50,25,1)

Beispiele


shadername|50
shadername|12
shadername|vector(50,25,1)  
 

 

 

5.5. Lightmap

wichtiger Kanal Lightmap   Lightmaps werden in den Kanal »Glanzfarbe« abgelegt. Dieser Kanal wird nur exportiert wenn auch ein Häckchen bei dem Kanal »Glanzlicht« gesetzt worden ist. Dieser Texturkanal wird auf gleiche Weise skaliert wie die Shadowmap allerdings wird diese Textur additiv mit den anderen Kanälen vermischt.

Optionen:

name: Name des Shaders
scale: eine Zahl oder ein Vektor (»Kacheln X«, »Kacheln Y«, 1)

Syntax

shadername|zahl
shadername|vector(50,25,1)

Beispiele


shadername|50
shadername|12
shadername|vector(50,25,1)  
 

 

 

5.6. Animierter Texturkanal

Es ist möglich einen der Texturkanäle mit einem konstanten Vektor zu bewegen. Hierfür muss angegeben werden, welcher Texturkanal verwendet werden soll. Ausserdem muss ein Vektor angegeben werden. Diese Möglichkeit ergibt sich nur, wenn ein Shader, wie unter Lightmap / Shadowmap beschrieben, verwendet wird.

Optionen

Kanal: 2,3,4,5 (2 = Farbe-Kanal, 3 = Umgebungs-Kanal, 4 = Leuchten-Kanal, 5 = Glansfarbe-Kanal
Translation: vector(0.001, 0,001, 0), random (»random« generiert einen einen Zufallsvektor)
Rotation: vector(0, 0, 0.1), random

Syntax

shadername|skalierung|translation|rotation

Beispiele

shadername|50|2|vector(0.001, 0.001, 0)
shadername|12|5|vector(0.001, 0.001, 0)
shadername|vector(50,25,1)|2|vector(0.001, 0.001, 0)  
 

 

 

5.7. Video Shader

Es können auch Videos als Texturen verwendet werden. Diese Videos müssen in den Ordner map/video abgelegt werden. Mögliche Videoformate sind hierbei *.swf Dateien (bis Flash8) und animierte Gif Dateien (*.gif). Mit Flash kann man Grafikanimationen und Streaming Video (FLV, Flashvideo) nutzen. Es ist im Moment noch nicht möglich mit den Flash-Elementen zu interagieren.

Der Videoshader muss den Namen biont_video tragen. Darüberhinaus wird noch eine Textur benötigt, die den genauen Namen video.jpg trägt und eine Flashdatei, die den genauen Namen video.swf tragen muss. Die Textur ist notwendig, um festzulegen welcher bzw. welche Layer die Videotextur wiedergeben sollen. Diese Textur wird später zur Laufzeit gegen das Video ausgetauscht. Die Textur video.jpg kann auch in anderen Shadern verwendet werden, um dort das Video anzuzeigen.

Dieser Shader kann ansonsten genau wie andere Shader behandelt werden.

Video-Shader Optionen

Name: »biont_video«

Beispiel

biont_video
biont_video|1
biont_video|1|2|vector(0.0001, 0, 0) 

Um zwischen verschiedenen Videos umzuschalten, können Nullobjekte verwendet werden, die genau so wie Hyperlinks funktionieren.

Videolink Optionen

Name: video (der Name muss das Wort »video« enthalten)
Link: flashfilm.swf (Dateiname der Videodatei im Ordner /video)

Syntax

Der Videoshader muss einem Modell untergeordnet werden.

#|videoknopf_01
  |_video_01|animation_01.swf

Beispiele

video_01|animation_01.swf
video_02|gifanimation.gif
 

 

 

6. Sound

Neben der visuellen Ebene sind Klänge eine zusätzliche Möglichkeit einer 3D-Umgebung mehr Ausdruckskraft zu verleihen.

Es können vier permanente 3D Soundquellen und einige Interaktionsgeräusche verwendet werden. Die Interaktionsgeräusche werden vollständig von der Engine gesteuert und können nur entweder vorhanden sein oder nicht. Die vier möglichen 3D Soundquellen können eingestellt werden.

 

 

 

6.1. 3D Sound

Wenn permanente Soundquellen verwendet werden sollen, müssen in den Ordner /sound mp3 Dateien mit den Namen sound01.mp3, sound02.mp3, sound03.mp3, sound04.mp3 vorhanden sein. Diese Sounds werden vorausgeladen. Um die Soundquellen in der 3D Welt verwenden zu können, müssen Nullobjekte verwendet werden, die die Namen der Sounds tragen.

Name: sound01, sound02, sound03, sound04
Distanz: 1000 (ein Zahlenwert)
Pan: x (wenn gesetzt, wird der Sound abhängig vom Blickwinkel zur Soundquelle gesteuert)

Beispiele

Werden keine Parameter eingestellt, wird der Sound einfach permanent gelooped ohne auf die Kameraposition im Raum Rücksicht zu nehmen:

sound01

Soll der Sound positionsabhängig lauter und leiser gestellt werden. muss eine Distanz angegeben werden. Diese Distanz wird als zweiter Parameter an das Nullobjekt angefügt:

sound01|5000

Wenn der Sound darüber hinaus eine vom Blickwinkel abhängige Lautstärkeregelung erhalten soll, dann muss zusätzlich ein "x" an die dritte Position gesetzt werden:

sound01|2500|x
 

 

 

6.2. Interaktive Sounds

Für den Moment können folgende Dateien verwendet werden, wenn sie in dem Ordner /sound enthalten sind:

step.mp3 Schritt
jump.mp3 Absprung
down.mp3 auftrumpfen
   
enter.mp3 Welt betreten (Multiuser)
exit.mp3 Welt verlasen (Multiuser)
signal.mp3 Geräusch für Textnachrichten im Chat
   
respawn.mp3 Tot (Multiuser/Deathmatch)
shot.mp3 Abfeuern der Kanonenkugel (Multiplayer/Deathmatch)
explosion.mp3 Explosion der Kanonenkugel (Multiplayer/Deathmatch)
raygun.mp3 Abfeuern des Lasers (Multiplayer/Deathmatch)
hit.mp3 Geräusch wenn Laser trifft (Multiplayer/Deathmatch)
   
sound01.mp3 Permanente Soundquelle 1
sound02.mp3 Permanente Soundquelle 2
sound03.mp3 Permanente Soundquelle 3
sound04.mp3 Permanente Soundquelle 4

 

 

 

 

7. Lichtquellen

Es können bis zu 8 Lichtquellen exportiert werden (Grafikkarten können nur 8 Lichtquellen gleichzeitig darstellen). Exportiert werden die Lichtquellen so, wie es in der Cinema4D Hilfedatei beschrieben ist (siehe: Export/Import -> Shockwave 3D Einstellungen).

Lichtabfall wird allerdings ab Cinema4D R8 über »invers kurz« und »invers quadratisch kurz« eingestellt. Leider kann die Lichtwirkung deshalb nicht mehr im Viewport direkt beurteilt werden.

Wenn eine Lichtquelle in Cinema4D biont_headlight benannt wird, wird diese Lichtquelle in Biont3D an die Kamera geheftet und dient als »Kopflicht«.

 

 

 

8. Kamera

 


 

 

8.1. Spawnpoints

Der sogenannte Spawnpoint ist der Startpunkt an dem die Kamera in die Szene »geworfen« wird. Um diesen Punkt festzulegen wird in Cinema4D ein Nullobjekt mit dem Namen biont_spawn versehen.

Es ist auch möglich mehrere Spawnpoints zu setzen, hierzu müssen einfach beliebig benannte Nullobjekte in Cinema4D unter den Spawnpoint gruppiert werden. In Biont3D wird dann der biont_spawn als erster Startpunkt verwendet, die anderen werden im Falle eines Respawn dann zufällig ausgewählt.

Syntax

biont_spawn
  |_spawn01
  |_spawn02
  |_spawn03
  ...

 

 

 

 

8.2. Skybox


Eine Skybox ist ein 360° Panorama-Bild, dass als Hintergrund verwendet wird. Es liegt immer hinter allen Modellen.

Mithilfe des Biont3D_skybox_setup können schnell und einfach Bilder für eine Skybox erstellt werden. Hierbei bietet sich beispielsweise das Cinema4D Sky-Modul an.

Auch Skyboxen, die mit anderen Programmen erstellt worden sind, beispielsweise 360° Panorama Fotografien, können verwendet werden.

In den Ordner /skybox können sechs Bilder für die Skybox abgelegt werden. Die Bilder müssen skybox0000.jpg, skybox0001.jpg, skybox0002.jpg, skybox0003.jpg, skybox0004.jpg, skybox0005.jpg benannt sein.

Wenn die Bilder nicht mit der Biont3D-skybox-setup erstellt worden sind, gilt folgende Regel für die Benennung der Bilder.

skybox0000.jpg Vorderseite front
skybox0001.jpg rechte Seite right
skybox0002.jpg Rückseite back
skybox0003.jpg linke Seite left
skybox0004.jpg oben top
skybox0005.jpg unten bottom

Um mit dem Biont3D_skybox_setup die Bilder zu rendern, müssen folgende Einstellungen in den Rendersettings eingestellt werden:

  1. Bilder 0-5 Rendern
  2. Name muss »skybox« sein
  3. Format *.jpg
  4. Auflösung am besten 512x512

Nun werden die Bilder automatisch mit den richtigen Namen gespeichert und können direkt eingelesen werden, wenn sie im Ordner /skybox liegen.

 

 

 

8.3. Fog/Nebel

Ähnlich dem Nebel (der in Cinema4D mit dem Umgebungsobjekt erzeugt werden kann, wenn dort »Nebel« aktiviert wird) lässt sich auch Nebel in Biont3D verwenden. Nebel kann leider nicht einfach über das Cinema4D Objekt »Umgebung« exportiert werden. Um Farbe und Distanz einstellen zu können, wird daher ein Shader verwendet.

Objektnamen in Cinema4D   Farbe und Distanz wird über einen Shader eingestellt. Da dieser Shader erst exportiert wird, wenn er auf einem Modell angewendet wird, muss ein Modell mit dem Namen fog verwendet werden. (Dieses Modell wird in Biont3D intern wieder gelöscht.)

Eigenschaften:


Name: »fog«
Distanz: eine Zahl z.B 10000
Farbe: eine Farbe, die im Kanal »Leuchten« eingestellt wird
Kamera Clipping: 1 (Szene wird nur bis zur Distanz dargestellt)
Kamera-Clipping ohne Nebel: x (stellt bei Clipping den Nebel aus)

Syntax

Name des Modells:

fog

Name des Shaders:

fog|5000 

Beispiele:

fog|5000
fog|10000
fog|10000|1
fog|10000|1|x
 

 

 

9. MotionCapture


Animationen können aufgezeichnet werden, um sie in Cinema4D weiter zu verarbeiten. Hierbei können neben den eigenen Bewegungen auch Keyframe-animierte Modelle oder bewegliche physikalische Modelle aufgezeichnet werden. Kurz - alles was sich bewegt, kann mitgeschnitten werden.

Hierbei werden nur »Bewegungspfade« aufgezeichnet. Sie erscheinen später in Cinema4D als animierte Nullobjekte.. Mithilfe einer Xpresso-Schaltung (Biont3D_motion_adapter) können dann diese Bewegungen einfach auf andere Modelle übertragen werden.

 

 

 

9.1. Record

Objektnamen in Cinema4D  

Über die »record list« können bestimmte Modelle ausgewählt werden, die für die Aufnahme verwendet werden sollen.

Wenn eine Szene geladen wird, werden zunächst nur die Modelle aufgezeichnet, die bewegliche physikalische Modelle sind oder Keyframe Animationen, die mit einem Schalter gesteuert werden.

Keyframeanimierte Modelle ohne Schalter werden in einem permanenten Loop abgespielt und könnten sehr einfach in Cinema4D reproduziert werden. Es ist möglich auch diese Modelle mit aufzuzeichnen.

Hinweis: Animierte Texturen, Videos und Veränderungen der Avatare können momentan nicht aufgezeichnet werden. Ebenso wird im Moment noch kein Sound mit aufgenommen.

Tip: Diese Funktion funktioniert am besten mit wenigen Modellen (< 10) und über kurze Zeitspannen (< 200 Frames). Noch ist die Funktion nicht geeignet eine grössere Anzahl von Objekten aufzunehmen.

Beim Speichern der Datei muss sie zunächst in ein für Cinema4D lesbares Format umgerechnet werden, dies kann bei langen Aufnahmen mit vielen Modellen mehrere Minuten dauern. Wird hingegen beispielsweise nur die Kameraanimation aufgezeichnet dauert die Umrechnung nur einen Augenblick.

 

 

 

10. Multiuser

Eine Echtzeit3D-Umgebung macht erst dann richtig Spass, wenn man sich mit anderen Usern treffen und austauschen kann. Zu diesem Zweck wurde der Biont3D-Server entwicklet. Es ist ein Desktop-Programm und verwandelt den eigenen Computer in einen Peer-to-Peer Host.

Das Server-Programm beansprucht wenig CPU-Leistung und kann daher im Hintergrund laufen. Wenn sich jemand einlogged, ertönt ein Signal und man kann nachsehen wer da ist, selbst die 3D-Welt betreten oder über den Server mit dem User chatten.

Auf jedem Server können momentan 16 Clients gleichzeitig eingelogged sein. Es ist möglich mehrere Server auf einem Computer laufen zu lassen, um somit mehrere Räume gleichzeitig zu betreiben.

Soll der Server für eine Webseite genutzt werden, müssen die Clients in der Lage sein sich an dem Server auch anmelden zu können. Hierbei müssen IP-Adresse und Port bekannt sein. Diese Daten werden mit dem Server über das FTP Protokoll auf den jeweiligen Webspace neben die Datei Biont3D.dcr geladen.

Um die Dateien über FTP auf den Webspace laden zu können, muss eine FTP Verbindung im Server eingetragen werden. Wenn der Server hinter einem Router betrieben wird, ist es notwendig am Router eine Port-Weiterleitung für das TCP/IP Protokoll einzurichten.

Der Grundgedanke des Biont3D-Servers ist, dass man auf diese Weise eine dezentrale Architektur besitzt, über die man selbst frei verfügen kann. Es fallen keine speziellen Serverkosten an und es ist keine spezielle Installation auf einem Webserver notwendig.

 

 

 

10.1. Avatar

Avatar   Um zu sehen wo die anderen User sich in der Welt gerade aufhalten, werden Avatare benötigt. Avatare können in Cinema4D in die 3D-Welt eingefügt und exportiert werden. Im Biont3D-Viewer stehen sie dem Benutzer in einem Menü zur Auswahl.

Um Modelle als Avatare nutzen zu können, müssen diese unter ein Nullobjekt mit dem Namen biont_avatar gruppiert werden. Hierbei können zwei Shader verwendet werden (»username«, »asciiart«) um später den Benutzernamen bzw. Ascii-Zeichen auf dem Avatar anzuzeigen. Die Shader können entweder direkt auf dem Avatar-Modell oder einem dem Avatar-Modell untergeordnetem Modell verwendet werden.

Dem Shader »username« wird von Biont3D eine Textur zugewiesen deren Abmessungen 256x32 Pixel beträgt. Der Shader »asciiart« wird mit einer Textur versehen die 64x64 Pixel gross ist.

Im Moment können nur einfache Objekte als Avatar verwendet werden. Diese sollten im Idealfall in eine Kugel mit einem Radius von 100 Einheiten passen.

 

 

 

10.2. Deathmatch

Es ist möglich den Warmode am Biont3D-Server zu aktivieren. Erst dann wird ein Deathmatch gestartet. Jedes Spiel dauert 15 min. Ziel ist es als erster 10 Punkte durch Abschuss der anderen Spieler zu sammeln.

 

 

 

11. Optionale Einstellungen

Um bestimmte Einstellungen an Biont3D zu übergeben, werden in Cinema4D Nullobjekte erzeugt und wie in der nachstehenden Tabelle benannt.

biont_human

Die Kamera benutzt ein zylindrisches Kollisionsmodell. Es bietet sich bei Raumgestaltung für menschliche Grössenverhältnisse an. Das Kollisionsmodell hat einen Radius von 25 Einheiten und ist optimiert um Treppen zu steigen, die 17.5 Einheiten hoch und 28 Einheiten tief sind (Reguläres Treppenmaß)

biont_no_corners
entfernt die kleinen runden Ecken unten
biont_no_crosshair
Fadenkreuzgrafik abschalten
biont_no_shooting
Schiessmöglichkeit abschalten. Die Funktion der Taste F ist jetzt auch auf Maus 1 (linke Maustaste) gelegt.
biont_autoidle

Schaltet automatisch in einen Ruhezustand, wenn die Maus aus der 3D-Steuerung befreit wird. Das 3D-Bild dann steht still. Es wird kaum noch Rechenleistung beansprucht.

biont_walkstyle_y
Setzt einen Wert für das Auf und Ab wärend des Gehens:
	biont_walkstyle_y|10
biont_walkstyle_x

Setzt einen Wert für die Links- und Rechtsbewegung des Laufens:

	biont_walkstyle_x|5

 

 

 

 

12. Cinema4D Objekte

Diese Objekte sind dazu gedacht, die Arbeit mit Biont3D zu vereinfachen. Diese Objekte können entweder über den Content Browser in Szenen kopiert werden oder einfach in das Cinema4D Verzeichnis \library\object kopiert werden, damit man sie über das Menü Objekt Bibliothek finden kann.

Biont3D_skybox_setup.c4d

Einfach dieses Objekt in eine Szene laden, die als Skybox verwendet werden soll. Rendersettings öffnen, Bildformat auf 512x512 stellen, Ausgabeformat auf JPG stellen, als Zielpfad den Ordner /skybox im Ordner /map auswählen und die Bilder 0-5 rendern.

Das Kamera-Setup wird dann alle Bilder so rendern, wie sie für die Darstellung der Skybox erforderlich sind.

Biont3D_motion_adapter.c4d

Dieses Objekt erlaubt es, eine in Biont3D aufgezeichnete Bewegung auf ein Objekt in Cinema4D zu übertragen. In den Benutzerdaten befindet sich zwei Felder: Biont3D_mocap und C4D_Object.

- Die Animation wird einfach in das Feld Biont3D_mocap gezogen.
- Das Objekt, auf das die Animation übertragen werden soll, wird in das Feld C4D_Object gelegt.

z-axis correction ist eine Option, die nur dann gebraucht wird, wenn ein Modell entlang der z-Achse unsymmetrisch ist. In diesem Fall würde sich das Modell nicht erwartungsgemäss drehen.

Alle physikalischen Kollisionsmodelle werden im Moment auf der z-Achse mit dem Wert -1 skaliert. Dies ist eine Notwendigkeit, die sich aus der Unterschiedlichkeit der Koordinatensysteme von Cinema4D und Shockwave3D ergibt.

Bei Modellen wie Kugeln, Würfeln, oder allen anderen Modellen die entlang der z-Achse symmetrisch sind macht das keine Probleme. Texturen werden allerdings spiegelverkehrt dargestellt. Dies kann sehr einfach korrigiert werden, wenn dem Shader auf der x-Achse vor dem Export ein negativer Wert zugewiesen wird.

Werden Animationen mit diesen Modellen aufgezeichnet und in Cinema4D eingesetzt, muss beim Biont3D_motion_adapter ein Häckchen bei »z-Axis correction« gesetzt werden. Dann wird das Modell in Cinema4D wieder gespiegelt und entspricht dem Modell in der Realtime3D Umgebung.

Biont3D_avatar.c4d

Über Avatare werden andere Spieler in der Multiuser-Umgebung dargestellt. Dieser Avatar kann einer Szene hinzugefügt werden und erscheint dann in Biont3D im Menü »POD«. Wenn dem Nullobjekt biont_avatar weitere Modelle untergeordnet werden, dann können diese über die Schaltfläche >>> CHANGE POD >>> durchgeschaltet und gleichzeitig ausgewählt werden.

Biont3D_fog.c4d

Dieses Preset kann einer Szene hinzugefügt werden, um den Nebel in Biont3D zu aktivieren. Farbe und Entfernung können in dem Shader der fog|15000 heisst, eingestellt werden. Hierzu einfach Doppelklick auf den Shader, die Farbe im Leuchten-Kanal auswählen und anstelle von 15000 die gewünschte Distanz einstellen.

Biont3D_spawn.c4d

Hierbei handelt es sich um den Spawnpunkt (Startpunkt eines Avatars in der Welt). Dieses Nullobjekt wird mit einem weissen Kreis dargestellt um gut zu erkennen wie weit der Punkt von Boden und Wänden entfernt ist..

Es ist im Moment nicht möglich mit dem Spawnpunkt die Blickrichtung festzulegen. Beim Start in die Szene wird die Kamera genau in z-Richtung schauen.

Biont3D_settings.c4d

Dieses Objekt beherbert alle Einstellungsmöglichkeiten, die unter Punkt 11 aufgeführt sind. Wenn Optionen nicht wirken sollen, können sie mit einem vorangestellten ">" ausgeschaltet werden.

Die in diesen Settings gewählten Voreinstellungen sind beispielsweise für Architektur geeignet.

 

abschlussgrafik hintergrund content