Morrowind
0 of 0

File information

Last updated

Original upload

Created by

jasaj316

Uploaded by

jasaj316

Virus scan

Safe to use

Tags for this mod

About this mod

Want to add morph-animated assets into Morrowind but don't know how to go about it? Here's everything you need.

Requirements
Permissions and credits
Changelogs
Overview:

This is a single .html page that has everything you need to add custom morph animations into Morrowind (and Oblivion).

It contains three tools:
  • The "Offset .obj Generator", which creates an .obj where the vertices define the difference between the morphed mesh and the original.
  • The "Morphed .obj Generator", which takes an original .obj and adds an offset .obj, to create a morphed mesh.
  • An interactive graph that displays the animation curves when using QUADRATIC_KEY an interpolation type.

  • Plus, a step-by-step tutorial (using a bow/crossbow as an example) that walks you through how to create a morph animation using the above tools.

Explanation:

Morph animations are used extensively instead of rigged animations for certain types of animations (weapons/faces) in Morrowind and Oblivion.

When you need to create a morph animation in NifSkope, you use a NiMorphData block, containing an array of Morphs. The first Morph has Vectors (Vertex positions) defining the original shape of the object. Subsequent Morph's Vectors define shapes you want the object to deform to during its animation. These are sometimes called 'blend shapes' or 'morph targets'. 

There is one quirk: the Vectors indicate the difference in positions between the shapes, NOT the shape you want to deform to. This is a problem because when you create a morphed version of an original shape, the vertex data is not the type of data that NifSkope needs.

  • Therefore, the "Offset .obj Generator" exists to create an .obj that defines the difference between these meshes, the "offset" vertices. You can simply open two instances of NifSkope, one containing the array of offset Vertices, and the other with the Morph you want to insert the data into, then copy > paste one array over the other.

Since release 2017-12-17, NifSkope 2.0 allows you to copy a whole array of Vector3 data to another branch. This functionality is why I opted to make this tool output .objs. Without it, I'd have made a function that outputted a .txt file, and the vertex data would have to be inputted manually, which is no fun.

  • The "Morphed .obj Generator" is used to work around the fact that you can't export a morphed mesh from NifSkope. Now, export the base .obj, copy > paste the Morph's Vectors into the Vertices of the mesh's NiTriShapeData, export that .obj, and use these two .objs with the tool to create the morphed mesh.

  • The interactive graph is useful because the values when using Quadratic Interpolation are rather vague. This graph helps a lot when trying to make a certain animation curve, or even make some weird ones without having to guess if it's going to clamp the values. The algorithm is sourced directly from NifSkope's source code, therefore, the curves are 100% accurate.