Experiential Design - Task 3: Project MVP Prototype
Tan Zhao Yi / 0363285
Experiential Design / Bachelor of Design (Hons) in Creative Media
Task 3: Project MVP Prototype
Also while adding the collider
component, I edit the collider to be
slightly bigger so that children can
easily drag the object.
Then, I continued with coding in
Visual Studio Code. For the dragging
function, I seeked for some help
from AI, and I learned to use
ScreenToWorldPoint to convert the
touchpoint 2D (screen) position to 3D
(world) position. The object
transformed position is equals to the
mouse's world position + offset, which
"offset" means the difference
between where user clicked and the
object's center. Adding
"offset" allows the object to
maintain its relative position (so it
doesn’t "jump" to the center of user's
finger).
In this section, users can clean the shelf by dragging a feather broomstick across it. As the broomstick is swiped over areas with dirt multiple times, the debris will gradually disappear, providing a sense of interactive satisfaction. To create this effect, I plan to download a clean wooden shelf asset and overlay it with spiderweb elements. These spiderwebs will be manually added to the shelf to simulate a dirty or neglected appearance. The goal is to create an engaging, hands-on experience where users feel a sense of accomplishment as they clean the shelf, reinforcing the interactive and playful nature of the AR storybook.
In my file, the z-axis is controlling the chocolate
moving up / down, so I will be modifying the z
position in the script.
Experiential Design / Bachelor of Design (Hons) in Creative Media
Task 3: Project MVP Prototype
LIST
Task 3: Project MVP Prototype
INSTRUCTION
LECTURE
Lecture 8: Mixamo
We learned about using the
Mixamo, a animatimg website then import into Unity by using
FPX file type.
In this lecture, we learned about switching the
model while clicking on it. It can be changed by
shape or colour, and this will be very useful for
furniture AR experience like IKEA app.
Task 3: Project MVP Prototype
In this task, we are to work on the
prototype of our project. This will
allow us to learn about the
limitations of technology, skills,
or knowledge that we might not
recognised before. Then, we will
need to think out solutions
creatively to overcome the problems
we encountered. The major objective
of this task is to test out the key
functionalities of our own
project.
Before starting up, I revised the
visualisation in Figma, particularly
the home page button as it looks very
abrupt.
![]() |
Fig 1.1. Home Screen Button - Before and After |
Following the Figma, I've selected some
screens that include major interactions
and the MVP screen included in the
prototype will be:
1. P4: Drag and drop
2. P6: Stir the pot
3. P18: Clean the shelf
2. P6: Stir the pot
3. P18: Clean the shelf
4. P19: Eat the chocolate
A. P4: Drag and Drop
The plan is users are allowed to
scan the image target and a pot will
pops out, surrounding with some
sweets like chocolate, ice cream,
candy etc. Then, they can drag the
sweets and drop it into the pot,
aligning with the storyline.
The pot and the sweets are
downloaded from Unity Asset
Store.
I started with placing all the
models on the intended location. The
pot is placed slightly above of
the image target, and the sweets are
randomly placed around the pot
on the ground.
![]() |
Fig 2.1. Placing Objects |
![]() |
Fig 2.2. Expanding Collider |
Fig 2.4. Outcome Video - Drag and
Drop
B. P6: Stir the pot
Initially, on page 6-7, the user was
intended to drag the large spoon
placed in the pot to stir the liquid.
After stirring the pot three times,
the liquid would spill out. However,
after spending a considerable amount
of time trying to implement this
feature, I realized that achieving the
spilling effect was not possible. The
issue arose because the downloaded pot
asset did not have an animation, and I
was unable to edit it or create the
animation myself. As a result, I had
to reconsider how to approach this
interaction, at this point, I will
focus on page 6 first.
The animals will be downloaded
online:
The frog is not confirmed yet because
I couldn't find a suitable one at this
moment. It will be confirmed in the
final project. First, I work on the
stiring function. I placed the spoon
to the position I want, and added an
invisible box collider to define the
liquid area to constrain the movement
area of the spoon.
In this case, I reused the knowledge
gained in
A. P4: Drag and Drop, which is the Screen to World
Point.
Outcome
Fig 3.3. Outcome Video - Stir the
Pot
C. P18: Clean the shelfIn this section, users can clean the shelf by dragging a feather broomstick across it. As the broomstick is swiped over areas with dirt multiple times, the debris will gradually disappear, providing a sense of interactive satisfaction. To create this effect, I plan to download a clean wooden shelf asset and overlay it with spiderweb elements. These spiderwebs will be manually added to the shelf to simulate a dirty or neglected appearance. The goal is to create an engaging, hands-on experience where users feel a sense of accomplishment as they clean the shelf, reinforcing the interactive and playful nature of the AR storybook.
- Shelf: https://assetstore.unity.com/packages/3d/environments/dungeons/low-poly-free-dungeon-pack-191979
- Feather Broom: https://sketchfab.com/3d-models/feather-duster-73435282851340f0b6a09d4bb1c97811
- Cobweb: https://www.freeiconspng.com/images/spider-web-png
- Decoration Props: https://assetstore.unity.com/packages/3d/environments/dungeons/low-poly-free-dungeon-pack-191979
The cobweb is a 2D sprite since I couldn't find a
3D version, but it works perfectly fine in this
context. The shelf's default color is a
greenish-brown, but I discovered that adding the hex
color #542E00 created a
more suitable visual effect for a dirty shelf. This
adjustment introduced subtle grey undertones,
enhancing the worn and unclean appearance, which
better aligns with the intended aesthetic for the
scene.
Fig 4.1. Shelf - Default and Material
I placed the broom in the air to indicate that
the user can interact with it. When the user
swipes on the cobweb, it disappears after a
single swipe, using the Destroy() method. I
chose to use Destroy() instead of
SetActive(false) because I didn't want the
cobweb to respawn after it’s been cleaned. Since
there is no restart function for each AR scene,
the user won't be able to replay unless they
rescan the image target, making Destroy() the
more appropriate choice to ensure the cobweb is
permanently removed once cleaned.
To track the number of swipes, I attached box
colliders to both the duster and the cobwebs. Each
time the duster triggers the cobweb, it counts as
one swipe. Additionally, I measure the distance
moved by the duster, incrementing the swipe count if
the duster travels a sufficient distance. To control
the frequency of swiping, I set an integer variable
called Required Swipe, which determines the number
of swipes needed to clean the cobweb. This approach
ensures that the swiping action is both responsive
and meets the desired interaction criteria.
Outcome
Fig 4.3. Outcome Video - Clean the Shelf
D. P19: Eat the Chocolate
Originally I wanted the chocolate to display an
actual "bite" shape when the user clicked on it.
However, due to time constraints and technical
limitations, I had to find an alternative approach.
I decided to simulate the biting effect by gradually
decreasing the length of the chocolate, as its
rectangular shape made this method more
feasible.
Initially I am trying to adjust the scale of the
chocolate to achieve the effect. However it came out
squeezing itself instead of "cropping".
Fig 5.1. Chocolate Squeezing
Therefore, I tried to use a masking technique. I
created an invisible cube beneath the chocolate.
When the user clicks on the chocolate, the chocolate
moves downward, creating the appearance that it is
being bitten from the top. For the invisible cube, I
attach a shader (material) to it.
![]() |
Fig 5.2. Shader |
![]() |
Fig 5.3. Script - Eat the Chocolate Click to enlarge |
Outcome
Fig 5.4. Outcome Video - Eat the Chocolate
Final Task 3: Project MVP Prototype
What's done:
- Drag and drop
- Stirring in one limited area
- Cleaning effect
- Click and position down
What's yet to be done:
- Potion spills out the pot effect
- Animals animation: Running around
- UI (Buttons, Screens etc.)
- Frog asset
Fig 6.1. Final Task 3: Project MVP Prototype - Slides
Fig 6.2. Final Task 3: Project MVP Prototype - Presentation
Video
REFLECTION
For me, Unity is quite a
challenging app for me because
of its complex
functionalities, and also
coding. As I don't have any
background with Java, I can
only change my mindset or
logic to achieve the visual
effect I want, and sometimes
it's not even workable with
the knowledge I have at this
moment. It is still a long
road to go.
Throughout this process, I
observed that development is
not as simple as just "drag
and drop." Every feature needs
logic and problem-solving. For
example, I thought that
dragging the spoon would be
easy, but I discovered that I
had to set specific boundaries
for it. Without these
boundaries, the spoon moved
outside the pot, and the
interaction did not feel
realistic.
Additionally, I noticed how
important it is to test often.
Each time I made a small
change, I had to test it to
make sure everything still
worked. Small mistakes like
forgetting to set the correct
collider or not adjusting the
axis could cause big problems.
Testing regularly helped me
catch these issues
early.
Comments
Post a Comment