by 0xbd5b79d53d75497673e699a571afa85492a2cc74 (DecentralandGod)
Should the following Tier 2: a one-time payment of $1500 - $3000 USD in MANA grant in the Platform Contributor category be approved?
Abstract
Proposal
Add more functionality to the toolbox smart item to enable users to make more dynamic scenes
I will list the updates and then provide more detail below
- Add a set of “Face Player/Item” and “Move to Player/Item”
- Add “Follow path”
- Improve the Move/Rotate/Scale code (TweenSystem) to be able to run 1 move,1 rotate,1 scale concurrently. Currently limited where only 1 action can be executed at a time move or rotate or scale.
- Scene Add/remove
- Attach/Detach Item
Demo / POC
[Builder | Decentraland] (Builder | Decentraland)
Grant size
3,000 MANA
Beneficiary address
0xbd5b79D53D75497673e699A571AFA85492a2cc74
Description
Full Project Proposal Here https://github.com/wacaine/dcl-smart-items-ce/blob/master/proposals/toolbox-ce.md
Actions To Be Added
Face player
The target item will rotate towards the player at a configurable speed for how fast it rotates and stops when facing the player.
Face Item
The target item will rotate towards the target item at a configurable speed for how fast it rotates and stops when facing the player
Move to player
The target item will move towards the player who invoked it at a configurable speed for how fast it rotates and stops when facing the player
Move to item
The target item will move towards the item at a configurable speed for how fast it rotates and stops when facing the player.
Note on above
All of the above face/move actions will include lock X, Y, Z-axis which do as they suggest. It will prevent movement along the locked axis. This is useful if you wanted to move an item to the same Y coordinate as another item but update any other axis (basically have it move only in the up/down direction).
Follow Item Path
The target item will follow a path of defined items. This is like move to item however you list more than one item. It will also not follow the path strictly but more of a curved path AND rotate the object-oriented facing forward along the path. I do have a POC of this working however the Builder action UI is limited and I see no way to be able to pick an unlimited amount of items. I must pre-configure the max number of selectable items. I am also not sure how nicely this will work with multi-player. I plan on leaving this just as an advanced feature only the CE repo will have and not try to pull it into the main repo.
Motion Control
Allows a player to pause, stop, resume an action
Improve the Move/Rotate/Scale code (TweenSystem)
Currently, you can execute just one Rotation, Move, or Scale at a time. Executing two at the same time will cancel one of them out. I want to add the ability to enable 1 Rotation + 1 Move + 1 Scale all at the same time. More than 1 of these actions at the same time will have the same cancelation effect as the first just like today but only against that action type: move, rotate or scale.
Add Attach/Detach Item
Will attach 1 item to another giving the attached item the position, rotation, scale of the target/host object. This is very useful to move items in one group instead of individually. Attach centered flag.
Scene Add/remove
Action will let you remove/add an object. Not the most elegant way to handle the user experience object/movement but has its uses. One is removed objects do not contribute to scene limitations and boost scene performance.
Specification
Demo / POC
I started work the same day I saw the DAO Funding proposal as a POC and you can see the work I have completed here
[Builder | Decentraland] (Builder | Decentraland)
I estimate I have about 70% of the deliverable complete. I am optimistic that this proposal will be approved because I believe in the value of adding the toolbox functionality (I have already logged more hours than I probably should have not knowing if this will be funded or not). Should the funding be approved I will finalize my work and make it available as outlined in the deliverables below.
Personnel
My Portfolio
I won first place in the recent CyberPunk Contes that included a mini-game. In the mini-game, I had to disable access to areas, disable platforms, keep track of how many times a user did something. I exclusively used the Builder and the provided smart items to make my scene. In doing so I am very familiar with the Builder and smart item current limitations.
View it in the scene pool here [Builder | Decentraland] (Builder | Decentraland)
I have made improvements to existing smart items.
Another contest submission for the Voxter Contest involved a smart asset they provided. You can find my submission here:
Builder | Decentraland. Again I used the Builder and but this time also the SDK to enhance the Voxter smart item given to the contestants improving its experience and features in the Builder. Enhancements can be found here:
Features added during contest by wacaine · Pull Request #2 · pabloes/voxters · GitHub
Roadmap and milestones
Time to Complete
I am past the 70% completion mark already. I estimate at most more 2-weeks until completion from the time the proposal is accepted (sadly this is not my full-time job…yet! ). Should the funding be approved I will finalize the work I have already started and make it available as outlined in the deliverables above.
Deliverables
The code will be publicly available at my public GitHub repository here. GitHub - wacaine/dcl-smart-items-ce. The reasoning for the name of the repository: “smart-items” since that is what they are and “ce” for Community Edition. I will upload the source code and a premade item.zip that can be dragged into the builder for usage. Directions on how to do that can be found here Import custom items | Decentraland Documentation
I will also open a pull request against the main smart-items repository (here GitHub - decentraland/smart-items: 💡Smart item examples). I will work with the Decentraland Foundation team to try and get it merged into the main repo so it will be even easier to make use of. There is no guarantee the Decentraland Foundation will merge this code into the main branch. This step is dependent on the Decentraland Foundation Team time to review, code standards, other projects/goals they have going on, and likely not be completed as quickly as the custom drag/drop item.