Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

Course Reflection Amber Zhang

 Learning about the concept of presence
After I made the demonstration via the timeline function of Unity, I tried to set the cameras’ animation on the timeline firstly to guide the players’ experiences with fixed view angles and specified time triggers. Then, I summarised the three modes and realised the learning from the three different modes:
The three modes of participation:
1.1 setting the fixed cameras to offer fixed perspectives for players
1.2 first-person perspective, but the triggers were made by the fixed animations and visual effects and guiding the players’ attention by music. However, the players could not control the view angle and these triggers; they could participate via the fixed settings and triggers.
1.3 Virtual reality. The scripts should be considered the ideal idea to recall the triggers via player scripts. Players are the main characters and participate in their visual experiences. They could create their participation path to identify the animations and interactions in Unity. The VR’s remote buttons could evoke all the interactions, and the decisions are made by players rather than solid settings.
The thinking and learning from the three interactive ways
I reviewed the project’s goal, which I learned at the beginning of the semester(dmsppresence23,2023), which is to build the embodiment of the concept of presence by digital media, and I re-evaluated how the presence could be. After I completed the demonstration of the enhancement of the project, I realised the three modes of participation might lead to different impacts on players to explore the entire project. Virtual reality could offer more visual effects to players for the visual sense perspective. Also, virtual reality and remote controllers and work with the scripts might contain an obviously positive way to assist in achieving the goal of presence for the interactions and individual experiences because players could decide what they would encounter in the virtual forest and how their experiences would be.
Sense of vision
I think virtual reality (VR) could be a positive way to enhance virtual world participation, which could assist with interactions, explorations, and a sense of vision. Paes et al. (2021) discussed immersive environments with non-immersive environments, which mentioned VR experience. They discussed the hypothesis of IVR (immersive virtual reality) with users’ perception of the concept of presence. And the results expressed that the exam results are the IVR presents the better realistic perception experiences. Meanwhile, the IVR could offer better outcomes for users to sense the virtual space more accurately(Paes et al. 2021). And after participants wore the VR devices to join the project on the presentation day, I noticed that VR technology could offer more cognition and interactions for players to explore even if the same digital environments.
Technology learning
Oculus rift
The difference between these two VR device versions might lead to different user experiences for the project due to the multiple rendering way and sensor adjustment. Even if this project might consider mainly using the Oculus Rift as the primary VR device, and the sensors were required to adjust and reinstall the package in Unity if a switch laptop was necessary.
Future Improvements
The interactions in Unity
I think it might be considered to improve this project to add more interactions in the future. Based on the concept of presence, what I learned from this course: how to improve interactions and engagement might be necessary for presence. It would be better if I could guide and lead participators to engage and involve more.
The personal virtual exploration in Unity
I think the current version might not offer options for the participants’ own explorations. The two versions, the one before the presentation and the improvement one after the feedback, might not achieve the individual exploration goal. The players’ virtual role might be thought of as one primary reason that the perspective might be solid from a tree view. However, just like the feedback, the tree branch might also move back. Being a virtual tree to explore a tree view might be explicit, and there are also various possibilities to explore.
The virtual reality(VR)
I think it is potential that adding more advantages to virtual reality’s functions might bring immersive environments experiences. Virtual reality is an advanced technology that brings people to join the virtual world with more visual sense. Meanwhile, it could get remote to guide players to choose and interact inside the virtual world with more immersion. This project now uses a VR device that could indicate players to better immerse in the forest and storyline. However, I think it might be better if this project used more virtual reality advantages than now; there are no interactive functions from the remote. It might be potential to add more remote options to let players select a tree or interact with animals.
References:

Paes, D., Irizarry, J. and Pujoni, D. (2021) “An evidence of cognitive benefits from immersive design review: Comparing three-dimensional perception and presence between immersive and non-immersive virtual environments,” Automation in Construction, 130, p. 103849. Available at: https://doi.org/10.1016/j.autcon.2021.103849.

Background (2023) dmsppresence23. Available at: https://blogs.ed.ac.uk/dmsp-presence23/ (Accessed: April 26, 2023).

 

Various of Seasons

Based on the feedback from the presentation, I improved several suggestions for this project. Firstly, I tried to revise the multiple seasons display issue due to some feedback expressing the storyline was slightly confusing. As the first view of the tree, some feedback suggested building the precise details to guide players to understand from the tree perspective. Therefore, I modelled flowers and plants in Blender and created animations by shape keys. The primary goal of these plants I made was for the spring and summer, which I might think to insert more vivid growing plants into the virtual space to guide more immersions. I modelled these plants, added multiple shape keys to each leaf and petal, and then added the action editor to modify the bloom and growing timeline for each leaf and petal. As a result, the individual plant had a separate animation. I exported the fbx models with animation from Blender to Unity and then used the Unity animator controller to trigger the plants’ animations.

Models

 

Spring

I made the change based on Xiyue Huang’s original skybox controller function and adjusted the timespan, which displays 60 now. And I created one new skybox to replace the skybox3. I changed the skybox1 and skybox2 previous skybox settings. Xinyue Lin created several different skyboxes, and I still used the two from her creation and used the new I built because I considered the sky colour tone might be different for the three seasons.I added the grass growing fbx and animation and most of the flowers fbx and animations in spring for this project. The grass would start to grow after the rain, and I revised the skybox change duration, which would change every 60 seconds.

Summer

In the summer, I planned to improve by using particles here and the original animal animations were made by Jiayao Wang. But I could not trigger the animals’ animation and did not figure out why. Therefore I mainly added the original animals’ fbx and used mostly VFX Graph to create the summer’s vivid atmosphere.

Winter

In the winter, I improved the snow effects and enlarged the fire area and time duration to create visual effects for participators to understand earlier from “the tree’s perspective. Meanwhile, I added smaller trees with leaves growing animations to guide participators to comprehend the nutrition transited to the smaller trees, which led, the more leaves growing. ¬Besides, I added the snow leaf shader graph and snow shader graph. The snow leaf shader graph is built on Xiyue Lin’s leaf shader graph. I created the top snow and ice effects to add to the tree’s leaves to make the scene to be recognized easier. And the snow shader graph is used to cover the other components in the scene to look at the snow particles.

Snow leaf shader graph

references:

learn how to make a snow shader from:
https://www.bilibili.com/video/BV12S4y1X7ux/?spm_id_from=333.337.search-card.all.click&vd_source=ca058f8010cad699640c32ba92c0f911

Smaller tree growing animation inspiration coming from:
https://www.bilibili.com/video/BV1mu411X78g/?spm_id_from=333.788.recommend_more_video.2&vd_source=ca058f8010cad699640c32ba92c0f911

Learn how to make the plants growing effects in Blender by shape key from:
https://www.bilibili.com/video/BV1aY411G7bk/?spm_id_from=333.337.search-card.all.click&vd_source=ca058f8010cad699640c32ba92c0f911

 

Particle Systems

I created three particles for the group project: fire, snow and rain. I used two primary software for the creation process: Unity and adobe illustrator. The fire was made from a drawing from adobe illustrator. I drew the 2D flame material with colour gradients for the fire particles and then added it to the renderer function in particle inspector in Unity to make the real fire effects. Then, I adjusted the other multiple conditions, such as 3D start size, emissions, shape, and velocity over a lifetime.

Fire

Snow

For snow particle creation, I made the different start lifetime and speed. I also changed the emission to a large amount and different shape conditions and colours over a lifetime to make the snow shape. Meanwhile, I modified the velocity over life and the collision; these two are the most critical factor for snow creation.

Rain

And rain effects, I constructed different start colours and revised the emission, shape, and velocity over lifetime and collision conditions. Besides, I learned and implemented that 3D start rotation is one of the essential factors for building the different shapes of particles.

visual effects made via VFX Graph and Shader Graph

I created more visual effects using VFX graphs and shader graphs in Unity and Adobe Illustrator to complete more gorgeous effects for this project. According to the storyline of this project, the various seasons might contain various creatures and visual influences, and I considered the VFX Graph could achieve more high optical achievements to guide the players to be immersed with better visual quality. Therefore, I created different VFX shaders for this project: dandelions and glow-worms for the spring season and magic fire and magic fire around for the summer season. Besides, to achieve the invented unique effects, such as the dandelions pattern, I added a blank shader graph to assist in making the 2D material that I designed and created in Adobe Illustrator transparent for the visual effects. For each VFX Graph creation, I adjusted the spawn, initialize particle, update particle, and output particle quad with the factor such as vector, float, colour, and texture that I created for these changes.

references:

Learn fire effects from:

Learn how to make rain in Unity:

Learn how to make particle system for snow effects in Unity:

The dandelions drawing inspiration came from:
Photo by Johannes Plenio: https://www.pexels.com/photo/close-up-photography-of-dandelion-1133498/

Learn how to make magic fire, magic fire around, dandelions, glow worms in Unity by graph VFX:

Virtual Scene Build

Modular

I have utilized a modular approach to construct scenes, incorporating objects such as trees, rocks, and other elements. Initially, I created a series of one to three models, each possessing unique forms. These models were then transformed through the modification of their size, aspect ratios, rotations, and other similar variables, resulting in a diverse array of models. This methodology significantly increases the efficiency of scene creation and amplifies the complexity of details incorporated within the scene, rendering it more multifaceted and visually engaging. This modular approach further enables the prompt implementation of updates and modifications to the scene, thereby augmenting its versatility and maintainability.

Lod

I have used LOD to optimize rendering performance and improve the game performance by using simplified models or materials for objects that are far away from the camera. To achieve this, I first created three different detail levels of tree models in Blender. Then, in the Unity scene, I created a LOD Group component and attached the different detail levels of models to the component. Finally, I adjusted the distances between the different levels of detail according to the object’s distance from the camera. By doing so, Unity will automatically switch to an appropriate level of detail for each object, based on the distance between the object and the camera, which helps to optimize performance without sacrificing visual quality.

Lighting:Post-Process

I used post-processing effects, such as color correction, depth of field, motion blur, and ambient occlusion, to add various visual enhancements to the game scene. I also adjusted the color correction parameters, such as saturation, brightness, and contrast, to enhance the scene’s lighting and improve the game’s immersion and player experience. However, due to compatibility issues with VR, I ultimately decided to abandon the use of post-processing effects. Specifically, VR cameras cannot choose to render through post-processing effects, and rendering through post-processing effects may also affect the game’s performance and stability. Therefore, I decided not to use post-processing effects in VR mode to ensure the game’s smoothness and stability in VR.

 

 

Physical interaction

In addition to the virtual reality scene in VR headset, we will also provide some physical interaction for players outside the field. For example, some weather changes, such as rain and wind, or the interaction with small animals, can be realized through physical feelings. In this way, the virtual scene combined with the player’s own feelings can make them more immersed in the whole experience.

Rain

There will be changes of four seasons in the whole scene experience, and there will be weather changes such as rain and snow. When it rains, our team members will spray water on the players outside the venue, which makes them feel as if they are really in the rain.

Wind

When the scene changes from day to night, there will be wind blowing from time to time. Our team members will adjust the gear of the electric fan outside the field to bring players a real blowing experience.

Animals

When a little squirrel jumps to a branch, or a bird flies to a tree, our team members will pat the player at the corresponding position, for example, if we see a bird appearing on the left hand side of the screen, we will pat her her left hand, making her feel as if she was really a tree, as if there were really birds sitting on her branches.

Transfer nutrition

In this part, I mainly animate the growth of tree roots. The whole scene gradually brightens from pitch black. As a tree, the player can see that his roots are gradually expanding. The blue-green fluorescence represents the transmission of nutrients, and when the big tree is burned, nutrients and information will be passed to other young trees through the root system.

When the player looks around his root system back and forth through the VR headset, he will move along one of the growing root systems. With the extension of this tree root, the player will also switch to the next scene, which is the small tree that is being transmitted nutrition.

In Unity, I use the particle system to complete the animation of tree root growth, adjust the shape change of the root through the particle system curve, and control the growth speed and sequence of different root systems through the delay time.

After the player explores for 20 seconds on their own, I add an animation of the camera to follow the trail of tree roots growing, which allows the player to feel the nutrients being transported through the roots from the first perspective.

     

I use shader graphs to create the glowing effect of the nutrition, and give the ball a blue glowing material. I use the Sample Texture 2D, Multiply and Unlit Master modules in shader graphs, then adjust their connections according to the tutorial, and finally adjust the color of the illuminant.

Then I add animation and set the timeline of each small ball, in order to let them circulate along the root of the tree over time.

Video: https://youtu.be/yU4OwkgqeTw

Introduction

Background

This story depicts the life journey of a tree, from a seed to a towering tree, through the use of VR technology that allows the player to experience it from the tree’s perspective. These trees experiences countless day and night cycles and seasonal changes, some growing into centennial trees, while others dying due to natural disasters such as snow or fire. However, behind the tree’s death, there lie countless new lives and hopes. We introduced the concept of the “tree network,” which we believe represents the exchange and cycle of life. When a tree dies, its body returns to the earth and becomes a source of nutrition for millions of bacteria, insects, plants, and other organisms, injecting new vitality into the ecosystem.

In the story, the player experiences the seasonal changes and sees various forms of life in the forest, becoming the mother tree of the forest. Eventually, the tree dies in a forest fire, but before its death, it transfers its nutrition to other small trees in the forest through the tree network, allowing the player to experience the cycle and exchange of life. At the end of the story, the player is reborn on a small tree that has received the nutrition from the giant tree, becoming a new life. Through the use of VR technology, the player can immerse themselves in the connections and cycles of life, allowing them to better understand and appreciate the natural ecosystem.

The significance behind this story is to emphasize the continuation and inheritance of life. Trees represent the continuation of life, and their growth process highlights the complexity of interconnectivity between all things. Through the “tree network” concept, we emphasize the interdependence and interactive relationship between all things, as well as the unending cycle of life. Only by understanding the cycle of life and interdependence between all living beings can one fully appreciate the meaning behind the continuation and inheritance of life.

Wood Wide Web(Mycorrhizal network)

Mycorrhizal networks are intricate underground structures that are present in forests and other plant communities. They are formed through the interweaving of hyphae from mycorrhizal fungi with plant roots, creating a common mycorrhizal network (CMN). These networks enable the transfer of vital resources, such as water, carbon, nitrogen, and other nutrients and minerals, between connected plants. Scientific research has shown that mycorrhizal networks play a significant role in nutrient transport within ecosystems(Yuan Yuansong ,2015). Evidence that mycorrhizal fungal mycelia can link plants together in a network, and that this mycorrhizal network (MN) can facilitate fungal colonization or interplant transfer of compounds (Suzanne W. Simard a, Kevin J. Beiler b, Marcus A. Bingham a, Julie R. Deslippe c, Leanne J. Philip d, François P. Teste e 2012.).

Materails

I performed UV unwrapping on a 3D model in Maya and subsequently imported it into Substance Painter software to facilitate texture map creation. By utilizing the smart brush tool, I was able to paint and modify the textures, resulting in a material that is not only more realistic and lively, but also offers improved control over texture details and aesthetics.

The use of shaders

standard surface shader

I have implemented a custom surface shader in Unity that creates a basic transparent material, allowing for texturing with the _MainTex parameter and adjustment of transparency. The shader is set to render in transparent cutout mode, which clips out the transparent areas of the material and only displays the opaque regions. Additionally, this shader uses the Lambert lighting model and supports shadows from all types of light sources, achieving more realistic lighting for each pixel. This code has been applied to objects such as tree leaves, bushes, flowers, mushrooms, and other foliage in the scene, resulting in improved visual quality.

Shader Graph:The effect of tree leaves moving with the wind.

This code segment implements wind blowing and shaking effects on tree leaves using Shader Graph, including vertex animation and UV animation. Firstly, texture and color properties are added to the material, and double-sided rendering is enabled. The overall displacement of the tree leaves and the shaking of each leaf’s texture are achieved through node connections, where vertex displacement is implemented by sampling simple noise and adding a continuous changing offset. The size and direction of vertex displacement are controlled by adding wind direction, wind speed, and wind strength parameters. The shaking of leaf texture is achieved by sampling simple noise and adding a continuous changing UV offset, where the amplitude of the shaking is controlled by adding the wind speed parameter. Finally, the nodes are organized and saved to achieve the effect of wind blowing and shaking tree leaves.

Click the link to view the effect:https://youtu.be/NnMwJBNFO8g

Node: Texture

This node implementation facilitates the application of texture and color mapping on the material of the tree leaves, while also implementing advanced features such as double-sided rendering, alpha culling, and the blending of texture and color properties, resulting in the successful depiction of the tree leaves’ shape. By incorporating a texture 2D and color property, developers can gain control over the tree leaves’ texture and color, and by utilizing the node connection method present in Shader Graph, the texture and color can be effectively blended, and various parameters – including alpha culling and smoothness – can be fine-tuned to produce the desired outcome.

Node:Wind blowing leaves effect

This node implementation enables the effect of wind blowing and shaking tree leaves, consisting of two parts: vertex animation for overall displacement of the leaves, and UV animation for the shaking of each leaf’s texture. The vertex animation involves adding the vertex displacement to the vertex position to move the tree leaves as a whole, using the XZ of the vertex’s world coordinates as UV, and adding a continuously changing offset. A noise map is then sampled to obtain the vertex displacement in world space. The UV animation is achieved by using the XZ of the vertex’s world coordinates as UV, adding wind direction multiplied by wind speed and time, to obtain a continuous changing offset, thus creating the shaking effect of each leaf’s texture. Finally, the vertex offset is added to the vertex’s world space position, and the vertex’s world space position is transformed into object space using a transform node to achieve the effect of wind blowing and shaking tree leaves.

Node: leaf texture dithering effect

This piece of code utilizes simple noise and rotation nodes to create a jitter effect on the texture of the leaves. Specifically, the implementation involves multiplying the output of the noise node by the rotation amplitude, and then connecting the rotated UV coordinates to the texture node, resulting in the jitter effect on the leaf texture. The amplitude of the jitter effect is controlled by the wind speed, where the value of wind speed determines the strength of the jitter effect, and can be adjusted to control its intensity.

Shader: Grass

The paragraph describes modifications made to a shader used for rendering grass in a scene. The modifications include removing the wiggleOffset float variable, which enables the grass blades to sway within a range of negative and positive values, and adding two color properties, namely Top Color and Bottom Color, to the shader. The Vertex Color node is used to control the color transition. Additionally, a Main Light node is created by multiplying the Shadow Attenuation and Self Shadowing nodes, which respectively represent the grass’s own shadow and shadows cast by other objects. The resulting color is connected to a Sample Gradient node, which is adjusted to a half-deep green and half-black gradient. Another Sample Noise node is added and modified to a half-black and half-white gradient, which is used to mask the grass color and add to the shadow color. The final result is used as the base color for the grass, enhancing its lighting and color and creating a more realistic and visually appealing effect.

Node:MainLight

The Main Light subgraph is used to extract information about the main light source in a game scene, such as direction, color, intensity, range, and more. In game scenes, it is necessary to calculate lighting and shadows for objects based on the direction, position, and color information of the main light source. Therefore, the Main Light subgraph also includes a shadow map sampling node to extract shadow information from the scene’s shadow map for rendering and projecting shadows onto objects in the scene. The Main Light subgraph allows for convenient access to information about the main light source, resulting in more realistic lighting and shadow effects in the scene.

3D Models

Software: Maya, Zbrush, Blender.

Throughout the process of creating my models, I employed a combination of software packages, including Maya, ZBrush, and Blender. This integrated workflow allowed me to achieve higher levels of detail and realism in my models and to introduce more complexity and depth to my scenes.

After generating a basic stone model in Maya, I imported it into ZBrush to facilitate more detailed sculpting. I utilized a variety of brush tools to add texture and complexity to the model. For instances where twisted shapes were required for tree trunks and branches, I leveraged ZBrush’s ZSphere tool to define the direction of the branches before further refining their contours through brushwork. This approach offered greater flexibility and control over the final form of the branches and trunks and allowed me to add more texture and visual interest.

Furthermore, I utilized Blender to craft grass and other organic elements, including basic tree trunks. These models were incorporated into my scenes as environmental components, contributing to a more realistic and immersive setting. By enriching the overall composition with multiple layers of detail, I was able to heighten the visual impact of my work and provide a more engaging experience for viewers.

Trunk

I employed the Sapling Tree Gen plugin, which is Blender’s default tool for generating trees, to create basic tree trunks with regular shapes. By manipulating various parameters within the plugin’s options, including the height, radius, and taper of the trunk, I was able to generate tree trunks of varying shapes. Furthermore, I had the ability to modify the number and thickness of branches, as well as their distribution along the trunk, to achieve my desired results.

Leaf

To create a realistic leaf model in Blender, three small square planes with dimensions of 0.5 x 0.5 are utilized. These planes are combined to create the shape of a single leaf. To apply the leaf model onto a pre-made surface, Blender’s particle system is utilized.

By rendering the leaf planes as objects in the particle system, we can apply them to the surface of the model as a particle system. To do this, we select the “hair” option in the particle system and set the rendering mode to “object”. We then choose the previously created leaf planes as the instance object. This allows the leaf planes to be applied to the surface of the model in a particle form.

Additionally, different parts of the leaf model can be customized by adjusting the particle system settings such as random numbers, random number seeds, and particle quantity. This customization feature allows for the creation of diverse leaf patterns on the model surface, adding to the overall realism of the model.

Finally, I utilized Photoshop to create a high-quality material texture for them. The created texture was then imported into Blender, where I utilized shaders to apply it to the tree leaves. To create a more intricate material, I made use of Blender’s built-in node editor, adjusting the properties of the nodes to achieve a more captivating and lifelike appearance of the tree leaves, resulting in an overall more vibrant and realistic model.

Low Poly Animals

I utilize the LowPoly style to craft animals within my scenes. The unique aesthetic of LowPoly style prioritizes the significance of shapes and lines, as opposed to an excessive focus on details. I think this approach can assist in preventing the scene from becoming excessively chaotic or cluttered.

Animal animation

I am using Blender to create animations of animals. To begin, I add a skeletal system and associate it with the animal model. Subsequently, I enter the animation mode and utilize the skeletal manipulation tools to transform and animate specific portions of the animal model, such as rotating or translating bones. Once I select an appropriate moment in the timeline, I capture all the bone positions and rotations as keyframes, which allow for frame-by-frame animation adjustments. By iteratively creating additional keyframes on the timeline, I can progressively refine my animation until it is complete.”

Skeleton Rigging

Raccoon:https://youtu.be/wDre2ukTWVM

Bird:https://youtu.be/bApXLPFKpR0

Rabbit:https://youtu.be/qj6aOEaQ3RA

css.php

Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.

  Cancel