Team: Yunhao Cao(@realquantumcookie), Martin(Yuqi) Zhai (@yuq1-zhai), Jacky Kwok(@jackykwok2024), Athena Leong (@athenaleong).
We have a video accompanying this milestone report. We also have the slide deck presented in the video.
- We have determined to simulate a piece of cape (cloak) as our goal inside the minecraft environment that is physically accurate, which is achieved mainly by an extension of Project 4: Clothism onto the cape.
- This is due to the fact that Minecraft Modding API is extremely complicated and getting the information about the position of the cape already took us a lot of time to write code with.
- We have familiarized ourselves with the Minecraft Forge API and settled our project to be based on Minecraft version 1.19.3 and 44.1.23. We have finished the setup for implementing the piece of cloth of our choice.
- We wrote a new renderer that replaces the default renderer for the cape (named as CapeRenderer as the interface, ForgeCapeRenderer as the class implementing the interface). This allows us to customize the rendering pipeline through designing a different mesh and manipulating each mesh through poseStack (a class that is used to determine the physical location of each mesh of interest).
- In the original Minecraft game, a cape is simply a piece of blocky mesh. We wrote our customized mesh that divides this whole piece of blocky mesh into a grid of 16×10 cubes in a row major order where each could be manipulated through poseStackModify function before we pass them into the real renderer.
- After finishing the render injection code, we went ahead and created an abstract class for Physics calculations of the cape. To do a sanity check on the renderer we wrote a vanilla version of the "physics engine" (determining the physical location of each mesh we created) through transformations mainly through rotation with respect to local coordinates and ease sine functions that will make the result more visually-appealing (as opposed to pure linear interpolation).
- After finishing the vanilla "physics simulator", we wrote a half-complete Physics simulator (have tested standing still). Further testing is required as the physical simulation part is not finished yet.
- This simulator have built-in point mass and spring system with structural, shearing, and bending constraints in place just like we had in Project 4.
- So far, we have modified our schedule as needed, to focus on the more important task at hand
- Since there is no wind available and the collision detection is really difficult to implement in the minecraft world with a piece of cape and extensive time needed to implement the shaders, we will adjust the cape length to mainly have it interact with the player alone and focus mainly on reproducing a more realistic cape than a piece of hardboard on the back of the player.
- The basic setup, understanding the Forge API, and framework construction took more time than expected, primarily due to lack of API documentations and tutorials for many mojang official functions and variable bindings.
- We have finished the basic portion of the project and during the next week before the final presentation, we will add in the physical simulation portion, and have our renderer properly working with the physically simulated cape.
Schedule:
Week 1:
- Familiarize with Minecraft Forge API and mod development
- Set up the development environment and figure out how to test and debug our codes for the cloth
Week 2:
- Add meshed cape to the player model
- Vanilla simulation of the cape
Week 3:
- Handling mass-spring systems (self-collision, wind, etc.)
Week 4:
- Possible addition of implementing a smooth vertex-controlled mesh of cloak instead of a grid of cube meshes.
Webpage hosted at quantumcookie.xyz/Opensourced-Study-Notes-Berkeley/CS184/final-proj-milestone/