From 95ba5d99c95d8b09e2c33e9e1acbd9c60577a314 Mon Sep 17 00:00:00 2001 From: nearnshaw Date: Thu, 15 Dec 2022 17:02:38 -0300 Subject: [PATCH 01/12] ADR-155-custom-animations --- ...DR-155-scene-triggers-custom-animations.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 content/ADR-155-scene-triggers-custom-animations.md diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md new file mode 100644 index 00000000..ff79acc7 --- /dev/null +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -0,0 +1,73 @@ +--- +layout: adr +adr: 155 # replace this number for the PR or ISSUE number +title: Scene triggers custom animations +date: 2022-12-15 +status: Draft # pick one of these +type: RFC # pick one of these +spdx-license: CC0-1.0 +authors: + - nearnshaw # this is your github username +# remove the following line! it exists to render the template nicely +slug: /adr/scene-triggers-custom-animations +--- + +## Abstract + + + +This is a proposal to add a feature to the SDK to allow scene creators to include custom avatar animations as part of a scene’s content, and to trigger these animations on players. The scene wil then be able to use these whenever they make sense in a scene’s mechanics. + +## Context, Reach & Prioritization + + + +In most experiences in Decentraland you see other players standing still, even if they’re actively engaging with the scene they just stand motionless. This limits a lot of the social aspects of playing with others. It also makes you wonder if other players are even playing at all, or if they’re not even at the keyboard, or if they’re just confused trying to understand the rules. + +While playing alone, these customized animations can also bring a lot more fun into a scene, by making our actions more lively and leaving less to our suspension of disbelief. + +## Solution Space Exploration + + + +Discuss the potential alternatives and their impact. What alternatives are being considered, their benefits, their costs (team resources, money, time frames), and mitigations for any drawbacks. + +## Specification + + + +It should be possible for content creators to upload files that include instructions for an avatar animation, following the same limitations as the files uploaded for NFT emotes. These animations however won’t be NFTs, they will be animations that the scene can trigger on any player who visits the scene. + +The scene can then trigger these animations on players whenever they make sense in the game’s mechanics. For example, Wondermine could play a “swing” animation whenever a player is mining a meteor, or the casinos could play a “show-cards” animation whenever the player plays their hand in a poker game. A fighting game could include animations for throwing punches, animations for receiving damage, and animations for dying. + +As happens currently with all player animations, other players that are around see the animations, the scene creator doesn’t need to do anything extra for this to happen. + +As with the triggering of default animations today, the scene should include special permissions to allow it to trigger emotes on an avatar. + +Since the animations are downloaded together with the scene's content, there's a corner case that needs to be handled gracefully: Player A sees Player B far away, but has not downloaded the scene where Player B is standing. The scene triggers an animation on Player B, but Player A doesn't have that animation downloaded. In this scenario, it's acceptable for Player A to not see the animation, since Player A is also not seeing the scene that gives that animation context. + + +**Syntax and semantics** + +This could be implemented via a component that is added to the player entity, which can be used to trigger animations either from the default list of animations, or from any animation file that is uploaded with the scene. + +**Open questions** + +- Should the scene also be able to control the avatar locomotion animations? For example, replace the default walk, run or jump animations for crawling, or skating or holding a gun, or whatever makes sense in the scene. Is this easy to achieve? +- Can scene custom animations also be able to spawn images or geometries? Like the hearts or the clap icons from default animations. + +## RFC 2119 and RFC 8174 + +> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. From 5d3675c4633e43418c00f5450f1c13b9632a9e2e Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Thu, 15 Dec 2022 18:40:41 -0300 Subject: [PATCH 02/12] Apply suggestions from code review Co-authored-by: menduz Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index ff79acc7..7b480fb3 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -1,6 +1,6 @@ --- layout: adr -adr: 155 # replace this number for the PR or ISSUE number +adr: 156 # replace this number for the PR or ISSUE number title: Scene triggers custom animations date: 2022-12-15 status: Draft # pick one of these From 280f20e282b837da1d383678338f8aa329a5ee36 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:08:38 -0300 Subject: [PATCH 03/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index 7b480fb3..b463e148 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -18,7 +18,7 @@ slug: /adr/scene-triggers-custom-animations Abstract is a multi-sentence (short paragraph) technical summary. This should be a very terse and human-readable version of the document section. **Someone should be able to read only the abstract to get the gist of what this document is about in its current state.** Abstracts should be always up to date with the current state of the document. --> -This is a proposal to add a feature to the SDK to allow scene creators to include custom avatar animations as part of a scene’s content, and to trigger these animations on players. The scene wil then be able to use these whenever they make sense in a scene’s mechanics. +This is a proposal to add a feature to the SDK to allow scene creators to include custom avatar animations as part of a scene’s content and to trigger these animations on players. The scene will then be able to use these whenever they make sense in a scene’s mechanics. ## Context, Reach & Prioritization From d3d889db41693254dad404f40a41ca2c7e567daa Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:08:48 -0300 Subject: [PATCH 04/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index b463e148..5f962ece 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -30,7 +30,7 @@ Discuss and go into detail about the subject in question. Make sure you cover: - Vocabulary and key terms --> -In most experiences in Decentraland you see other players standing still, even if they’re actively engaging with the scene they just stand motionless. This limits a lot of the social aspects of playing with others. It also makes you wonder if other players are even playing at all, or if they’re not even at the keyboard, or if they’re just confused trying to understand the rules. +In most Decentraland experiences, you can see other players standing still even if they’re actively engaging with the scene, just standing motionless. This limits a lot of the social aspects of playing with others. It also makes you wonder if other players are even playing, if they’re not even at the keyboard, or if they’re just confused trying to understand the rules. While playing alone, these customized animations can also bring a lot more fun into a scene, by making our actions more lively and leaving less to our suspension of disbelief. From 27c539802436f99bdd4cca103e8706968c2bf9f1 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:09:05 -0300 Subject: [PATCH 05/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index 5f962ece..55cbeeb1 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -32,7 +32,7 @@ Discuss and go into detail about the subject in question. Make sure you cover: In most Decentraland experiences, you can see other players standing still even if they’re actively engaging with the scene, just standing motionless. This limits a lot of the social aspects of playing with others. It also makes you wonder if other players are even playing, if they’re not even at the keyboard, or if they’re just confused trying to understand the rules. -While playing alone, these customized animations can also bring a lot more fun into a scene, by making our actions more lively and leaving less to our suspension of disbelief. +While playing alone, these customized animations can also bring a lot more fun into a scene by making our actions more lively and leaving less to our suspension of disbelief. ## Solution Space Exploration From 8ff439da8063412c5f6914639a98e499cd267cdd Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:09:33 -0300 Subject: [PATCH 06/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index 55cbeeb1..28c3e8f8 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -48,7 +48,7 @@ Discuss the potential alternatives and their impact. What alternatives are being The technical specification should describe the syntax and semantics of any new feature. --> -It should be possible for content creators to upload files that include instructions for an avatar animation, following the same limitations as the files uploaded for NFT emotes. These animations however won’t be NFTs, they will be animations that the scene can trigger on any player who visits the scene. +It should be possible for content creators to upload files that include instructions for an avatar animation, following the same limitations as the uploaded files for NFT emotes. These animations, however, won’t be NFTs but animations that the scene can trigger on any player visiting it. The scene can then trigger these animations on players whenever they make sense in the game’s mechanics. For example, Wondermine could play a “swing” animation whenever a player is mining a meteor, or the casinos could play a “show-cards” animation whenever the player plays their hand in a poker game. A fighting game could include animations for throwing punches, animations for receiving damage, and animations for dying. From f4b8bc8272d07e72a45ab24aca2b6d596e5573fb Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:09:50 -0300 Subject: [PATCH 07/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index 28c3e8f8..a64fca18 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -50,7 +50,7 @@ The technical specification should describe the syntax and semantics of any new It should be possible for content creators to upload files that include instructions for an avatar animation, following the same limitations as the uploaded files for NFT emotes. These animations, however, won’t be NFTs but animations that the scene can trigger on any player visiting it. -The scene can then trigger these animations on players whenever they make sense in the game’s mechanics. For example, Wondermine could play a “swing” animation whenever a player is mining a meteor, or the casinos could play a “show-cards” animation whenever the player plays their hand in a poker game. A fighting game could include animations for throwing punches, animations for receiving damage, and animations for dying. +The scene can trigger these animations on players whenever they make sense in the game’s mechanics. For example, Wondermine could play a “swing” animation whenever a player is mining a meteor, or the casinos could play a “show-cards” animation whenever the player plays their hand in a poker game. A fighting game could include animations for throwing punches, animations for receiving damage, and animations for dying. As happens currently with all player animations, other players that are around see the animations, the scene creator doesn’t need to do anything extra for this to happen. From 7499af75514a8cbe4e5cc43585f826009725dc92 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:10:06 -0300 Subject: [PATCH 08/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index a64fca18..f5aece36 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -40,7 +40,7 @@ While playing alone, these customized animations can also bring a lot more fun i Discuss the potential alternatives and their impact. What alternatives are being considered, their benefits, their costs (team resources, money, time frames), and mitigations for any drawbacks. --> -Discuss the potential alternatives and their impact. What alternatives are being considered, their benefits, their costs (team resources, money, time frames), and mitigations for any drawbacks. +Discuss the potential alternatives, their impact, which ones are being considered, their benefits, their costs (team resources, money, time frames), and mitigations for any drawbacks. ## Specification From 604a9fd1473a793f6a427b9248b15910cdc64378 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:10:28 -0300 Subject: [PATCH 09/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index f5aece36..d10deb5b 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -52,7 +52,7 @@ It should be possible for content creators to upload files that include instruct The scene can trigger these animations on players whenever they make sense in the game’s mechanics. For example, Wondermine could play a “swing” animation whenever a player is mining a meteor, or the casinos could play a “show-cards” animation whenever the player plays their hand in a poker game. A fighting game could include animations for throwing punches, animations for receiving damage, and animations for dying. -As happens currently with all player animations, other players that are around see the animations, the scene creator doesn’t need to do anything extra for this to happen. +As happens currently with all player animations, other players around seeing them; the scene creator doesn’t need to do anything extra for this to happen. As with the triggering of default animations today, the scene should include special permissions to allow it to trigger emotes on an avatar. From f24a81684f0154adca67b47408d21cde216ccd85 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:10:47 -0300 Subject: [PATCH 10/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index d10deb5b..ecf4c969 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -61,7 +61,7 @@ Since the animations are downloaded together with the scene's content, there's a **Syntax and semantics** -This could be implemented via a component that is added to the player entity, which can be used to trigger animations either from the default list of animations, or from any animation file that is uploaded with the scene. +This could be implemented via a component added to the player entity. It could be used to trigger animations from the default list of them or any animation file uploaded with the scene. **Open questions** From 5c1c870e4242409c823223bbc7b469e9c720e066 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:11:11 -0300 Subject: [PATCH 11/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index ecf4c969..87026c7d 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -65,7 +65,7 @@ This could be implemented via a component added to the player entity. It could b **Open questions** -- Should the scene also be able to control the avatar locomotion animations? For example, replace the default walk, run or jump animations for crawling, or skating or holding a gun, or whatever makes sense in the scene. Is this easy to achieve? +- Should the scene also be able to control the avatar locomotion animations? For example, replace the default walk, run or jump animations with crawling, skating, holding a gun, or whatever makes sense in the scene. Is this easy to achieve? - Can scene custom animations also be able to spawn images or geometries? Like the hearts or the clap icons from default animations. ## RFC 2119 and RFC 8174 From 85297861a5eb957b5dac05702ad250db6d6a3609 Mon Sep 17 00:00:00 2001 From: Nicolas Earnshaw Date: Tue, 10 Jan 2023 17:11:46 -0300 Subject: [PATCH 12/12] Update content/ADR-155-scene-triggers-custom-animations.md Co-authored-by: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Signed-off-by: Nicolas Earnshaw --- content/ADR-155-scene-triggers-custom-animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ADR-155-scene-triggers-custom-animations.md b/content/ADR-155-scene-triggers-custom-animations.md index 87026c7d..a1946df8 100644 --- a/content/ADR-155-scene-triggers-custom-animations.md +++ b/content/ADR-155-scene-triggers-custom-animations.md @@ -56,7 +56,7 @@ As happens currently with all player animations, other players around seeing the As with the triggering of default animations today, the scene should include special permissions to allow it to trigger emotes on an avatar. -Since the animations are downloaded together with the scene's content, there's a corner case that needs to be handled gracefully: Player A sees Player B far away, but has not downloaded the scene where Player B is standing. The scene triggers an animation on Player B, but Player A doesn't have that animation downloaded. In this scenario, it's acceptable for Player A to not see the animation, since Player A is also not seeing the scene that gives that animation context. +Since the animations are downloaded together with the scene's content, there's a corner case that needs to be handled gracefully: Player A sees Player B far away but has not downloaded the scene where Player B is standing. The scene triggers an animation on Player B, but Player A doesn't have that animation downloaded. In this scenario, it's acceptable that Player A can't see the animation, as Player A is also not seeing the scene that gives that animation context. **Syntax and semantics**