Anim8tor exporter script: Difference between revisions
From Legacy Roblox Wiki
Jump to navigationJump to search
>Gamer3D m More clarification... |
>Outofspace m Unprotected "Making Hats/Anim8or Mesh Exporter": I see no reason why this is locked. It could clearly use development. |
(No difference)
|
Revision as of 05:45, 5 January 2009
This is Gamer3D's Anim8or script for exporting to the Roblox *.mesh format. With this update, the exporter officially works.
Install Instructions
Open Anim8or. Use the menu bar in the following sequence: File->Configure Set the Scripts text bar to the folder you want scripts to be in. Place this script (as a .a8s file) in the folder. To make these files, I save it as a .txt file using Notepad, then rename it to change the extension.
Script
/* Description: Add this to your Anim8or scripts directory and start Anim8or. The script MUST have the ".a8s" extension and be in the Anim8or Scripts folder. Make sure that "Preload Scripts" is set to ON (this is NECCESSARY). This script has been tested for 0.95 and 0.97 preview. */ #plugin("object", "export", "Roblox Mesh", ".mesh"); #file($output, "text"); #return($result); file $output; int $result; object $obj; shape $shape, $shapes[1], $childShapes[1]; tridata $data; material $mat; int $numFaces; point3 $point, $normal, $color; point2 $uv; int $i; int $j; int $index, $mIndex; int $count; float $gCol; string $nm; string $newName; float4x4 $tMatrix; $nm = $output.GetRoot(); $obj = project.curObject; $output.print("version 1.00\n"); $obj.GetShapes($childShapes); $shapes.size = 0; while($childShapes.size > 0) { $shapes.push($childShapes.pop()); } while($shapes.size > 0) { $shape = $shapes.pop(); $shape = $shape.ConvertToMesh(); $data = $shape.GetTriangleData(); $numFaces = $data.GetNumTriangles(); $tMatrix = $shape.GetGlobalTransform(); $output.print("%d\n",$numFaces); for $i = 0 to $numFaces - 1 do { for $j = 0 to 2 step 1 do { $index = $data.GetIndex(($i*3)+$j); $point = $data.GetPoint($index); $point = $tMatrix.Project($point); $normal = $data.GetNormal($index); $uv = $data.GetTexCoord($index); $output.print("[%.6g, %.6g, %.6g]", $point.x, $point.y, $point.z); $output.print("[%.5f, %.5f, %.5f]", $normal.x, $normal.y, $normal.z); $output.print("[%.5f, %.5f, 0]", $uv.x, $uv.y); } } } $result = 1;