This is a Unity Timeline extension to animate and blend material properties. It consists of two custom tracks:
| Track | Description |
|---|---|
| Material Track | Change properties of a material directly, changing it everywhere in the scene. |
| Renderer Track | Overwrite a selection of a renderer's material slots, changing only one specific object.* |
* Material Property Blocks are used, so instancing isn't broken.
| Material Track | Renderer Track | |
|---|---|---|
| Layers (a.k.a. Override Tracks) | ✓ | ✓ |
| Clip extrapolation | ✓ | ✓ |
| Set/Blend Float/Range/Color/Vector | ✓ | ✓ |
| Set/Blend* Texture2D/RenderTexture | ✓ | ✓ |
| Set/Blend Texture Tiling/Offset | ✓ | ✓ |
| Set Texture3D | ✓ | ✓ |
| Blend Texture3D | ✗ | ✗ |
| Set CubeMap | ✓ | ✓ |
| Blend CubeMap | ✗ | ✗ |
| Overwrite with entire Material** | ✓ | ✗ |
All blending can be done between two clips, or with the original value set in the material.
* See Use texture blending for how to activate this
feature.
** Just uses Material.Lerp internally, so it's not able to blend textures.
In your project folder, simply add this to the dependencies inside Packages/manifest.json:
"com.d4ku.material-timeline": "https://github.com/D4KU/unity-material-timeline.git"
Alternatively, you can:
- Clone this repository
- In Unity, go to
Window>Package Manager>+>Add Package from disk - Select
package.jsonat the root of the package folder
This package ships a shader to blend textures, named TextureBlend. To tell Unity to include it in builds, even if no scene has a dependency to it, add it to the list of always included shaders under ProjectSettings > Graphics. Without this shader the package functions normally, but textures are switched instead of blended.
