You can write your topic however you want, but you need to answer these questions:
What do you want to achieve? Keep it simple and clear!
Enhance Shop experience for Player base by adding particles / animation…
What is the issue? Include screenshots / videos if possible!
Unable to identify solution that works.
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
Figured out how to use a “ViewportFrame” GUI for displaying a 3D Shop. I can move a camera back and forth across, but would like to know how Developers are adding in Particle/other effects into their 3D Shops like the games noted below. It has been said multiple times that Viewports don’t render particles or other special effects like this, although it was thought they may in the future but does not appear to be the case.
I’ve run across past discussions talking about trying to position just right animated labels, years prior there was some talk about using recorded animation and splicing animated sprites?
Visit the shop, view “Tools”, the very last Tool has what appears to be a particle emitter…
In the backpack shop, a few of the items have animated jet fire…
If you visit the 2nd dimension in this last game, the shops in this location have even more advanced effects.
If anyone can point me in the right direction, would be greatly appreciated.
A basic solution is to have ‘tool(s) map’. It’s a model that store all the current tool(s) in 3D world, making all particle and decal render properly. The advatange(s)? Good lighting, particle and decal support, and more!
The ‘tool(s) map’ can be positioned very far away from game map. This is to prevent Player Character to get inside ‘tool(s) map’.
As to make it more immersive, use basic Camera CFrame manipulation. For example, setting up the camera to point at certain tool while the appropriate GUIs is displayed.
In conclusion, this method is the most basic I can think of. Give it a try, mate.
local cam = game.Workspace.CurrentCamera
local pos = [part to follow]
while true do -- change to whatever
cam.CFrame = pos.CFrame
cam.CameraType = Enum.CameraType.Scriptable
end
Want to thank the community for the feedback, below is a rough / crude example of what I was after. I’m sure there are probably better ways to manage some aspects but this is my contribution to the community incase anyone happens to stumble across this post. =)
Grouped GUI under a Frame and applied AutoScale Lite Position/Size for cross-platform compat.
One thing to note, I tried initially setting the Camera Type to Scripted when scripts first execute, but later realized the system auto-changed it to Custom–so you have to change the Camera Type when opening the shop.