Hey i looked at your 45 second video to create a pawn that works with the system, and I cannot find any detailed pictures or info on the blueprint nodes you copied + connected in the pawn? is there a place I can find this?
thanks, loving it so far
Hey i looked at your 45 second video to create a pawn that works with the system, and I cannot find any detailed pictures or info on the blueprint nodes you copied + connected in the pawn? is there a place I can find this?
thanks, loving it so far
Hi Rolento
45s video is just a joke, you find longer ones here: https://www.youtube.com/playlist?list=PLP-uPWYCiCCEi1IGOkgCK_OjALl4E9lM8 and you also have example project with different example pawns here: MSSR Examples by Inu Games
Thanks
looks like I didnt get the joke lol
Looks superior in a lot of ways to other runtime building plugins for unreal except for one small detail…
In all of your videos and examples I’ve seen, the mesh has to exist before you can “snap” it on. Other marketplace build systems provide the blueprint for materializing the pieces out of thin air. What I mean by that is you choose a piece to add to your building or whatever it is you’re constructing, it’s brought in to the level as a green outline then snapped to another piece, then the normal material is applied. This is the typical user interaction for building houses, spaceships, etc. in games. The player does not typically have all the pieces just laying around on the ground to assemble stuff.
It looks like this could be built on top of what I’ve seen in the demo videos but do you already have an example for something like this? If not, consider this a feature request. Is this something that can be accomplished with your plugin or is it for a completely different use case?
Hi rackley,
Basically, there are two things. One thing is to spawn the new actor, and this part is easy. You can see an example in BP_PhGrabChar in the screenshot below. The other part is to manage the inventory of assets you can spawn, which includes the UMG menu, the icons, the “database” part and other stuff like that. And this is something different from snapping tool, it’s really like an inventory system, it really depends on the rest of the game.
I wanted to keep those examples very generic, so I didn’t do anything like that.
But, anyway, I will probably make a new example in the future with also this part. I’ doing something like that right now in VR, like you can see here: https://twitter.com/games_inu/status/1224002974600568832
Yeah, I have been trying to do it with this Snap plugin as well. Similar to the games like Fortnite, Russt, etc etc.
Bring the green outline to the level and then snap to another piece, and on confirmed press button, it will spawn the mesh into the level. Instead of spawning actors and then move around with the actor together to snap it. Feels wrong since the game design be flawed due to situations.
Have you manage to make this way like you mentioned?
Hi unrealjin, you posted here too?
I’ve started to make the example like those games you mentioned, so far with cubes. Adding new cube will show the preview first, then spawn the real cube when you confirm the placement, or delete it when you cancel.
It feels pretty nice this way. But it’s true that example would be better with real house parts. If somebody knows any house part meshes I can distribute with the example, like public domain or creative commons, let me know please
Hey There I’m loving your plugin!!! But I did have a question:
How would you save in game the snapping position of the objects?
Please see below of what I’ve been working on to make it save
I’ve installed the EMS Save plugin to make life easier but I still can’t save the snapping positions.
Any help would be greatly appreciated:)
Thank you for reading!
Hi there!
I don’t have experience with this plugin but I’m surprised it cannot save the positions. Basically, you need to save which actor it is, where the actor is located (relative transform) and to who it is attached (another actor or nothing if not attached).
If I would do it manually I would save a list of actors with their relative transforms and their parents, then when loading spawn the actors from the list and re-attach them to each other. If you are using physics you also need make attention to have correct physics state, use “weld” if needed, same like the snapping blueprint you use does.
I have 9 sockets all of which rely on same name example (Box, Box_1, Box_2 ect…). I have my actor with one socket (Box) which is able to snap to all those 9 sockets. Now i want to tell this actor to snap to lets say Box_1…ignoring all the other sockets. could you please help me with that. ive been trying to figure out ways of doing it allday and just dont seem to be getting anywhere…maybe you could add an option to snap only to socket with a specific tag? Basically i want to prioritize which socket is used first and last etc…
Do you have an example on how to use splines? It says you support them, and I see code in SearchSocket
that seems to handle SplineComponent
s, but it’s not working for me. I can’t seem to find an example in the provided example project.
To provide some more details of what I’m trying to do:
SnapActor
, however this doesn’t work by just giving it the actor of the new blueprint actor that has a child SplineComponentHi, I was writing an explanation about how to use splines, then I found that at some moment I introduced a new feature that broke the spline handling, so now I’m fixing that, also adding the preview for spline meshes to the preview actor.
Btw, how it’s supposed to work: the plugin sees the endpoints of the spline as sockets. Their names are the name of the spline component plus number. For example if the spline component is called “Spline” the sockets are called “Spline_0” and “Spline_1”. Then, in order to snap an actor containing the spline to something, you just need to add SplineComponent to the SourceComponents array in the snap parameters struct.
If you want to snap to the spline endpoints, then it’s a little bit more complicated. First, you need to add SplineComponent to the Target Components array of the param struct. Then the spline itself has no collision, so you need something with the collision for the plugin to see. If you have spline meshes with collision on the spline then you can use those, otherwise I spawn a simple sphere collision around each endpoint. You also need to add the component class you use for collision to the target components list.
As a workaround you can put a static mesh with socket placed at each spline endpoint. If you can use this then it’s actually faster, because spline handling is special and takes more steps.
@SeesePlusPlus I fixed the bug and submitted it to the marketplace, I hope it’s here soon. I also added an example with splines to the example project, you can already try the demo, I will update the source project too when the marketplace is updated.
ps: a little video here: https://twitter.com/games_inu/status…54918552207360
The example project is updated too, there is a map showing how to setup splines and also how GetConnected work (when snapping stuff everybody connected is re-colored).
Download here: MSSR Examples by Inu Games
Thanks @ for fixing this! I was able to use the demo and saw it working, but for 1 reason or another my BP wasn’t working, so I went with your suggestion to use Static Meshes at the endpoints, and it works great!
@ Hello, i really need snapping to instance static meshes. As far as i figured out, it would work only for the first instance since unreal only gets the other socket locations by adding the relative offset from the instance to the socket location for each instance. I know it would not be a big implementation to fix this but i would not know where to add the code. Do you think you can add support for this relative socket location for instanced oder hierachial instanced static meshes to your plugin? Thanks in advance and have a good one
Hi Mathias.
Good idea! I made a quick modification of the plugin and it seems to work. I only made “Snap to ISM” direction, but not “Snap ISMs to others” direction. I don’t know if other direction is needed?
I will send the update to the marketplace later.
Quick test video:
Thank you that was just what we needed ! No i think the other way around does not make much sense. After we confirm the mesh to its current snapped location on the instance static mesh we just call the actor it snaps to and say that we want a new instance there or we just create a new instance static mesh (actor) all together. But perhaps someone could find use for the other way around but i haven´t think about scenarios where this might be needed. Perhaps to snap two instance static mesh groups like a house and a carport, as an example, together ?
Anyway, you are awesome, thank you for your quick respond and fix / update!
I finally decided to implement the other direction too, also updated the preview actor and is-connected methods. So now ISM/HISM are supported like normal SMs.
I will just test all this a little bit more then submit.
So amazing, thank you so much!