Code Monkey home page Code Monkey logo

prop_placer's Introduction

Prop Placer

Prop Placer is an editor plugin for Godot 4.3+ to help you organize and place assets in your 3D world.

Prop Placer supports any PackedScene files (.tscn, .gltf, .blend, etc.)

Currently implemented features

  • Grid support
  • Align to surface
  • Multiple assets selection (by holding Ctrl or Shift). When placing, random asset will be picked from the selection
  • Scale randomization

Installation

The plugin is available in the Asset Library.

Follow Godot documentation on how to install and enable plugins.

How to use

  1. After enabling the plugin, open the "Prop Placer" tab at the bottom of the window.
  2. First, you will have to create a collection. Enter its name and click the + button in the top right corner.
  3. Save the file somewhere in your project.
  4. Drag and drop your assets into empty space on the right.
  5. Select the asset you want to place from the list. Right click if you want to remove it.
  6. In the top left corner, click the button that says "Select" and select a node. Objects will be spawned as children of this node. Click again to select another node.

You should now be able to place the asset.

Tip

Click the ? button to view keybindings and additional settings.

License

This plugin is licensed under the MIT License.

prop_placer's People

Contributors

fstxz avatar

Stargazers

enfpdev avatar Lysov Andrey avatar  avatar  avatar Straussn avatar Gleb avatar sheen avatar Andrea Terenziani avatar Amir .DEV avatar

Watchers

 avatar  avatar

Forkers

zhangjiangen11

prop_placer's Issues

Self-collision issue with the object being placed

When deactivating the grid option, and the object one is about to place is a PhysicsBody or has a collision object inside of it, the raycast which is used for determening the position of the mouse cursor detects the preview object and tries to adjust its position. This results in the preview object moving closer to the camera repeatedly, after which snapping back to the actual scene geometry. This is best explained by having a look here:
Bildschirmaufzeichnung vom 2024-05-09, 02-33-36.webm
The raycast detects the goal as a collision object, even thouhgh it should simply be a preview object without collision before placing.

Errors

  res://addons/prop_placer/gui_handler.gd:52 - Parse Error: Static function "popup_node_selector()" not found in base "GDScriptNativeClass".
  res://addons/prop_placer/plugin.gd:-1 - Compile Error: 
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/prop_placer/plugin.gd" with error "Compilation failed". (User)
  res://addons/prop_placer/plugin.gd:42 - Invalid set index 'prop_placer_instance' (on base: 'Control (gui_handler.gd)') with value of type 'EditorPlugin (plugin.gd)'.

Error whenever opening a property in the inspector

Whenever I click on a property in the inspector (for example a material or a color gradient) it doesn't open the menu for editing the property, but it throws an error saying this
Condition "plugins_list.has(p_plugin)" is true.
This issue can be observed here, where I try to edit the gradient color of a GPUParticle3D Node:
inspector_broken.webm
I disabled all other plugins I have and it turned out that it is indeed this one which is causing the problem. Unfortunately, I don't have any idea on why this might be happening. I ran Godot using the terminal and got this output for opening the ParticleProcessMaterial and the GradientTexture:

ERROR: Condition "plugins_list.has(p_plugin)" is true.
   at: add_plugin (editor/editor_node.cpp:7568)
ERROR: Condition "plugins_list.has(p_plugin)" is true.
   at: add_plugin (editor/editor_node.cpp:7568)

This seems to occur for all resources which are inside of another resource (in this case GradientTexture1D in ParticleProcessMaterial).

Increase the default size of the collection creation and import windows

The size of the file dialogs for creating new collections and importing them is just way too small:
grafik
This can be very quickly and easily solved by going into the gui_handler.gd script and adding two small lines to adjust the default size of these windows:
grafik
This results in windows which have a much more reasonable size:
grafik

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.