@@ -35,10 +35,10 @@ public static string CreateModelFor(BBModel model, BBModel.Outliner outline)
3535 any = true ;
3636 JObject jElement = new ( ) ;
3737 jElement . Add ( "name" , element . Name ) ;
38- jElement . Add ( "from" , DVecToArray ( element . From - outline . Origin ) ) ;
39- jElement . Add ( "to" , DVecToArray ( element . To - outline . Origin ) ) ;
38+ jElement . Add ( "from" , DVecToArray ( ( element . From - outline . Origin ) * SCALE_FACTOR ) ) ;
39+ jElement . Add ( "to" , DVecToArray ( ( element . To - outline . Origin ) * SCALE_FACTOR ) ) ;
4040 JObject rotation = new ( ) ;
41- rotation . Add ( "origin" , DVecToArray ( element . Origin - outline . Origin ) ) ;
41+ rotation . Add ( "origin" , DVecToArray ( ( element . Origin - outline . Origin ) * SCALE_FACTOR ) ) ;
4242 if ( element . Rotation . X != 0 )
4343 {
4444 rotation . Add ( "angle" , element . Rotation . X ) ;
@@ -72,12 +72,12 @@ public static string CreateModelFor(BBModel model, BBModel.Outliner outline)
7272 return null ;
7373 }
7474 group . Add ( "name" , outline . Name ) ;
75- group . Add ( "origin" , DVecToArray ( outline . Origin ) ) ;
75+ group . Add ( "origin" , DVecToArray ( outline . Origin * SCALE_FACTOR ) ) ;
7676 group . Add ( "color" , 0 ) ;
7777 group . Add ( "children" , childrenList ) ;
7878 groups . Add ( group ) ;
79- head . Add ( "translation" , new JArray ( 8 * Program . SCALE , 3.75 * Program . SCALE , 8 * Program . SCALE ) ) ;
80- head . Add ( "scale" , new JArray ( Program . SCALE , Program . SCALE , Program . SCALE ) ) ;
79+ head . Add ( "translation" , new JArray ( 32 , 25 , 32 ) ) ;
80+ head . Add ( "scale" , new JArray ( 4 , 4 , 4 ) ) ;
8181 display . Add ( "head" , head ) ;
8282 jout . Add ( "textures" , textures ) ;
8383 jout . Add ( "elements" , elements ) ;
@@ -86,6 +86,9 @@ public static string CreateModelFor(BBModel model, BBModel.Outliner outline)
8686 return jout . ToString ( ) ;
8787 }
8888
89+ /// <summary>2.285 is the scale to be 'normal' size (16 BlockBench pixels = 1 minecraft block), but 4.0 is the scale objects are applied at, so this factor corrects for that.</summary>
90+ public const double SCALE_FACTOR = 2.285 / 4.0 ;
91+
8992 public static JObject FaceToJObj ( BBModel . Element . Face face , BBModel model )
9093 {
9194 float relativeU = 16f / model . ResolutionX ;
0 commit comments