Asset placement toolkit for Godot 4 Mono
Docs comming soon »
Example Project (Soon)
·
Report Bug
·
Request Feature
Table of Contents
This toolkit was started as a way for me to give my nephew an easier entry in to game development, more specifically 3D game development. This toolkit essentially aims to statisfy all the level building needs that you might have. And if it does not yet do this, please post an issue and we will see on how we can fit your need into the calculation. It is a work in progress, so bugs still might occur. Therefore usage in professional environment should still be cautious. Will update this part of the text when the product is polished enough for a professional usage case.
The plugin is quite extensive already, but below you can get a heads up about the overall functionality that it provides below. And then i can only recommend to download it and try it out. It is after all completely free - and i would love the feedback.
Currently it allows for the creation of Groups, which are groups of 3D objects that have their positions defined in local space. Which allows for building a house as an example with modular blocks and then easily use it again, or duplicate an earlier house, change 1 block and use that.
Groups inner structure are persistent, meaning if you change an group 3D object origin, rotation or scale it will instantly be updated on all instances of that group. This does not count for things like default collisions and more that are set when you spawn your group.
Preview your creation in a 3D Preview environment while you are building it. Allowing you to fly around your 3D object to ensure all the details are as they need to be.
Create libraries that houses a folder and all of it 3D models, allowing you to search, place, and perform various actions on the models when placing them in the 3D world.
You can add and remove libraries easily from the main page of the tab "Assets"
Use to place mesh instances, this is mainly for fewer spawns and where you need certain things to have a certain script and such.
Use to place multi meshes, in configureable chunks. Which allows for a more optimized end result when you are spawning alot of objects.
Fast placement of many objects with continous placement, which relieves you from the task of having to select the item again and again. All you have to do is hold alt + shift.
Drag a path and spawn a configureable amount using an offset to control the total spawn amount.
Snap to planes on the X,Y and Z Axis, the axis boundary can be configured to match the needs you have for the task.
Snap to other placed 3D objects in the 3D world as long as they have been spawned with the same spawn layer as the object you are spawning.
Easy auto collisions for your objects when you space them, or change them afterwards directly while the object is in focus.
By holding shift + alt and clicking A you can grab up already placed objects in the world, making it an ease to pick them up and move them to their new place.
Ability to keep an eye on the states, this is mainly usefull when things don't work.. So let's hope it does not need to be used.
Ability to convert Mesh instances into Scatter or Array Modifiers.
Scatter an configureable amount of entries of an object in an specified radius with various of tools and optimizations to go with the modifier.
Spawn an configureable array of objects with various of tools and optimizations to go with the modifier.
This plugin was build with Godot and for Godot.
Beside that Icons from HeroIcons have been used. And 3D objects from libraries from Here and Here has been used while building it, and is the 3D objects seen in the preview images.
Below you can find a detailed guide on how to download and install AssetSnap for your Godot 4.2 Mono project. If you rather get going quickly you can also download a free example project with AssetSnap already setup from here
Godot 4.2 Mono
- For Windows
https://godotengine.org/download/windows/
- For Linux
https://godotengine.org/download/linux/
Download your copy of AssetSnap by either downloading a zip of the current repository, Forking or Cloning the repository.
- Download Zip
- Click on the green button labeled
Code
- Click on
Download Zip
- Save the zip file at a place of your choice
- Unzip the zip file
- Copy the folder named Addons from within the new folder into your project
- Only for new projects Click on the
Project
menu - Only for new projects Move your cursor to
Tools
- Only for new projects Move your cursor to
C#
- Only for new projects Click
Create C# Solution
- Click on the hammer in the right corner to build your current solution
- Click on
Project
, And click onProject Settings
- Click on
Plugin
in the top of the new window, and check theEnable
checkbox next to the plugin named AssetSnap - AssetSnap Should now work as expected
- Forking
- Explanation for this section is comming soong
- Cloning
- Explanation for this section is comming soong
For usage resources please either head to the Youtube Channel, where things will be posted on how to use various of things.
or wait for a bit longer until i get a documentation set up.
As of 0.1.1
- Simple placement of objects using meshinstances
- Optimized placement of objects using multimeshinstances
- Auto collisions
- Placement of pre defined groups of objects
- Live preview of grouped objects while building
- Continuous placement
- Drag placement with offsetting
- Object snapping on multiple layers
- Plane Snapping
- Library listing of objects with previews and search
- Searchable library listing
- Simple Settings control
- Scatter modifier, that enables configureable scattering of an object
- Array modifier, that enables configureable array spawn of an object
As of 0.1.2
- Upgraded settings UI
- Level of detail Control
- Model visibility control
- Better Decal UI
- Better folder structure for components
- Stability fixes
- Most if not all code has been structured to follow the same pattern/standard
- Better Library UI, and rotation of models
- Better collision setup
- Better model preview generator, that supports .FBX, .GLTF, .GLB and .Obj.
- Toggleable model transparency when placing
As of 0.1.3
- Upgraded control around the preview of groups
- Upgraded UI in the group builder
- Optimization of code base, to make it more compact.
- And more
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Mike Sørensen - @MikeSrensen19 - [email protected]
Project Link: https://github.com/misoe92/AssetSnap-Godot
For this project several of resources have been used, below you will find a link and description of the various items. None of the items beside HeroIcons can be found in the project when you download it.
Also a mention should go to Godot as well, for their free and awesome piece of software.