Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/07/2011 at 08:15, xxxxxxxx wrote:
User Information: Cinema 4D Version: 11.5 Platform: Windows ; Mac OSX ; Language(s) : C.O.F.F.E.E ;
--------- Hi! I am new to Coffee, but have used Cinema for a long time. I am currently working on a model of a vehcile, and I want to split the vehicle into parts and save them in a folder for importing into Unity3D. I have made a Unity script that reads a JSON string and loads whatever file indicated in the JSON file. Unity will read JSON string, detailing the (xyz and rotation values) and position the parts together. Problem is, i have to export all parts and write the JSON string by hand. Just because I dont know enough COFFEE. This has to change. Basically what I am looking for is a COFFEE script that runs down the object tree looking for transforms starting with the string "Pos_" in their name. This means exporting specific nodes but leaving some alone and also writing a long JSON string with the local transform of detected each node. This way I can easily export a c4d document in as many part-files that I like, and also bring along the transforms I need to put all the parts together nicely inside Unity and other 3D programs. Does anyone have a recursive coffee script, that runs down the object tree? It would be perfect for me to modify. It would really give me a flying start. I will share the results here if I get it right. Here is some pseudi. code for the recursive part of the function. function readnode(node, JSON string){ > var isPosNode = false; > if Substr(node.nodeName, 0, 3) = "Pos_" then > > isPosNode = true; > > JSON = " , " & node.nodeName & " { fileName :"" & node.nodeName &".c4d" & ", >> >> x: " & node.pos.x & ", >> >> y: "& node.pos.y & ", >> >> z : "& node.pos.z & ", >> >> r : node.rot.r & ", >> >> h : node.rot.h & ", >> >> p : node.rot.p " > } > for each child as c in node do > > readNode (c, JSON); > loop > > > > if isPosNode = true then > >> JSON = JSON & "}"; > > save (node, "/nodes/" & node.nodeName & ".c4d") > > deleteFromTree(node) > endif }
On 05/07/2011 at 08:24, xxxxxxxx wrote:
Here you go, recursive function that browses the complete hierarchy:
BrowseScene(op) { while (op) { // get name and print to console var name = op->GetName(); println(name); BrowseScene(op->GetDown()); op = op->GetNext(); } } main(doc,op) { BrowseScene(doc->GetFirstObject()); }
cheers, Matthias