So, for the majority of the maps in my game, I’ll have rocks blocking off out-of-bounds areas. It’s basically a standard in Roblox games to do that. However, I found that doing this process takes ages, and it’s hard not to make it look duplicated.
I tried using brushtool, but it didn’t look right, and the brush selector thing would also hover over the existing rocks, forcing it to go up. Any ideas?
I usually create an algorithm that randomly positions and scales parts in certain areas, instantly generating all the necessary parts. This can be a bit difficult for people that don’t script, but the basic algorithm is like this:
Define the x and z boundaries where the rocks would generate (I usually reference a part, taking the x position - x size / 2, and the z position - z size / 2)
Define the maximum and minimum sizes of the rocks
Define the number of rocks to generate
Create a loop that runs for the number of rocks you want to generate, with the following steps inside it
Generate a random number for each of; x size, z size, x position, and z position, based off the values defined above
Create a number for the y position by taking the position you want the bottom of the rock to be at + the y size / 2
Instantiate a part, set the color and material, and set the position and size to what was defined above
That method gives a nice final product but can take a while. IF you want to put in all that effort, I would suggest learning Blender and making rocks there, as you can easily do that, make them have a little more detail and precision, and can learn it for later projects and could continue on with Blender in high school. This would probably take more time for right now, but you can also start making your own really cool trees in Blender and other models.
If you decide to go through with it, after your model is done, export it as a .fbx. Don’t worry about textures, you can do that in Studio. Upload the model to Roblox after selecting “Invert Negative Faces” and setting the size of your model. Then go into the group, select all the parts and set the RenderFidelity to Performance do reduce lag (it looks the same no matter what you set it to, so don’t worry about your model looking worse than you wanted it to). Finally, treat it as a normal Roblox Part and texture, position, and do whatever else you want with it!
Here are a few things I have made in my time working with Blender, going from the start of me using it to now:
I only made the hand, rig, and animation for this one ^^^
-- define a starting position, physical or in code as a cframe.
local startingPosition = workspace.startpos
local rockFolder = Instance.new("Folder", workspace)
rockFolder.Name = "rocks"
local spaceBetweenRocks = 10 -- studs
local minSize = 10 -- studs
local maxSize = 20 -- studs
for i = 1,20 do -- how many rocks do you want?
local rock = Instance.new("Part", rockFolder)
rock.CFrame = startingPosition.CFrame*CFrame.new(0,0,-spaceBetweenRocks*(i-1))
-- alter the rotation of the starting part if you want the rocks to go in a different direction.
rock.Size = Vector3.new(math.random(minSize,maxSize),math.random(minSize,maxSize),math.random(minSize,maxSize))
rock.Material = "Slate"
rock.Anchored = true
end
Okay, I made a plugin based off of what @MLGwarfare04 posted, and it works amazingly! It has all the basic features, a couple of buttons, undo and redo, and setting saving.
This is it: RockCreator.rbxmx (35.9 KB)
Hope this makes building a bit easier! All credit goes to MLG for the original idea, though.