Skip to content

Addon which adds a asset placement library in the bottom of the editor, that allows libraries(folders) of objects to be added, going to the library then allows you to preview and place them using various of additional tools like snapping to grid or other objects + ability to create array or scatter grids based on the object.

License

Notifications You must be signed in to change notification settings

misoe92/AssetSnap-Godot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

AssetSnap

Asset placement toolkit for Godot 4 Mono
Docs comming soon »

Example Project (Soon) · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

image

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.

Groups

image

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.

Persistency

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.

3D Preview

image

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.

Libraries

image

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.

Add and remove libraries

You can add and remove libraries easily from the main page of the tab "Assets"

Placement Modes

Simple placement mode

Use to place mesh instances, this is mainly for fewer spawns and where you need certain things to have a certain script and such.

Advanced placement mode

Use to place multi meshes, in configureable chunks. Which allows for a more optimized end result when you are spawning alot of objects.

Continuos placement

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 path placement

Drag a path and spawn a configureable amount using an offset to control the total spawn amount.

Plane Snapping

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.

Object Snapping

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.

Auto collisions

Easy auto collisions for your objects when you space them, or change them afterwards directly while the object is in focus.

Grab already placed objects

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.

Inspector

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.

Modifiers

Ability to convert Mesh instances into Scatter or Array Modifiers.

Scatter Modifier

Scatter an configureable amount of entries of an object in an specified radius with various of tools and optimizations to go with the modifier.

Array Modifier

Spawn an configureable array of objects with various of tools and optimizations to go with the modifier.

(back to top)

Built With

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.

(back to top)

Getting Started

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

Prerequisites

Godot 4.2 Mono

  • For Windows
    https://godotengine.org/download/windows/
  • For Linux
    https://godotengine.org/download/linux/

Installation

Download your copy of AssetSnap by either downloading a zip of the current repository, Forking or Cloning the repository.

  • Download Zip
  1. Click on the green button labeled Code
  2. Click on Download Zip
  3. Save the zip file at a place of your choice
  4. Unzip the zip file
  5. Copy the folder named Addons from within the new folder into your project
  6. Only for new projects Click on the Project menu
  7. Only for new projects Move your cursor to Tools
  8. Only for new projects Move your cursor to C#
  9. Only for new projects Click Create C# Solution
  10. Click on the hammer in the right corner to build your current solution
  11. Click on Project, And click on Project Settings
  12. Click on Plugin in the top of the new window, and check the Enable checkbox next to the plugin named AssetSnap
  13. AssetSnap Should now work as expected
  • Forking
  1. Explanation for this section is comming soong
  • Cloning
  1. Explanation for this section is comming soong

(back to top)

Usage

For usage resources please either head to the Youtube Channel, where things will be posted on how to use various of things.

Channel

or wait for a bit longer until i get a documentation set up.

(back to top)

Roadmap

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

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Mike Sørensen - @MikeSrensen19 - mikebsorensen1@gmail.com

Project Link: https://github.com/misoe92/AssetSnap-Godot

(back to top)

Acknowledgments

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.

(back to top)

About

Addon which adds a asset placement library in the bottom of the editor, that allows libraries(folders) of objects to be added, going to the library then allows you to preview and place them using various of additional tools like snapping to grid or other objects + ability to create array or scatter grids based on the object.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages