Announcement

Collapse
No announcement yet.

MSSR ★ Modular Snap System Runtime Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Hey, this plugin looks great and has inspired me! I tried the playable demo showcase and it works amazingly! I have a question about the kind of use I have in mind for it:

    I'm wondering how it handles two sockets on the same side of an object, for instance if you wanted to connect bricks to make a wall, offseting each layer, or even making a corner with the bricks by rotating 90 degrees. I drew a quick diagram to show the kind of behavior I'd expect to happen, and if it's not default would it be something I could implement easily? (The red lines are sockets, green is the placement preview)

    Click image for larger version

Name:	snap.png
Views:	253
Size:	23.9 KB
ID:	1702036

    Thanks! Hope you had a great holidays

    Comment


      Originally posted by simmmo View Post
      Hey, this plugin looks great and has inspired me! I tried the playable demo showcase and it works amazingly! I have a question about the kind of use I have in mind for it:

      I'm wondering how it handles two sockets on the same side of an object, for instance if you wanted to connect bricks to make a wall, offseting each layer, or even making a corner with the bricks by rotating 90 degrees. I drew a quick diagram to show the kind of behavior I'd expect to happen, and if it's not default would it be something I could implement easily? (The red lines are sockets, green is the placement preview)

      Click image for larger version

Name:	snap.png
Views:	253
Size:	23.9 KB
ID:	1702036

      Thanks! Hope you had a great holidays
      Hi Simmmo,

      The socket matching and snapping is always one to one. There is no special handling for two sockets on one face, the plugin will just pick the closest matching pair: one on the green brick and one on the black one, then use that pair to make calculations. So all the options on your schema will work. You need to give compatible names to those sockets, like Brick_0, Brick_1, etc. and they will snap together like you expect.

      Thank you
      Stan
      Modular Japanese HouseScaffold System
      Snap Plugin for EditorSnap Plugin for Games
      TwitterBlogYoutubeitch.io

      Comment


        Hi and Happy new year!

        We got our hands on Oculus Quest finally, and, with some adjustments, was able to run MSSR VR demo on it.



        So, what we did is:
        1. Follow this guide to create and deploy a UE4 project on Oculus Quest:
          https://developer.oculus.com/documen...t-guide-quest/ (only tested in 4.24, probably will not work in 4.22 and earlier versions)
        2. Migrate MotionControllerMap2 and it's dependencies from MSSRVR project to the Quest project (don't forget to move Config/DefaultInput.ini too)
        3. Go to the UE4.24 Plugins folder (C:\Program Files\Epic Games\UE_4.24\Engine\Plugins\Marketplace) and copy paste the MSSR plugin into your project's Plugins folder.
        4. In your folder edit MSSR.uplugin and add "Android" to the "WhitelistPlatforms" section.
        5. Open the project and in BP_MotionControllerDetach modifiy the preview actor init like the screenshot bellow. This is because the async (multithread) preview is not working well on Quest. Probably there is not enough cores on this thing. Switching to sync preview with a delay of 0.4s seems to run at max fps. To investigate...
        Click image for larger version  Name:	Annotation-20200104-194439.jpg Views:	0 Size:	97.9 KB ID:	1704363

        That's it. If everything works alright I will add Android as supported platform to the plugin later.
        Last edited by scha; 01-04-2020, 03:03 PM.
        Modular Japanese HouseScaffold System
        Snap Plugin for EditorSnap Plugin for Games
        TwitterBlogYoutubeitch.io

        Comment


          Check it out: somebody used MSSR plugin in an AR app on iPad: https://twitter.com/LideTark/status/1217993491701088262


          Steps to build MSSR for IOS, Android or other unsupported platform:

          1. Copy the plugin to your project: from UE_4.24/Engine/Plugins/Marketplace/MSSR to your project/Plugins/MSSR
          2. Edit MSSR.uproject file in your project and add the platform in WhitelistPlatform list. "IOS" or "Android", etc. depending on your target.
          3. To avoid conflicts uninstall the engine's MSSR plugin
          4. Rebuild your project
          Modular Japanese HouseScaffold System
          Snap Plugin for EditorSnap Plugin for Games
          TwitterBlogYoutubeitch.io

          Comment


            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

            Comment


              Hi Rolento

              Originally posted by Rolento View Post
              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
              45s video is just a joke, you find longer ones here: https://www.youtube.com/playlist?lis...CK_OjALl4E9lM8 and you also have example project with different example pawns here: https://inugames.itch.io/mssr-demos
              Modular Japanese HouseScaffold System
              Snap Plugin for EditorSnap Plugin for Games
              TwitterBlogYoutubeitch.io

              Comment


                Originally posted by scha View Post
                Hi Rolento



                45s video is just a joke, you find longer ones here: https://www.youtube.com/playlist?lis...CK_OjALl4E9lM8 and you also have example project with different example pawns here: https://inugames.itch.io/mssr-demos
                Thanks

                looks like I didnt get the joke lol

                Comment


                  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?

                  Comment


                    Originally posted by rackley View Post
                    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...02974600568832
                    Attached Files
                    Modular Japanese HouseScaffold System
                    Snap Plugin for EditorSnap Plugin for Games
                    TwitterBlogYoutubeitch.io

                    Comment


                      Originally posted by rackley View Post
                      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?

                      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?

                      Comment


                        Originally posted by unrealjin View Post


                        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
                        Last edited by scha; 03-12-2020, 12:08 PM.
                        Modular Japanese HouseScaffold System
                        Snap Plugin for EditorSnap Plugin for Games
                        TwitterBlogYoutubeitch.io

                        Comment


                          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


                          Click image for larger version

Name:	Capture.JPG
Views:	88
Size:	89.3 KB
ID:	1752521

                          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!

                          Comment


                            Originally posted by rikuman View Post
                            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


                            Click image for larger version

Name:	Capture.JPG
Views:	88
Size:	89.3 KB
ID:	1752521

                            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.

                            Modular Japanese HouseScaffold System
                            Snap Plugin for EditorSnap Plugin for Games
                            TwitterBlogYoutubeitch.io

                            Comment


                              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...

                              Comment


                                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:

                                - I am spawning new actors with a mouse click and dragging them until they snap to existing actors
                                - All of the actors I'm trying to snap together are blueprint actors which have a single child of type SplineComponent under the root SceneComponent. On construction, I add a simple cylinder spline mesh component
                                - I was able to get the system working easily with static mesh actors, leveraging `SnapActor`, however this doesn't work by just giving it the actor of the new blueprint actor that has a child SplineComponent
                                Last edited by SeesePlusPlus; 07-04-2020, 01:03 AM. Reason: Added details of what I'm trying to accomplish

                                Comment

                                Working...
                                X