LoginSignup
5
4

More than 5 years have passed since last update.

Live2D mtnファイルを反転させるツール

Posted at

背景

対になったキャラクターを左右に配置し、Live2Dで同期モーションさせるときに動きを左右反転させる必要が出てくる。
出力したキャラクターの画像自体を反転させるのも手だが、反転してはマズイデザインのキャラクターがいて
モーション自体の反転で対応したいことがあるが、Live2DのAnimatorにはその機能がない。
opyukari - コピー.png
※結月ゆかりは左側に髪飾りを持っている

ハカセトゥーンでアニメーションを担当したときに魔理沙側がこのような左右に差をもつ構造で
モーション自体を反転させるのが最適案と判断し、モーションデータであるmtnファイルの中身を
意味合い的に反転させる支援ツールを作成して対応した。

前提とする対象モデルの定義

正面図であることが望ましい。(理由は反転させたときに破綻しにくいから)
体の芯をコントロールするパラメーターは概ね問題無いだろうが
左右対になるパラメーターは可動範囲が一致していることが必要になる。
1.PNG
2.PNG
3.PNG
※腕パラメは-90~90の範囲で左右同じ動きをする

なお、+-は反転しても良く
0~1で反転してても対応してる

ソフト

ダウンロードはこちらから
https://t.co/hub8BnIVTL
※使用は自己責任で .NET4.5がたぶん必要

使い方

まずは変換設定を作ります
GUIからも作れるようにしていますがcsvファイルを設定として読み書き出来るので
テキストエディタでチャチャッと作った方が早いです
4.PNG
※変換設定を押して
5.PNG
※設定ダイアログを呼び出す 設定ロードでcsvファイルを読み込む

設定を読み込んだらForm1ダイアログのファイル読み込みを押してmtnファイルを読み込み
右下の変換を押す
そうしてからファイル保存で変換されたmtnファイルを保存してLive2DAnimatorで読み込む

csv仕様

変換前ID,変換後ID,変換倍率(1 or -1),基準値

変換前IDに該当したデータはすべて下記の数式によって変換される
計算式は

新規値 = 基準値 + 旧値 * 変換倍率

である

変換設定の作り方

変換する必要のあるパラメーターは
- 中央にあるX軸方向へ変化のあるパラメーター
- 左右対になるパラメーター
すべてである

中央パラメーターは 変換後IDに変換前IDと同じモノを入れて変換倍率を-1にして対応
左右対パラメーターは 右パラメ,左パラメ,1,0 と 左パラメ,右パラメ,1,0 を対で作って対応する

もし0~1で変化するパラメーターが反転している場合は
targetID,combertID,-1,1
で最大値を4つめに指定し反転した数値を足す形にしてやれば意味合い的に反転してくれるはずである

注意点として

mtnファイルとして出力した時点でキーを打った場所以外もキーを打ったようになるので
mtnを経由した時点で相当にデータの加工性は悪くなると考えた方が良い
6.PNG
※左右反転したモノを読み込んだデータ びっしりとキーが打たれてしまう

別の使い方

動作原理としては指定されたパラメータデータのIDと数値を変換するだけなので
別のプロジェクトでパラメーターIDは違うのに意味合いがいっしょでモーションをなんとかして流用したい時や
一部のモーションのデータをずらしたり小さくしたりなどの変換にも使えるかもしれない

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4