c4d export

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

FreizeitCoder

Betreff: c4d export

BeitragSo, Aug 16, 2009 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich habe eine animierte Tür in c4d erstellt (StarTrek mäßig). Ich wandle das Modell mit dem Tool von Big Bug in b3d um. Tolles tool, keine Frage. Allerdings tauchen immer wieder Probleme auf, die ich nicht erwarten würde.

Zu meiner eigentlichen Frage:
Wenn ich die Türe 5 mal lade und positioniere müsste doch die Animation der selbigen auch an dieser Position statt finden!?!
Momentan werden die Türen zwar unterschiedlich positioniert, aber die animation wird immer am Nullpunkt und mit der ursprünglichen Ausrichtung von C4D ausgeführt.

Ich habe noch weitere ganz seltsame Fehler, die ohne Veränderung des Codes ihre Gestallt verändert. Ich tippe also stark auf den Umwandlungsprozess von c4d auf das b3d Format. Beispiel: Ich verändere die Rundung der Türe, und danach funktioniert die animation wieder korrekt, aber die Kollision setzt komplett aus?!?

Gruß

Tankbuster

Betreff: Re: c4d export

BeitragSo, Aug 16, 2009 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
FreizeitCoder hat Folgendes geschrieben:
Hallo zusammen,
Zu meiner eigentlichen Frage:
Wenn ich die Türe 5 mal lade und positioniere müsste doch die Animation der selbigen auch an dieser Position statt finden!?!
Momentan werden die Türen zwar unterschiedlich positioniert, aber die animation wird immer am Nullpunkt und mit der ursprünglichen Ausrichtung von C4D ausgeführt.


Wie darf man das verstehen? Die Tür springt wieder an den Ursprungspunkt, und startet dort ihre ANimation? Das ist in der Tat merkwürdig. Shocked
Twitter
Download Jewel Snake!
Windows|Android
 

FreizeitCoder

Betreff: re: c4d export

BeitragSo, Aug 16, 2009 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, genau so sieht es aus. Die Türen springen bei Start der animation alle auf den Nullpunkt zurück (dort wo sie in c4d animiert wurden), und beginnen mit der Animation.

Ich bin langsam ziemlich genervt von dem ganzen. Dazu kommt, daß ich mit c4d wahnsinnige Möglichkeiten hätte, allerdings darf ich einige Werkzeuge und Funktionen nicht verwenden, da ich sonst nicht mehr als b3d exportieren kann.

Gibt es vielleicht ein Konvertierungsprogramm welches c4d Modelle in b3d konvertieren kann? Wie behelfen sich denn die anderen c4d User? Wäre dankbar für Rückmeldungen.

Gruß

BtbN

BeitragSo, Aug 16, 2009 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
B3D kann halt nicht alles, was C4D kann. Da must du mit leben.
 

FreizeitCoder

Betreff: c4d export

BeitragSo, Aug 16, 2009 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
wäre ja auch nicht das Problem. Ein bischen Improvisation hat noch niemandem geschadet.

Im Moment wäre ich allerdings sehr glücklich, wenn das Mindeste funktioniert. Ich würde gerne einen viereckigen Block einfügen und ihn etwas nach rechts bewegen lassen. Eigentlich nicht die Welt..... Wink

Ich kann mir nicht vorstellen, daß ich der einzige bin, der an die Grenzen des export-tools für c4d gekommen ist. Wie behelfen sich denn die anderen c4d User? Wie macht ihr das mit euren Animationen?

Gruß
 

BIG BUG

BeitragMo, Aug 17, 2009 1:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie hast Du denn Deine Türen animiert? Hast Du Bones verwendet?
Gerade bei animierten Modellen muss man in Blitz einiges beachten, damit das alles sauber funktioniert.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

FreizeitCoder

Betreff: c4d export

BeitragMo, Aug 17, 2009 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Big Bug,

erstmal Danke für das Konvertierungstool. Ohne würde mir Cinema überhaupt nichts bringen.

Nun zu deiner Frage:
Ich mußte mir erst einen Überblick bezüglich der Bones verschaffen. Vor deiner Frage nach den Bones habe ich immer nur das modell verschoben und einen Keyframe geschossen..... ganz einfach. Das ging auch immer gut zu exportieren. Wahrscheinlich hatte ich einfach Glück.
Ich nutze C4d Release 11 und habe nun folgendes ausprobiert:

-Block angefasst und verschoben > animation yes / kollision yes
-rechteckiger Block (Tür) angefasst und verschoben > animation no / kollision yes
-Tür mit Türrahmen (verschmolzen). Block angefasst und verschoben > animation yes / kollision no

-Bone an Block gefixt, und bone verschoben > animation no / kollision nicht geprüft
-Bone an Block gefixt, und bone verschoben, objekt backen > animation no / kollision nicht geprüft

Mit anderen Worten ich habe es bisher nicht geschafft mittels eines Bones ein Modell zu verschieben, und korrekt zu exportieren. Da ich erst vor kurzem mit c4d angefangen habe, kann das ohne weiteres an mir liegen. Falls es eine Verfahrensanweisung gibt, wie ich eine Animation für das export-tool korrekt aufbaue, wäre ich sehr dankbar für einen Link.

Gruß
 

BIG BUG

BeitragMo, Aug 17, 2009 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das normale Verschieben der Cubes ist hier schon die beste Lösung und funktioniert vom Exporter her auch soweit. Bones sind hier nicht geeignet.

Ich denke, dass Deine Kollisionseinstellungen in Blitz3D nicht ganz richtig sind. Ohne Beispielsdateien und Code ist es aber schwierig dem Problem auf die Schliche zu kommen...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

FreizeitCoder

Betreff: c4d export

BeitragMo, Aug 17, 2009 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe einen Beispielcode geschrieben, und alles ein weiteres mal mit einem neuen Modell überprüft.
Also neue Datei in c4d, Würfel eingefügt, einmal verschoben und exportiert.

1)Die Kollision funktioniert, allerdings, wird der Würfel beim animieren auf den Nullpunkt des Gitters zurück gesetzt. Dies geschieht auch bei mehrmaligem Einfügen dieses meshes.

2)Wenn ich nun einen zweiten Körper in das c4d Modell lege, funktioniert die Kollisionsabfrage auch nicht mehr.

PS: Ich habe die Kammerasteuerung zur Kollisionsprüfung im code belassen:
WASD = Egoshotersteuerung
Pfeiltasten rauf und runter = Höhenänderung

Danke schonmal im vorraus für die Mühe.
Gruß

Code:
Graphics3D 1024,768                     ;Grafik
SetBuffer BackBuffer()

light = CreateLight(2)                  ;Licht
PositionEntity light, 100,800,100

Global col_player = 1                  ;Kollisionstypen   
Global col_wall = 2

;________________________________
Global camera1 = CreateCamera()            ;Kamera,Objekt und Boden         
PositionEntity camera1, 0,300,-400
EntityRadius camera1, 10
EntityType camera1, col_player

Global door = LoadAnimMesh("wuerfel2.b3d")
PositionEntity door, 0,300,400
EntityType door, col_wall
EntityColor door, 255,125,125

Global ground = CreatePlane()

;--------------------------------
Repeat                              ;Spielschleife
   
   camera_movement()
   
   Collisions col_player,col_wall, 2,2
   
   If KeyHit(28) Then
      Animate door,3,2
   EndIf
   
   UpdateWorld                                          
   RenderWorld
   Flip                                             
Until KeyHit(1)
ClearWorld                                             
;________________________________   

;_______________________________________________________________________________________

Function camera_movement()               ;Kamerabewegung
   If KeyDown(203) Then TurnEntity camera1, 0,+5,0 ;drehen links tasta
    If KeyDown(205) Then TurnEntity camera1, 0,-5,0 ;drehen rechts tasta
    If KeyDown(17) Then MoveEntity camera1, 0,0,+10 ;vorne
   If KeyDown(31) Then MoveEntity camera1, 0,0,-10 ;hinten
    If KeyDown(30) Then MoveEntity camera1, -10,0,0 ;seitwaerts links
    If KeyDown(32) Then MoveEntity camera1, +10,0,0 ;seitwaerts rechts
   If KeyDown(200) Then MoveEntity camera1, 0,+10,0 ;oben
   If KeyDown(208) Then MoveEntity camera1, 0,-10,0 ;unten
End Function
 

BIG BUG

BeitragMo, Aug 17, 2009 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir dünkt Du hast das Hierarchie-System von Blitz noch nicht ganz verstanden.
Beachte, dass Kollisionen für jedes Objekt separat aktiviert werden müssen.

Wenn Du nur ein Objekt hast, dann hast Du keine Hierarchie, Du kannst die Kollision also wie in Deinem Code direkt aktivieren. Allerdings wird dann natürlich auch die Postion des Objekts direkt in der Animation gespeichert, es ist also wurscht wie Du Dein Objekt in Blitz positionierst, bei Animation wird auf die gespeicherten Koordinaten zugegriffen und das Objekt entsprechend positioniert.

Wenn Du mehrere Objekte hast oder Dein Mesh im Code nochmals separat plazieren möchtest, musst Du ein übergeordnetes Pivotobjekt erstellen(NullObjekt in C4D). Bei mehreren Objekten wird dies vom Exporter auch automatisch erstellt, da bei B3D alles unter einem Wurzelobjekt hängen muss.
Allerdings kannst Du hier dann die Kollision nicht mehr direkt setzen, sondern musst jedes Unterobjekt(Child) durchgehen und die Kollisionsinformationen setzen.

Habe Deinen Code abgeändert, so sollte es klappen:
Code:

Graphics3D 1024,768                     ;Grafik
SetBuffer BackBuffer()

light = CreateLight(2)                  ;Licht
PositionEntity light, 100,800,100

Global col_player = 1                  ;Kollisionstypen   
Global col_wall = 2

;________________________________
Global camera1 = CreateCamera()            ;Kamera,Objekt und Boden         
PositionEntity camera1, 0,300,-400
EntityRadius camera1, 10
EntityType camera1, col_player

CameraRange camera1, 1, 10000

Global door = LoadAnimMesh("wuerfel2.b3d")
PositionEntity door, 0,300,400


Global ground = CreatePlane()


For i = 1 To CountChildren(door)

   EntityType GetChild(door,i), col_wall
   EntityColor GetChild(door,i), 255,125,125

Next


Collisions col_player,col_wall, 2,2

timer = CreateTimer(60)
;--------------------------------
Repeat                              ;Spielschleife
   
   camera_movement()
   

   
   If KeyHit(28) Then
      Animate door,3,2
   EndIf
   
   UpdateWorld                                         
   RenderWorld
   WaitTimer timer
   
   Flip 0                                             
Until KeyHit(1)
ClearWorld                                             
;________________________________   

;_______________________________________________________________________________________

Function camera_movement()               ;Kamerabewegung
   If KeyDown(203) Then TurnEntity camera1, 0,+5,0 ;drehen links tasta
    If KeyDown(205) Then TurnEntity camera1, 0,-5,0 ;drehen rechts tasta
    If KeyDown(17) Then MoveEntity camera1, 0,0,+10 ;vorne
   If KeyDown(31) Then MoveEntity camera1, 0,0,-10 ;hinten
    If KeyDown(30) Then MoveEntity camera1, -10,0,0 ;seitwaerts links
    If KeyDown(32) Then MoveEntity camera1, +10,0,0 ;seitwaerts rechts
   If KeyDown(200) Then MoveEntity camera1, 0,+10,0 ;oben
   If KeyDown(208) Then MoveEntity camera1, 0,-10,0 ;unten
End Function


Ansonsten wirst Du später Deine Türen vermutlich auch unabhängig voneinander animieren wollen, hier empfiehlt sich dann beim Export die Option "Set animation: second level" zu setzen. Mit GetChild kannst Du dann jede Tür einzeln animieren...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

FreizeitCoder

Betreff: c4d export

BeitragDi, Aug 18, 2009 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Dir für die Hinweise. Ich werde mir die angesprochenen Punkte mal genauer ansehen. Solange ich weiß, daß es funktioniert, habe ich auch kein Problem damit nach der Lösung zu suchen. Wink

Gruß



Edit: Ole Ole. Ich denke ich habe die Lösung gefunden.
Ich werde in Zukunft immer ein "Null-Object" in den Hauptbaum des animierten c4d Modells legen. Die Animation starte ich wie gewohnt mit dem Namen des geladenen meshes. Direkt nach dem laden des meshes versorge ich das mit Getchild ermittelte Handle des eigentlichen Türkörpers mit dem Kollisionstypen. Im Test hat dies wunderbar funktioniert. Danke für den Denkanstoß

Gruß

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group