Originally Posted by
NoKi1119
It is a nice idea, but is simply difficult/almost impossible to implement into the game.
When we make 3D items, we need to scale and position them in the 3D program itself.
If the devs find a way to make it possible to move them in-game, overwrite the existing .obj file in the custom folder in the same time and then upload it to the torishop so everyone can download that .obj while being in-game to see your tori with that edited version of the 3D item...it would have a few problems.
One of them being that the fact that we cannot overwrite the original 3D item itself, there would be way too many "edited versions" that are "created" with each having unique coordinates/rotation values, resulting in WAY too many items in the tori shop.
In a nutshell, the torishop will be FLOODED with copies and copies of hidden .obj files/3D items with different names and IDs, which is not really good.
Until the devs find a way to do this without using the torishop or so, I will have to say that I am not supporting this for now.
I see what you're saying, to an extent, but I'm pretty sure that simple translation of a complete model is among the simplest 3D transforms. It'd require adding a little bit more to the rendering code, but essentially having an ingame option that it gets shifted 0.02 units up before any rotation seems like it'd be simple enough to implement.
This data could be stored in any number of formats, but we'd definitely not store it baked into a final .obj. That is just asking for trouble.
Unless the render and object code is completely spaghetti, this actually seems like it would be relatively reasonable to implement. I can't imagine there's many reasons why scaling and positioning shouldn't be possible to implement in game.
But no, you'd never store this data by baking it into the .obj, that'd be miserable.
The actual data required would be something like...
<number of objects affected>, could be stored as 1 byte.
<number of transformations on object X>, could be stored as 1 byte.
<transformation type>, could be stored as 1 byte for (0-255) options.
<xval>, float (4 bytes), x position for translation, x factor for scaling, rotation about the x axis stored in some format for rotation.
<yval>, float (4 bytes), same as x but for y.
<zval>, float (4 bytes), same as x but for z.
Set up customization options so that the maximum number of transformations per obj is fixed. The number of objects is always fixed.
5 objects, 5 transformations each, gets you 306 bytes of data that would need to be transferred in addition to the original .obj files and everything.
306 bytes of data, per player, shouldn't be an issue. This post is longer than 306 bytes by a fair margin.
We already have items that can accept text fields (collector's cards). Assuming said system can accept arbitrary text values and it can accept 712 bytes worth of text, then we can even store this in hexadecimal in a text field in the database attached to the 3d object. If that text field is already being used to name the .obj file, add a delimiter and add it on and we still end up not needing to even change the database.
This is possible, if the game can be coerced into doing arbitrary transformations in the order provided on an object per player.
e: Though if someone does use float, make sure it's consistent across OSes, and if it is being stored in that really minimalistic fasihon please provide a nice dandy customization editor in the Torishop, or better yet, in-game and synchronized with the ToriShop.
Last edited by suomynona; Aug 1, 2015 at 07:13 AM.