The purpose of this assignment is to animate the RenderMan shader from last ST Coloration project.
Since the ST pattern shader was created in RenderMan Shader Language (RSL), I am able to add custom parameter sliders to the shader 's attribute when it's imported into Maya.
The ST shader contains some basic shape such as circle and rectangle, and animation can be made by manipulating the position and color relations between these elements. (Fig.1)
Fig.1. Maya Attribute editor screenshot, showing parameters of the custom RenderMan Shader.
Design of The Pattern Animation
Instead of keyframe animation, I attempt to try another method which is music-controlled animation.
Fig.2. The relation between instrument and pattern.
A good example of using the waveform controlled method to animate a RenderMan Shader can be found at Ding Wei's RenderMan Portfolio. Ding uses a MEL script (you can download it free, from CreativeCrash)written by Alin Sfetcu to expedite the workflow of linking attributes.
I want to achieve a more accurate representation (as shown in Fig.2.) of each instruments from the music I composed.
But there's no viable MIDI solution, I have to import MIDI notes into Maya by converting them to a .wave file using MIDI edit software. (Fig.3)
Fig.3. The theme melody above was made using a MIDI editing software, then export as a waveform (.wav) file.
The audioWave node in Maya can extracts the amplitude value directly from a waveform format audio file, then use the value to drive another value in a 3-D scene.
Unfortunately, the audioWave node in Maya doesn't have direct control over frequency and equalization, thus make it quite difficult to separate different instruments and tones from a single music file.
One solution to this is by selecting and deleting the lower half of the animation curve, and scale/offset the remain part of the curve along Y axis. (Fig.4.)
Fig.4. The output value generated from audioWave node is now baked into a keyframe curve, which can be apply to almost any parameter in a Maya scene.
Fig.5. Using Maya's Node Editor to connect keyframes to RenderMan Shader's custom attribute.
RenderMan is a highly sophisticated industrial standard technology. By learning the basic knowledge of RenderMan Scene Description Language (RIB) and RenderMan Shading Language (RSL), I have a more comprehensive view of 3-D computer graphic principle, as well as the rules of visual effect rendering. The fundamental skill I learn from this course also helps me build my foundation for future study.
About MIDI Controlled Animation
- MIDI controlled animation is more efficient and intuitive than waveform controlled method. By input a series notes from a MIDI file, then convert the tune, beat, strength or modulation into animation.
- One good example of MIDI controlled animation is Animusic.
- Another good example of Waveform controlled particle animation can be found at here.