*** MotionConverterZero ver0.25 *** 作者:きのうのひと ・はじめに  このソフトはおちゃっこ氏作のモーション作成ツール "RokDeBone2" 及び 3Dゲーム作成プラグイン "Easy3DforHSP" ユーザー向けの補助ツールです。 (おちゃっこLAB http://www5d.biglobe.ne.jp/~ochikko)  ジョイントを追加する前と後のsigファイルを参考に、ジョイント名の一致 する部分のモーションをジョイント追加後のsigファイル向けに変換します。  基本的に同じ体型のデータで髪や指、スカートなどにボーンを追加する時に モーションを流用するために使います。  あまり親切なツールではありません。ある程度 RokDeBone2 を使いこなして いる人をユーザーとして想定しています。  最低限の機能だけで構成されています。HSP3.1向けのソースコードが同梱 されていますので、必要に応じてカスタマイズしてお使いください。ソース コードの流用、転用等ももちろん問題ありません。 ・基本的な使い方  「旧モデル読み込み」ボタンを押し、ジョイント追加前のモデルを選択し 読み込みます。  「新モデル読み込み」ボタンを押し、ジョイント追加後のモデルを選択し 読み込みます。  「モーション追加」ボタンを押し、ジョイント追加前のモデル向けのモー ション(qua)を選択し読み込みます。  必要に応じて「保存先フォルダ」コンボボックスから保存先を選択します。 「元モーションと同じ」「新モデルと同じ」「旧モデルと同じ」の3つしか 選べませんが仕様です。  旧モデルと新モデルに共通するジョイント名があり、モーションが読み込ま れているとき「変換実行」ボタンが出現します。これを押すと変換作業が行われ 自動的に新しいモーションが保存されます。  また「ボーン設定」を押すと、ボーンの対応関係を変更して名前の一致しない ジョイント間でも情報コピーが可能になります。  同名ファイルが存在するときは上書き確認のダイアログが表示されます。 このときキャンセルするとそのファイルの処理はスキップされます。  "変換が終了しました" という表示が出たら処理は終了しています。「戻る」 ボタンで基本画面に復帰しますが、そのままウィンドウを閉じても構いません。 ・既知の問題点  1つのモデルに同名ジョイントが複数あると正常に変換できません。  補間計算の方法が再現されません。付属の"tempmot.qua"をもとにファイル 作成するため、このファイルの補間方法であるスプライン補間が適用されます。  tempmot.quaは空モーションなのでどんなモデルでも開けるはずです。補間 方法だけ換えて保存しなおせば一応対処が可能です。  「指定フレームへジャンプ」は再現できないため、「最初に戻って繰り返す」 に変換されます。  ジョイントが無効になっている場合は考慮されていません。  インポートなどにより特殊なツリー構造になっている場合は考慮されていま せん。  ディスプレイスイッチやユーザーデータは正常に処理されるはずですが未検証 です。  RokDeBone2 の仕様変更があるとモデル、モーション読み込みが出来なくなる 可能性があります。そのような場合、最新の e3dhsp3.dll を入手して置き換え れば使用できるかもしれません。 ・ver0.20の変更点について  win32APIを用いてモーションの複数ファイル選択が可能になりました。  通常は問題ないはずですが、万が一不都合が起きる場合は同梱されている 旧バージョン(motconverter.exe)をお使いください。 ・複数ファイルオープンダイアログモジュール (multiopen3.hsp) について  さくらさんのページ HSP-NEXT (http://hspnext.com/) の "fileop30.hsp" を もとに作った、複数ファイルオープンだけに特化した補助モジュールです。  二次利用して、なおかつソース公開する場合、この経緯を示すファイル先頭の コメント部分を残すようにしてください。  llmod の multiopen のように、メモリノートパッドで使用しやすいデータを 返す仕組みになっています。ただ、パラメータ数等互換性がありません。 ・各設定限界値  pathlen(ファイル読み込み時等に扱えるディレクトリ名の長さ)256バイト  modelnamelength(ディレクトリ名を除いたモデルファイル名の長さ)256バイト  motionmax(モーションを読み込める最大数)64  mpidmax(1つのモーションに対するキーフレームの最大数)256  jointmaxnum(1つのモデルに対するジョイントの最大数)256  plusname(新しいモーションを保存するとき付加するフレーズ)fix   >例 punch0.qua に対して punch0fix.qua で保存します。 ・細かいことなど  最初から多数のモーションを変換せず、とりあえず1つだけ変換テストをする のが賢明です。また無闇に上書き保存することもすすめられません。デバッグは 作者の環境でしか行われていないことを忘れてはいけません。  tempmot.quaが無いとエラー終了するので削除しないでください。削除してしま った場合、適当なモデルでキーフレームの無いモーションを作成し、tempmot.qua と名付けて保存すればそれで代わりになります。  どうでもいいですがジョイントを増やしたときだけでなく減らしたときにも 一応使えます。指やスカートなどを動かすのが面倒になったとき、体の動きだけ 取り出すことができるはず。  保存先フォルダに「元モーションと同じ」を選択すると、元モーションが色々な フォルダに散らばっていてもそれぞれ同じフォルダに保存します。どちらかという と使いにくいと思います。  HSP3向けのDLLで処理するため、古いバージョンのRokDeBone2ではモーションが 読み込めないかもしれません。これは最初から切り捨てています。かなり古くなけ れば意外と大丈夫なはずです。 ・更新履歴  <ver0.25>  ・ボーンの対応関係を変更可能にした  <ver0.22>  ・モーション名をコピーするようにした  <ver0.21>  ・選択したモーションがひとつのとき必ずエラーになるバグを修正  <ver0.20 "MotionConverterZero">  ・複数ファイル選択を可能にした  <ver0.12>  ・変換の実行されたファイル数を表示するようにした  ・空モーションは一度メモリ上に確保してから読み込むようにしてみた。  ディスク上のquaファイルに何度もアクセスするより良いと思うのだが、もともと  問題になるほどでもなかったので微妙  <ver0.11>  ・モーションリストがクリアされると、モーション名の最大長が64になるバグを修正  ・やりすぎな気がしたのでpathlenを256に下げた  <ver0.10>  ・最初の公開バージョン。