Garbage room art installation 🤷

seen from Türkiye
seen from China

seen from France

seen from Malaysia
seen from United States
seen from United States

seen from United States
seen from China
seen from Russia
seen from Russia
seen from China
seen from Singapore
seen from United States
seen from United States
seen from China
seen from Germany
seen from United States
seen from United States
seen from France
seen from Macao SAR China
Garbage room art installation 🤷
It really comes down to thinking through your environment. It’s a matter of what makes sense for the context of a scene or setting, as well as what those items tell the viewer about the story.
I’m gonna take your example and layout a college student’s room.
I lay out the biggest pieces first. There’s going to be a bed, a closet, and some sort of storage unit. When placing big objects like this in a scene, where they are is very much up to you, but in this case I’ve chosen to overlap the storage and closet.
Specifically when it comes to placement, overlap is the most important! If you have objects set out with little to no overlap, they can make the room feel staged and unnatural; like a set instead of a setting.
For example here’s 3 objects that you might find in a college students room. The placement on the right looks more natural, just by overlapping the objects on top of one another!
After that we can start thinking. What else would a college student have in their room? Maybe some wall hangers for jackets, some posters, or a rug? This can really help build up the context of a room, and show what type of person would use this room.
After that, the clutter part comes in! Here are some questions to ask yourself about the clutter in this environment.
1. - Backpack. What kind of backpack does this person have? Where would it backpack go? Usually, people take off their backpacks before they enter a room.
2. - Clothes. What kind of clothes do they wear? Maybe this person is kind of messy, and leaves their clothes on the floor when they get dressed.
3. - Food/Snacks/ and Refreshments: Does this person take medication? Does this person eat in their room, If so, what do they eat?
4. - How old are the things in their room How old is the room itself?
You can even use settings you’re familiar with to take this even further. Look around your own bedroom, or living room, and sit down and really think about how objects interact with each other.
I hope this helps!
- Mod Vain (kofi)
So I spent a little time this evening createning a random object placer based on a lot of variables like height, chance and quantity within a defined area.
It was surprisingly easy to create, and there are a lot of possibilities for this. You can use one script to place objects in low areas and another in high areas or even expand the script itself if you want. :3c
It is also very easy to use:
Copy the script to an empty Unity3D C#-file.
Place the script on a reference GameObject in the scene.
Add tags called “Ground” and “Spawn” that you tag the objects you want to include in this generator.
Click Play. Ta-dah!
Here is the code:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; // SIMPLE OBJECT PLACEMENT TOOL BY Quakeulf // Made in 2016 // Contact: [email protected] // www.colonthree.biz public class ProceduralGeneration : MonoBehaviour { public Vector2 Area; private GameObject[] Objects; // Add a layer called "Spawn" and tag what you want to use in this. private float Offset = 40f; private float MaximumOffset = 10f; private float MinimumOffset = 1f; private float MaximumDepth = 75f; private float MinimumDepth = 10f; private int MaxObjects = 100; private int ChanceOfSpawning = 10; private float ScaleModifier = 2f; private float HeightOffset = -1f; private GameObject Placer; private int ing = 0; private int ening = 0; private float depthchecker = 0f; private float maxdepth = 0f; private float mindepth = 0f; private float referencedepth = 0f; private Vector3 createpoint; void ObjectSpawnar(){ ing = (int)Random.Range(0, Objects.Length); ening = (int)Random.Range(1, ChanceOfSpawning); if(ening == 1 && depthchecker < MaximumDepth && depthchecker > MinimumDepth && MaxObjects >= 0){ GameObject er = Instantiate(Objects[ing], createpoint, Objects[ing].transform.rotation, this.transform); float PositionOffset = Random.Range(MinimumOffset, MaximumOffset); er.transform.position = new Vector3(createpoint.x+PositionOffset,createpoint.y+HeightOffset,createpoint.z+PositionOffset); er.transform.eulerAngles = new Vector3(0.1f * PositionOffset, 45 * PositionOffset, 0.1f * PositionOffset); er.transform.localScale = new Vector3(ScaleModifier + (0.1f * PositionOffset), ScaleModifier + (0.1f * PositionOffset), ScaleModifier + (0.1f * PositionOffset)); er.SetActive(true); MaxObjects--; Debug.Log(er + " | " + depthchecker + " | " + ing + " | " + MaxObjects); } } void Loopar(){ RaycastHit Me; for(int e = 0; e <= (int)Area.x; e++){ for(int c = 0; c <= (int)Area.y; c++){ Placer.transform.position = new Vector3(this.transform.position.x + (e * Offset), 0, this.transform.position.z + (c * Offset)); if(Physics.Raycast(Placer.transform.position, Placer.transform.TransformDirection(Vector3.down), out Me, Mathf.Infinity)){ createpoint = Me.point; depthchecker = Me.distance; if(referencedepth > maxdepth){ maxdepth = referencedepth; } else { referencedepth = depthchecker; } //Debug.DrawLine(Placer.transform.position, Me.point, Color.green); } // Or any other tag you would like to specify. if(Me.collider.tag == "Ground"){ ObjectSpawnar(); } } } } void Start (){ Objects = GameObject.FindGameObjectsWithTag("Spawn"); Placer = new GameObject("Nyanpasu"); Placer.transform.parent = this.transform; Placer.transform.position = this.transform.position; Debug.Log(Placer.transform.position); if(Area.x > 0 && Area.y > 0 && Objects != null){ Loopar(); if(Placer){ Debug.Log("R.I.P. " + Placer + "!"); Destroy(Placer); } } } }
After Effect 3D camera track and 3D Model placement
same footage is used in this video and the next one. The 3D objects are different.