I am currently looking into designing a high-fidelity VSS “Vintorez” special sniper rifle model, but I have come across a hurdle in the process of designing what I want.
I am specifically interested in creating an animated bolt action, so if you were to remove the dust cover, you could actually see the internals working. A video example of what I am talking about is below.
(taken from Deadline. Apologies for the low framerate, I had to compress the video to make it small enough)
It seems like this kind of thing would be very difficult with Roblox’s strict 10k triangle limit.
I have considered options for baking normal maps (this would only come to Roblox when PBR support is finalized). These could work for the other components, but the springs are what’s concerning me. Especially since the VSS has two major springs under the dust cover, instead of the one that the example AK-74N has. I think it would be challenging to have a good-looking spring that was low-poly enough for Roblox.
I have also considered uploading the bolt carrier/recoil spring/hammer assembly as a separate model from the rest of the firearm, but I do not know of a way that I could copy position data from Blender into Roblox Studio when importing so that I do not have to manually reposition and resize the bolt assembly by eye.
I have not begun modeling these components yet, so I still have a lot of freedom with what method I choose. Any ideas would be appreciated.
Howdy, your best best would indeed be having all individually moving parts, and certain things like springs, be their own separate Mesh-part.
For the springs I’d also recommend not going too high on the mesh resolution, with geometry that thin or small ppl won’t really notice if the actual polygon count isn’t perfectly smooth but even if somebody notices it, I personally doubt that anybody would be genuinely bothered let alone start to complain.
Now in oder to have all the little separate mesh pieces import with their correct position, you just have to get sure that every mesh in Blender is set to the very same point of Origin, for that press Shift +C to reset the 3D cursor to the center of the 3D space, now select your mesh(es) and click on Object > Set Origin > Origin to 3D Cursor, or press Spacebar to open the search bar and type in Origin to … then click on the right search result to perform said action.
Last but not least you need to reset ( apply ) the Location, Rotation and Scale of your meshes, keep in mind to only do this once the meshes are actually finished, to do so select your mesh(es) and press Ctrl + A, in the menu that just popped up click on All Transforms.
Now once you export and import the meshes with all the same Point of Origin and Applied Transform data, Roblox should show the “Mesh contains positional data” , click on yes and all pieces should appear where they belong.
Oh and I almost forgot to mention about the proper mesh scaling:
See the floor grid in Blenders 3D space ? 1 square of the default floor grid is exactly 1x1 Roblox studs in scale, well at-least when importing a Roblox mesh into Blender, now to have your meshes be the correct scale after importing them to Roblox, you have to use a scale factor of 0.01 when exporting them, see the following image for example: