DXライブラリのビューワーであるとドキュメントに一言付け加えて頂ければ
ビューワーの再配布は問題ありません
あと、ビューワーの mv1形式での保存と同等の処理を行える関数 MV1SaveModelToMV1File がありますので、
ビューワーの配布をせずにこの関数を利用するという方法もります
// 指定のパスにモデルを保存する
// ( 戻り値 0:成功 -1:メモリ不足 -2:使われていないアニメーションがあった )
int MV1SaveModelToMV1File(
// セーブするモデルのハンドル
int MHandle,
// 保存先のファイルパス
const TCHAR *FileName,
// セーブする要素、MV1_SAVETYPE_NORMALはメッシュとアニメーションを保存する、
// 他にメッシュだけ保存する MV1_SAVETYPE_MESH と
// アニメーションだけ保存する MV1_SAVETYPE_ANIM があります
int SaveType = MV1_SAVETYPE_NORMAL,
// 保存するアニメーションの情報を別のモデルハンドルから持ってくる場合は
// この引数に渡します。無い場合は -1 で OK です
int AnimMHandle = -1,
// ビューアーでの「アニメーション設定」→「メッシュ側のフレーム名と追加アニメーション側のフレーム名の一致チェック」に
// 相当します
int AnimNameCheck = TRUE,
// ビューアーでの「保存オプション」→「法線を8bitで保存(mv1形式)」に相当します
// ファイル容量を気にしない場合は 0 を指定したほうが精度が高いまま保存されます
int Normal8BitFlag = 1,
// ビューアーでの「保存オプション」→「座標を16bitで保存(mv1形式)」に相当します
// ファイル容量を気にしない場合は 0 を指定したほうが精度が高いまま保存されます
int Position16BitFlag = 1,
// 各頂点のボーンのウエイト情報を8bitで保存するかどうかのフラグです、今ソースを見てみたら
// 未実装でした(汗)、よって 0 でも 1 でも特に何の変化もありません・・・
int Weight8BitFlag = 0,
// ビューアーでの「保存オプション」→「アニメーションキーを16bitで保存(mv1形式)」に相当します
// ファイル容量を気にしない場合は 0 を指定したほうが精度が高いまま保存されます
int Anim16BitFlag = 1
) ;