tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1074
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wayne42 wayne42 ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Beiträge
    45
    moin Leute,

    mal ne Frage : Ich wollte nen Plugin bauen, womit man sich verschiedene Schichten eines Modells automatisch rausrendern lassen kann.
    ne Art Cinematomograph

    jetzt wollte ich boolesche Schnitte auf das Objekt anwenden und leider bekomme ich mein Objekt nich zusammen mit dem booleschen Objekt. Also das eigentlich Objekt, welches es zu rendern gilt, sollte in der Hierarchie ja unter dem boole sein... aber auch mit getClone und copyto will das bei mir nich hinhauen.

    Hat einer von euch ne Idee?
     

  2. #2
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Mit
    Code :
    1
    2
    
    object->Remove();
    object->InsertUnder(boolobject);
    kannst Du das Objekt "object" in das Bool-Objekt "boolobject" verschieben...

    Grüße,
    Mark.
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  3. #3
    wayne42 wayne42 ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Beiträge
    45
    super... danke (auch für die schnelle Reaktion)
     

  4. #4
    wayne42 wayne42 ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Beiträge
    45
    ähhmm... irgendwas läuft da falsch

    ich hab jetzt ein Objekt und dann mache ich :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     
    var irgendwas = AllocObject(Oboole);
    doc->InsertObject(irgendwas,NULL,NULL);
     
    obj->Remove();
    obj->InsertUnder(booleanFloor);
      
    var booleanPlane = AllocObject(Oplane);
    booleanPlane->SetPosition(vector(0.0,1.0,0.0));
    booleanPlane->SetScale(vector(10.0,0.0,10.0)); 
    doc->InsertObject(booleanPlane,booleanFloor,NULL);

    wenn das Plane mein obj nicht berührt ist alles ok. Berührt sich beide Objekte aber (und dann sollte ja eigentlich der boole zu sehen sein) dann friert mir Cinema ein. Es stürzt also ab. Hab ich irgendwas wichtiges vergessen? Wenn ich diese Szenario so über cinema nachbaue, dann t es.
     

  5. #5
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Hm, ich weiß nicht wirklich, was Du da tust (z.B. was ist BooleanFloor?)

    Somit anbei - aus Spaß - ein kleines Script, welches bei Bedarf, das Objekt mit dem Coffee-Tag in ein Boole, zusammen mit einer Plane, wirft. Anschließend wird die Plane auf Y=Frame gesetzt...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    main(doc,op)
    {
     
        var plane;
        if (!instanceof(op->GetUp(), BooleObject)) {
            var bool    = AllocObject(Oboole);
            doc->InsertObject(bool, NULL, NULL);
            var bc        = bool->GetContainer();
            bc->SetData(BOOLEOBJECT_TYPE, BOOLEOBJECT_TYPE_INTERSECT);
            bool->SetContainer(bc);
        
            op->Remove();
            doc->InsertObject(op, bool, NULL);
        
            plane = AllocObject(Oplane);
            doc->InsertObject(plane, bool, op);
            var bc        = bool->GetContainer();
            bc->SetData(PRIM_PLANE_WIDTH, 1000.0);
            bc->SetData(PRIM_PLANE_HEIGHT, 1000.0);
            plane->SetContainer(bc);
        } else {
            plane = op->GetNext();
        }
        
        var t = doc->GetTime();
        var sec = t->GetSecond();
        var frame = t->GetFrame(doc->GetFps());
        plane->SetPosition(vector(0.0, frame, 0.0));
     
    }

    Liebe Grüße,
    Mark.
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  6. #6
    wayne42 wayne42 ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Beiträge
    45
    nice... sehr nett, danke.

    Nur noch ne klitzkleine Frage : Woher hast du Befehle wie :

    "SetData(PRIM_PLANE_WIDTH, 1000.0)"
    "SetData(BOOLEOBJECT_TYPE, BOOLEOBJECT_TYPE_INTERSECT)"

    das kann ich in der Doku gar nich finden und google will da auch nich so recht was drüber ausspucken :-/
     

  7. #7
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    In der C.O.F.F.E.E SDK R9.5 findet sich unter Descriptions die Lösung: "Finding the element ID":
    Konsole öffnen und den gesuchten Parameter dort in die unterste Eingabezeile drag'n'droppen ... es ist die jeweilige ID zu sehen...

    Grüße,
    Mark.
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  8. #8
    wayne42 wayne42 ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Beiträge
    45
    ok danke, und wie schauts da mit möglichen Parametern aus?

    wenn ich jetzt zum Beispiel ne Camera erzeugt habe und daraus ne Top-Cam machen möchte. Durch raten bin ich jetzt auf :

    Code :
    1
    2
    3
    4
    
     
    var camBc = camera->GetContainer();
    camBc->SetData(CAMERAOBJECT_PROJECTION,6);
    camera->SetContainer(camBc);

    gekommen. Aus deinem Beispiel mit dem Boole hätte ich eher sowas wie :

    Code :
    1
    2
    
     
    camBc->SetData(CAMERAOBJECT_PROJECTION,CAMERAOBJECT_PROJECTION_TOP);

    erwartet. Per Drag n Drop kriegt man das ja nich raus... aber wie kommt man da ran?
     

  9. #9
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Im Endeffect ist es - meines Wissens nach - Wurscht, ob Du mit "Konstanten" oder direkten Werten arbeitest.
    Die "Konstanten" findest Du bei den resourcen bzw. descriptions:
    CINEMA4D / resourcen / res / description z.B. ocamera.h:
    CAMERA_PROJECTION = 1001, // LONG
    Pperspective = 0,
    Pparallel = 1,
    Pleft = 2,
    Pright = 3,
    Pfront = 4,
    Pback = 5,
    Ptop = 6,
    Pbottom = 7,
    Pmilitary = 8,
    Pfrog = 9,
    Pbird = 10,
    Pgentleman = 11,
    Pisometric = 12,
    Pdimetric = 13,
    Grüße,
    Mark.
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

Ähnliche Themen

  1. Coffee Grinder
    Von 400d im Forum Fotografie
    Antworten: 0
    Letzter Beitrag: 28.03.09, 18:37
  2. Höhenprofil mit Coffee
    Von wayne42 im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 01.05.08, 01:06
  3. COFFEE-Tag & Filename
    Von Matthias im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 28.08.06, 12:50
  4. boole
    Von seros im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 19.09.04, 22:03
  5. boole´sch
    Von lucyIII im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 20.10.01, 14:28

Stichworte