Categories
Year2

2022/2023 Virtual Trajectories

Course leader: David McLellan

Course Tutor: Herman Ho

Ronger Huang(Rosaire) Virtual Reality Year2 Student

HIDY KITTY

*Concept & Research*

This will be an Art game for players to feel life with a cat and provide a feeling of warmth and lovely and healing and so on. The shining point of this game would be the lovely cat and the beautiful environment settlements with chill music and stress-releasing sounds

The initial positioning of this project is a pet interactive experience game that can heal people’s hearts, so in the conception process, before the plan is implemented, I will not add a checkpoint mechanism and player-level mechanism to this game. On the contrary, I will work on scene production and aesthetic conception. More designs. Therefore, in the eyes of the game designer himself, the satisfaction of the player’s visual experience after entering the game will be my first goal to achieve. According to the meaning of the game and the understanding of expressing emotions, a colour that is biased towards pink and full of girlishness has also become the basic colour, and the modelling style that is cute and can capture the player’s heart is also determined by this. They can be unrealistic The unreality reflects the warmth of the game, so the modelling style will be a low-pixel low poly style with multiple rounded corners.

Playing with cats

Like all mammals, cats play when they are young and continue to play even as adults. Play is a complex learning activity that helps kittens develop social bonds and helps hone physical and mental skills. Plus, your cat enjoys playing, which is why adult cats are still keen to play. You can spend many happy hours watching your cat play. Watching cats play is one of the most enjoyable pastimes for cat owners. There are three forms of play in cats, although it can sometimes be difficult to tell them apart.

Cats that are kept indoors a portion of the time are less likely to be relinquished than cats that are kept outdoors (Patronek et al., 1996). In an effort to increase life spans, minimize predation by cats on birds, and decrease shelter relinquishment, animal professionals advise that domestic cats be kept indoor (AVMA’s Animal Welfare Position, 2014 and Humane Society of the United States Safe Cats Program, 2005). It has been reported that 35% of the owners keep their cats indoors all the time (American Bird Conservancy Cats Indoors!, 1997), 56% keep their cats inside at least part of the day (American Pet Products Manufacturers Association 2003-2004 National Pet Owners Survey), and 2 of every 3 veterinarians encouraged owners to keep their cats indoors (Humane Society of the United States, 2005). Although disease risks have been evaluated for indoor cats, (Buffington, 2002), evaluation of the behavioral wellness of an indoor cat has not been adequately addressed. In comparison with the outdoor environment, an indoor environment is often predictable and unchanging, which may result in stress and inactivity in the indoor cat (Rochlitz, 2005). An important element in the assessment of behavioral wellness of indoor cats is information on what owners currently provide as enrichment for their indoor cats and to evaluate their benefit.

As the area of enrichment for indoor domestic cats continues to be explored, this assessment of toys and activities used by owners in the home provides information regarding several aspects of the environment of the indoor domestic cat in this sample population. The results obtained indicate that many cat owners may not know what toys and activities are available for enrichment of feline environments and may not know that advice and assistance is available for behavioral issues from

Strickler, B. L., & Shull, E. A. (2014). An owner survey of toys, activities, and behavior problems in indoor cats. Journal of Veterinary Behavior, 9(5), 207-214. https://doi.org/10.1016/j.jveb.2014.06.005

Picking, hitting, and tossing small objects is how kittens learn how to deal with prey. During such play, they develop survival skills if they need to fend for themselves. You may see your kitten stomping on toys, turning them over, and circling around them as soon as they hit the ground—a behaviour that mimics the natural instinct of subduing prey in order to hunt. Object play teaches a cat how to perceive the world and the things in it, and tells it what is animate and what is inanimate. He might jump up from the toy as if startled by a poisonous ray emanating from the toy and bask in the joy of discovering something new.

A simple basic theory of play is also derived from this, especially cats that are kept indoors especially need company and play. However, once the owner who can accompany the cat to play in daily life goes out or is not at home, the cat’s sense of security will be affected. It will also decline accordingly, which is inevitable, because for a human being living in a modern society, work and social interaction are undoubtedly important factors for livelihood and life, so it can be concluded that the theme of this game will be It expresses the fact that cats feel lonely and need companionship.

Game Style

Pictures based on healing and cuteness are undoubtedly an important source of inspiration before I start production. This inspiration can not only be used in model making and environment design but also promote ideas.

These are the images I found online that could help me to come up with the whole image of my game and therefore start the basic design. All of them are creamy, rounded and simple with 2D-styled modelling techniques, but for the game, in 3D it would be quite awkward to let the VR gamers see everything around in 2D due to the common discomfort reason of motion sleekness. So it will only provide ideas but not applications.

Existing references

According to the main concept decided before, related research on games that already exist on player-cat interaction or cat behaviour-based logic should be done, therefore. Here are the references:

A game for pure cate people
seak and hide-based cat game
The most popular cat game currently

These games are all cute or experiential games for cat lovers, including the first example with strong ornamental value. Players mainly experience the cuteness of cats through rich pictures and paintings, as well as some simple animation works; Or it is about finding cats hidden in complex buildings centred on the player’s search for interaction, or making the player become a stray cat to experience the secrets and emotions in the cyber city that cannot be observed from a human perspective.

Conclusion

According to all the research and thinking above, a preliminary model of the game has been formed in my mind. This will be an interactive game with cats as the main body, in which the player adapts to the cat. The cats in the game will be aloof but still cute and wait for the correct feedback from the player to give a corresponding reply. During the whole game, the player needs to try to guess the cat’s psychological activities and cat’s emotional assimilation.

Why VR?

Just like the conclusion drawn in the previous section, this game based on the cat’s emotional expression will not give the player too much sense of presence and does not require the player to think too much in the virtual world so as to reduce the influence of motion sickness. It will be the most suitable work for players who enter and exit VR games that this game can achieve under the current technical performance of virtual reality and the range of public acceptance. Its special feature is the biggest advantage brought by the conceptual design based on relaxation and environmental experience. Considering that most people will not easily adapt to the virtual reality environment, this simple game that does not require too much thinking will arouse the interest of players. Improving it as much as possible is also a great tool to promote VR games to the public. Compared with the discomfort caused by moving in the virtual world, a game that has made more efforts in environmental design will appear more friendly.

Therefore, the sense of experience has become particularly important, and the most decisive thing is the design and rendering of the modelling. Therefore, a modelling style and system that cannot be too close to reality to reflect the cuteness and try to bring the player into the cat’s emotions are required. However, only the virtual world can have the possibility of being close to the real experience. Compared with the 2D screen, the visual impact and experience of the 360-degree surround is the game platform I need. If the game I made is only displayed in a flat dimension, it will greatly limit my main purpose of expressing and expressing the cat’s emotions.

There’s nothing cute and loving that touches your heart more than being real and close to you

Ronger Huang

Design & Prototyping

Apartment structure research & design.

loft is a building’s upper storey or elevated area in a room directly under the roof (American usage), or just an attic: a storage space under the roof usually accessed by a ladder (primarily British usage). A loft apartment refers to a large adaptable open space, often converted for residential use (a converted loft) from some other use, often light industrial. Adding to the confusion, some converted lofts include upper open loft areas.

In British usage, lofts are usually just a roof space accessed via a hatch and loft ladder, while attics tend to be rooms immediately under the roof accessed via a staircase. Lofts may have a specific purpose, e.g. an “organ loft” in a church, or to sleep in (sleeping loft). In barns a hayloft is often larger than the ground floor as it would contain a year’s worth of hay.

*Modelling process & outcome*

The project started with modelling a simple second floored apartment. Several pinky and clean colours are chosen to represent the cute style of the game applied on both walls and items of furniture.

The preliminary construction of this loft-style apartment strictly refers to the basic settings and interior design of modern flats to achieve a standard close to reality. At the same time, the low poly 3D model reflects the sense of the game and a cute and lively design style emerges.

The cat’s model was taken from the sketchfab.com website with animation applied; the models of interior designs were partially taken from the free model website and partially by my own hand. And the design

Colour used

Prototyping

*Function follows Form*

This specific design of my room space is basically followed with a hand-drawn draft of a popular Loft apartment design, as for modern apartments, this kind of space was used by most of the teen properties holders to create their dream home, in response to this trend I designed the space with the feelings of a modern, dream, warm and lovely place of home.

Some of the details were changed during the modelling process to make the game to be clearly shown as a Cat interacting simulator, an over-decorated apartment might be too much for the player to be focused on the cat’s movement, so I tried hard to keep it as simple as it can be with the modelling style of low poly furniture with very few colours applied. Therefore basically the functions and forms are

Game logic & Storytelling

After completing all the steps of modelling and layout setting, I tried to present the running logic of the game with a simple mind map. This kind of mind map in the form of handwritten pictures can allow the author to think and consider as much as possible during the writing process, and at the same time, it can also clarify the order of things and how to design the plot in a simple way. Easy to understand and profound experience for players. This can also better show the thinking process and the state of writing at that time. It is a primitive, simple and rough expression, but it is full of delicate thoughts and soft brushstrokes.

The above-mentioned pictures are basically theoretical presentations with strong logic in the form of text. When it comes to storytelling, I also use hand-painted methods to express the cat image and behaviour initially formed in my mind with a brush. come out. As a cat lover with many years of experience in raising cats, I have gradually been able to understand cats’ psychological activities through observation and research of living habits during the few years of getting along with cats. This is the starting point of my entire project. source of inspiration. In order to closely combine the cat’s psychological feelings with the player, I designed a complete storyline for this.

In the process of narrating the story, the behaviour of cats is undoubtedly an important factor that can reflect the authenticity of the game. In order to be closer to the behaviour of real cats, I specifically refer to the usual behaviours of two kittens raised in my own home. One of them is two years old and the other is only one year old. At the same time, their breeds are different. One is a normal-sized British shorthair blue and white cat, and the other is a Munchkin short-legged orange-white British shorthair. Mao Mao, their personalities are also different, which just improves the variety and authenticity of the reference.

The above videos and pictures are evidence of my interaction with my cats in my daily life. The source of my inspiration and creative foundation comes from their two cats. In the process of interacting and communicating with cats, I can deeply understand Although the emotional communication between humans and animals is very simple and crude and basically based on food, cats may be more straightforward in most cases than their interest in people, but in In the process of being together day and night, I can also feel their anxiety and loneliness and feel sorry for them, so the emotion I want to spread through this game is this unique and charming relationship between people and cats. I want to Through this game, people who have no experience in raising cats can also experience the fun of interacting with cats, and hope that people with experience in raising cats can pay more attention to the feelings of cats.

Movement design

This game will be an experiential game with animation as the main form, so the difficulty setting of the game and the interactive design of the winter vacation does not need to be too complicated.

According to the root designed for a cat to run, the running action should correctly follow the lines drawn and apply the unity character movement function. Also, this should be synchronised with the cat’s moving speed and length of feet steps.

And according to the tutorials given, I need to create cubes at the right position corresponding to the picture I draw in each path separately.

In order to move the cat from one point to another point I put several position values on updata to make a smooth movement_1. But during the research process, I also found several alternative methods to move the object (character or cat). One of them resulting an unnatural movement but with simple coding contents, which is editing the position values of ‘gameobject’ directly, and another is changes made by the animator instead which implies the several keys with different positions complete the move, but in the case that I’m doing a lot of animation on the cat itself so the last method would not be the best to choose.

Although the coding language used in the processes mentioned above is quite simple and easy to be applied to make the cat’s moving path more complicated to make it closer to reality, a well-coded sample found in Unity Demos is quite suitable for this case. The original finder of this specific part of coding said: ‘This is coded and presented by the Unity official website in their coding demos.’ however most of the coded scripts provided by Unity officials are not friendly to all fresheners new to C#, so the blogger shared the most important part and posted them for easy use.

This specific coding allows me to control the cat’s moving path by coding a Waypoints script and a Follow script with several GameObjects (cube) to refer to the separated points inside the path design.

According to this particular script, my game complexity can also be improved accordingly, because this script allows me to add enough invisible squares to represent dense movement routes, compared to the first script written method Due to the limitations of creation, this special function and expression can make the main body of the game, the cat, have more flexible and vivid movements, so it is closer to the real cat behaviour, and it can also improve the player’s experience. The complex and flexible movement route will also bring corresponding difficulties in the subsequent production while it is in operation.

Cat’s Animation

As the mindmap shows, my animation on the cat needs 5 different statuses to change with the player’s action —- “Stay”, “Run”, “Play”, “Eat”, and “Run fast”. And I’m planning to do these four more animations through Maya but the thing that happens is my AutoDesk account doesn’t work anymore. Therefore, I found a cat animation package online with several movements such as ‘smelling’, ‘digging’, ‘jumping’, ‘running’, ‘eating’, ‘idel’, ‘punch’ and so on, but an important preview of that animation is needed and some of them are not suitable for some occasions, so I spent several hours on reviewing and adjusting the details for further use, what changes I made were mostly on the animation window adjusting the rigged boy in order to make movements looks smoothy and somehow make the transition works easier to manage.

As shown in the diagram above, the yellowed sections are preset animations following the game’s logic claim, so the following traditions between each movement need to be claimed and adjusted to a proper speed and timelines. The basic interaction process is claimed as —- cat runs and stops in front of the cat poler — pole — jumps as the right ball is attached — punch at ball — runaway.

After collecting and integrating this series of cat behaviour animations, based on my game design concept and the description of the cat’s movement trajectory, a cat can stop moving at the top of the terbium and interact correctly with the player. Later code that can resume the move is therefore needed.

According to the analysis of the underlying logic, the two points of “stop moving at the designated place” and “resume movement after the corresponding item touches” can be compared with the invisible square used to mark the place used in the process of setting the cat’s moving track. A good tool for practising ideas. By assigning “tags” to different marker blocks, they can be referenced in the code to refer to special places that cats will pass by.

From the example of “Point B”, I hope that when the cat passes through point B, it can stop following the movement of the route and the animation called “run” and start the animation called “pole” at point B. At the same time, Point B is that the “pole” action of the cat in front of the cat climbing frame also interacts with this object in the environment. Therefore, a logic that claims “when Cat is triggering the point” then “stop movement” is based on “OnTriggerEnter” and “OnTriggerExit” where the cube is the place the collision happens. For the animation changes in this case a technique called “SetBool” is used to apply conditions that control the cat’s animation plays where codings claim whether “true” or “wrong” provides the biggest functional work that if the “SetBool” is true, a corresponding animation will play afterwards and it could be defined with animation transitions and being adjusted with speed and length. And if I want the cat only activated by a specific object applied to it, then the additional condition should be added when claiming the term “if()” with the sign “&&” following “other.tag”, and I can set the object under a unique tag onto it to let the conditions completed. Also, “ResetEvent” is needed in this case for resetting the original running status with the cabin where the corresponding “SetBool” goes to false.

The first step is also the most basic, the integration of the animation of the cat’s action has come to an end here, and the next step is the connection between the more expressive and more difficult animations. This step is particularly important because if there is a gap between the animation In other words, if the connection speed is not matched enough, the cat’s movements will not be coherent and the authenticity of the experience will be reduced. This will be a very difficult and important link.

This transition is tagged as set bool “PointB_Stop” which let the cat stop running and start poling, as shown in the picture, the “A_run” animation was looping before the cat triggers into the point B and the “A_pole_loop” animation is applied inside the looping which requires a correct timing of enter action to avoid the solid or fake movement result, so I did a repeating work to find the right position for pole animation to be transformed and find this specific length of transition at the end.

This picture shows the transition in set bool “ResetEvent” for the cat to continue to run, and there are no animation clips attached to it which means that the speed applied to this process (two transition arrows and one space event) should be extremely fast to avoid the blank area of animation, so I set the speed of “ResetEven” as 15 and the transition times to be less than 0.001.

Another challenge in animation is the movement that represents the cat waiting for its owner to come home which requires cat animation of sitting and crying but without any position movements following the script “Waypoint.cs” and “follow.cs”, in this case, the cat’s animation will be “B_idel” and “B_cry” and looping between these two clips, once the cat’s mesh collider is triggered by the tag. player, the set bool “ResetEvent” will therefore activate and push the animation to the next stage, but in case we are not been taught the use of “Blend Tree” in unity animation creations, so I was not able to do my work inside a blend tree system and a simple way of creating transitions between each animation clips with the main clip in next stage (“A_run”) was the best solution to make sure the animation will change whichever animation clip is playing at the time player triggers.

Player interaction

Sound Play

Also in order to improve the authenticity of the game, I added the function of cat sound feedback in the player interaction settings. For the function of sight, I collected some sound sources of cat calls in different moods, including “no Patience”, “Want to play”, “Thank you”, “Angry” and other elements, these audios will be played under some specific interaction results, such as the player chooses the wrong toy or the player chooses the correct toy, the player approaching and so on.

catcry script

In my game, the player needs to have a simple interaction with the door of the apartment, that is, after the player enters a certain range of the apartment door, the door opening animation set in advance should be played, and when the player After moving out of this set range, the animation will be played in reverse to represent the action of closing the door.

Trigger zone

It will not be difficult to practice this idea according to the examples described in the previous courses, but it should be noted that every step is indispensable, even a small placement action will become the final script The determinant of whether it is really running, so it is very important to check for bugs and check the corresponding operation details after each new script is written, even the steps that I think have been completed should be checked meticulously.

Transition between scenes

This is my last scene with the other space that represents the cat’s inner world which is Beautifull and warm. This scene is less realistic than the previous environment scene because it represents the inner world of the cat, so I found a more dreamy scene modelling with its own lighting and environment rendering effects to better reflect The unreal nature of the scene.

This conversion run script is exemplified in the latest scene-switching engine instructions on the official website of unity. Before this engine was launched, it was very cumbersome to switch scenes and impose trigger conditions on this action. It is a complicated process, but this engine solves this problem very well, and game producers only need to use a few lines of code to realize the switch.

But it should be noted that all the scenes entered in the scene-switching script should have corresponding names and be placed in the Build Settings in advance for the use of the script. I once forgot to drag the scene modelling into the settings As a result, the script does not work.

Atmosphere

Additional Environment design

According to the apartment design mentioned above, I set a huge Window inside the living room area corresponding to a Loft-style room space design, therefore a detailed environmental setting on views outside the window becomes important afterwards. In order to let the player be able to see the environment background, I made several light transparent glass materials to make sure it looks real and a unity asset package called ‘HDRI’ settlement will be needed in this case, I found HDRI pictures in 2D style paintings and several city scenes to respond the time settings inside the game. As I set the player (cat owner) will be back home at 17:00 to 20:30 in the evenings, all my selected HDRI pictures should be at night with city lights and dark clouds, and in order to make the game more immersive for all players, two different weather background with raining voices and clouded night settings would be a good reference for this requirement.

This also requires the related background music with a raining sound in case the environment is raining. I chose a few Lofi-styled pure instrumental kinds of music as my background music and a pack of raining sounds corresponding to the rainy day. Here are the original youtube videos.

Background music 1
Background music 2
Background music for the last scene

Playtest

play test inside
playtest outside

This test went much smoother than I expected, but it also helped me figure out the problem of scene switching. This problem was effectively solved by modifying the settings of Directional lights in the later stage.

Critical reflection

In the entire process of game production, from the initial stage of project establishment to brainstorming to actual operation to running test and then to the end, this whole process is a test of our basic ability and accomplishment in game design as a beginner. It is not just a process of transforming game concepts into lines of code, but more of a test of how to choose a method, how to pay attention to feasibility, and how to run it successfully in the implementation process. None of these steps can be called Simple and easy to do, even a simple copy and paste will have unpredictable problems during operation, and what we have to do is to better avoid or better solve them.

From the initial model design, the problem of model size control and matching with the size of the player model in the later XR toolkits was not clearly recognized by me from the very beginning, although the whole process of modelling and placing design was not difficult. It’s not too cumbersome, but this step took me more than two weeks of time and energy when I forgot to save again and again or Unity suddenly crashed. However, even so, the final model did not fully meet my psychology. It is expected that the choice of colour is one of them. Although the deviation in the initial colour selection will not appear so inconsistent after adding the superimposed rendering effects such as lighting and ambient light in the later stage, the overall effect is consistent with the original reference picture. It still lacks some warm yellow elements and the use of materials with a strong sense of wood. Maybe if the rendering test is performed at the same time when the model is initially built, this problem will be effectively avoided. But there are also things that satisfy me in the whole process of finding and using the model, such as the selection of the cat model. Although the model I use is not the closest to the real cat, its “unreal” characteristics are just in line with my scene. The modelling styles are consistent, neither makes one of them too prominent nor suppresses one of them too much, on the contrary, they present a complementary and unexpected effect. There are also multiple animation templates for the animations that come with the cat model. Although they are of various types and their names are not very clear, I need to go through a lot of previews and screenings and even label them one by one with easy-to-understand labels before using them. They will cover all the assumptions in my mind about the behaviour of cats and also satisfy my animation design needs for cats to the greatest extent.

I really did a lot of mental preparation before I started writing script codes, because this is an area I have never touched before, and before I started, I put more effort into overcoming my inner fears. In the end, my steps started by reviewing the content already mentioned in the class, but what is unpredictable is that without accurate goals, my Xu Xi’s efficiency is not so efficient, so even if I try my best before starting After reviewing all the course content, the content that I can absorb and accept is not as much as I imagined, so I finally chose the method of looking for specific tutorials according to specific needs. During the entire research process, I also browsed the Internet. Many complex and interesting logic writing methods include the WayPoint script that I finally adopted. This is the essence extracted by a netizen from the code example officially released by Unity. It can accurately realize the irregular path I want the cat to pass through. exercise needs. However, the subsequent script code to make the cat follow the path was the most difficult part of the whole production process for me. Problems I encountered such as:

— Avoid the player entering the stop point before the cat and top the cat by accident.

— How to use the Set Bool tool correctly without bugs?

— How to let the cat sit in front of the door before the player enters?

— how to attach sounds on the cat with different waypoints? etc

And because I am a beginner with zero foundation, I will have more problems in understanding script logic, but after reading over and over again with the intention of trying to understand and trying to succeed after failure, I gradually figured out the way, What I didn’t expect was that in the later stage of the project operation, I could already achieve most of the effects I wanted to achieve by changing the basic code writing template. Although my use is still very rusty and the logic is not very clear, even though It is a lengthy and unsavvy approach, it is also a testimony of my efforts and progress. This will be the biggest truth I have gained in the whole production process. When it comes to the post-production process, although I feel that I have learned a little bit, I still make some unexpected mistakes. For example, when making the animation of opening and closing the door, my script writing has no problem at all, but there is a fatal error in the test because the animation cannot be played at all, which brings me a lot of frustration, but in one pass After carefully reading and comparing the tutorials, it dawned on me that I wrote the script and didn’t apply it to our model correctly, so my previous struggles and frustrations were solved so simply and idiotically.

As I mentioned before, the more you get to the later stage of the project, the more you become proficient in the principles of operation, and the more you will find that there are really many decisive settings and changes that I failed to do in the early stage. If I had such Proficiency and understanding may be able to complete the project more in line with expectations. If I want to develop my game at a deeper level, I will choose to use more complex cat movement routes and more diverse and realistic animations, and I will also set up more in the room for players to interact with. Items to increase the fun of interacting with cats. In the existing foundation, the interactive feedback I set for cats can only stay on whether the cat continues to move or not depending on whether the toy chosen by the player is correct, but if it can be done better, I will Different toys will be selected corresponding to different sounds and animation effects until the correct toy is applied to the cat before the movement script is triggered. I may also set the environment more realistically, and set up many cabinets or doors and windows that can be opened interactively for cats to hide to increase fun and playfulness. At the same time, I will use the different moving routes I designed in different scenes. Changing some hidden conditions to make different scenes trigger playback can increase the player’s thinking during the game.