In this series of patches, I aim to create an interactive cursor that dynamically interacts with background objects within Max. Specifically, the background objects will alter their directions and colors based on my cursor's real-time position. I've developed four patches to progressively achieve this goal (see below).
This project was inspired by my research of immersion with the game music of《NieR: Automata》. I have incorporated a few soundtracks from the video game to accompany these patches, excluding the Civilizations ones (showcased above & demo below), for which I created the sound design myself.
╡STEP 1╞
I utilize my mouse's position data (Cartesian coordinates) to determine how the cursor rotates and points in the right direction in jit.world, employing the cartopol object.
〚soundtrack: Pascal, by Keiichi Okabe〛
╡STEP 2╞
Using the jit.gl.multiple object, I multiply the cursor icon as the background in the jit.matrix object. Each small cursor in jit.gen is assigned information such as location, size, rotation angle, and color based on my mouse's movement data. The jit.gen content can be seen at the bottom right corner.
╡STEP 3╞
To enhance the interactive experience, I customize the cursor while maintaining its interaction with the background using the jit.gl.sketch object.
〚soundtrack: Amusement Park (8-bit version), by Keigo Hoashi〛
Besides importing different images for your cursor icon using the message box 'importmovie, bang', you can freely decide the objects shown in the background by simply changing the file names in jit.gl.texture object (circled in light beige). The Civilizations showcase (above) and the demo (below) are made by the same patch with minor value adjustments to achieve the best visual effect.
╡STEP 4╞
Finally, to elevate the playful experience, I send the 'hide cursor' message to Max. This allows participants to explore the relationship between their mouse movements and the background objects.
〚soundtrack: Treasure Time, by Keigo Hoashi〛
To enhance the tranquil atmosphere of this composition "Species," I employ the jit.slide object to gently decelerate the color-changing process. In the final touch, I've also incorporated the jit.gl.camera into this patch, providing users with the flexibility to adjust the background's distance based on their preference for proximity.
【Credit】
Sound: Hua-Chun Fan
Max/MSP programming: Hua-Chun Fan
Comments