Last update: 2002/06/07
Mikoto Ver 0.3g 使用マニュアル
はじめに

このマニュアルは使う上での最低限の説明をしています。
いまだ制作中で、説明が足りない部分があります。ご了承ください。
随時更新しています。

簡単な操作説明をアプリケーションに組み込んでありますのでそれを参照してください。

project
\ general
  \ 操作説明 <- これを左クリック
  general.mqo
    floor

また、ここに umemori 氏が作ってくれた Mikoto の Tips があります。
ここの説明より断然丁寧でわかりやすので、こちらもぜひ参考にしてみてください。
UMEMORI★69


●ビュー

プロジェクト

ミコトでは最小項目をアイテムと称しています。プロジェクトビューではアイテムがツリー状に構成されていて、その並び方、構造には意味があります。

ミコトを立ち上げた初期の状態ではプロジェクトは以下のようになっています。

project
\ general
  \ 操作説明
  general.mqo
    floor

project

ユーザーはこの project 内にアイテム群を構築していくことになります。
project 内には必ずがあります。これは現在スコープしているアイテムで、その中にあるアイテム群をプレビュー側で表示していることを示しています。

genaral

project 以外で必ず、プレビュー側で表示しなくてはならないアイテムが含まれています。
general.mqo はワイヤーフレームであらわしている床とワールド座標系を示していています。

プレビュー

DirectX7 を使用して現在のモデルの状態をリアルタイムに表示します。

透視投影します。

平行投影します。ボーンの細かな操作がしやすくなります。

通常の状態です。

ライトが反転して、ボーンなどのインターフェィスがみやすくなります。

ボーンなどのインターフェイスが非表示になります。
また、環境マッピングが有効になります。

 


●エフェクタ(変形)

命名規定

ミコトはメタセコイアのオブジェクト名を参照して、スケルトンの定義や各種変形を行います。
Ver 0.3g 以降から有効です。

[エフェクタ識別子] ":" [オブジェクト名] "|" [親オブジェクト名] "-" [適用ボーン名]

すべて半角で入力してください。全角文字は対応していません。
オブジェクト名以外は省略が可能です。

▼エフェクタ識別子

エフェクタ識別子でメタセコイアで編集したモデルをオブジェクト単位でミコトでどう処理をするべきか指示できます。

エフェクタ識別子リスト

識別子 機能
bdef ボーン変形を適用する
sdef スフィリカルディフォームを適用する
morph モーフィングを適用する
skin スキンペーパを適用する
bone 3角ポリゴンとラインからスケルトンを構築する
select オブジェクトセレクタを適用する

▼オブジェクト名

ミコト上でのアイテム名そのものです。

▼親オブジェクト名

親オブジェクトを指示することによってオブジェクトを階層化することができます。

▼適用ボーン名

ミコト上ではオブジェクトに座標系を関連付けします。省略された場合はオブジェクトに一番近いボーンが自動的に適用されますが
意図しないボーンが適用される可能性があります。これを使えばオブジェクトとボーンの関連付けを指示することができます。

スケルトン bone

ボーンはメタセコイア上で編集します。
ミコトでは指定するフォーマットで定義されたオブジェクトを親子構造を持ったボーン(スケルトン)として認識します。

▼命名規定

bone:[スケルトン名]

▼ボーンの定義

始点、終点、H点はポリゴンの形で決定します。
詳しく述べると、辺の長い順に「H点〜始点」「始点〜終点」「始点〜H点」と設定されます。
また、「始点〜H点」の距離が影響半径として認知されます。
ボーンの影響範囲内にある頂点(ポリゴン)はそのボーンの影響を受けることになります。

▼スケルトンの組み方

終点と始点を連結して3角ポリゴンを定義することによって親子関係をもったボーンを仕組むことができます。以上の条件さえ満たせていれば、1つの親ボーンに複数の子ボーンを持たせることも可能です。

また、浮動ボーンを作るには上の図のように、親の終点と子の始点をラインで連結することによって定義することができます。

▼ボーン名の指示
メタセコイア上でボーン名を指示することができます。
ボーンとして機能するポリゴンの材質名がそのままボーン名として認識されます。
また、ボーン名の末尾に "[ ]" を追加すると、X座標の正負を調べて、"[R]" or "[L]" を追加します。左右対称なボーンに対して使用すると便利です。

▼注意事項
・ボーンの頂点は必ず「選択頂点をくっつける(Ctrl+J)」でくっつけてください。
・両面ポリゴンの場合、正しくボーンが生成されません。必ず片面にしてください。

 

ボーン変形 [bdef]

▼命名規定

ボーン変形したいオブジェクト
bdef:[オブジェクト名]

このオブジェクトはボーン変形の対象となります。
ボーンの影響範囲内にある頂点はそのボーンの影響を受け、ボーンの位置や角度に添って変形します。

スフィリカルディフォーム(つぶれないボーン変形) [sdef]

▼命名規定

スフィリカルディフォームしたいオブジェクト
sdef:[オブジェクト名]

オブジェクト名には任意の文字列を記入できます。
このオブジェクト名はアンカーのターゲット名として利用されます。

アンカー
anchor|[ターゲット名]

ターゲット名にはスフィリカルディフォームを適用したオブジェクト名を記入します。
現在、アンカーの役目をするオブジェクトは複数必要なため、アンカーとして認識されるオブジェクトを複数用意できるように
anchor[任意の文字]|[ターゲット名]
を許可しています。
anchorabc|target
anchor123|target
もアンカーとして認識されます。

▼アンカーの編集

アンカー内に含まれるすべての頂点がそのアンカーと関連づけされます。
アンカーはなにかしらボーンと関連づけされているので、頂点をボーンの動きにそって移動、変形させることができます。
スフィリカルディフォームは「H点〜始点」で定義するボーンの影響範囲を考える必要はありません。

黄色の3角ポリゴンがボーンで、赤と青の半透明のボックスがアンカーです。
スフィリカルディフォームしたいオブジェクトはこのアンカー内に配置することになります。
両方のボックスが重なっている部分が2つのボーンによって変形する空間になります。
この空間を作るボックスは2つのみです。3つ以上重なる空間の変形は現在サポートしていません。
この空間内に必ず一つ以上のボーンの頂点を配置してください。
また、アンカーとボーンは一対一対応にしてください。

モーフ変形 [morph]

モーフイングのベースやターゲットオブジェクトの指定はメタセコイア上で編集します。

▼命名規定

ベースオブジェクトの指定
morph:[ベース名]

ターゲットオブジェクトの指定
[ターゲット名]|[ベース名]

ターゲット数に制限はありません。

モーフィングの操作は wait control アイテム[]を選択すると出現するスライドコントロールで行います。


●編集

ポーズ編集

▼カメラの操作

基本的にメタセコイアと同じ操作感覚です。

回転
右ドラッグ

拡大、縮小
左右ドラッグ

平行移動
ホールボタンドラッグ(カーソルキーでも同様の操作が可能)

▼ボーンの操作

FKによる操作
ボーンをつまんで左ドラッグ

IKのよる操作
ボーンの端にある◎をつまんで左ドラッグ

ボーンのひねり回転
ボーンを選択してホイールを回転(RollUp, RollDown でも同様の操作が可能)

ボーン全体の平行移動
一番親に位置しているオレンジ色の◎をつまんで左ドラッグ

▼ショートカット

「G」
カメラの角度をきりのいい角度に修正します。

「F1」 「F2」 「F3」
ワールド座標系での側面、前面、上面へカメラの視点を切り替えます。

カーソルキー
カメラを平行移動します。

「PageUp」 「PageDown」
ボーンをひねり回転します。

▼姿勢のリセット(標準姿勢)

ツリービューで Skelton アイテム[]を選択して右クリックメニューで「標準姿勢」を実行します。

モーション編集

簡単なモーション編集を実装しています。
フレーム間の補間は線形補間のみで対応しています。

▼モーショントラック

キーフレームの編集はモーショントラックで操作します。

編集アイテム(Motion:/project/Human1.mqo/motion)
モーショントラックで操作している motion アイテム[]を示しています。

編集フレーム(Frame: 16.000)
現在メインビューで表示しているフレームです。

フレーム(紫色のつまみ)
メインビュー側で表示しているフレームを示しています。
つまみを左右に左ドラッグすることによってフレームを操作できます。

エンドフレーム(赤色のつまみ)
末端のフレームを示しています。これ以降のフレームを再生することはありません。
つまみを左右に左ドラッグすることによってエンドフレームを操作できます。

キーフレーム(オレンジの細長いつまみ)
キーフレームの位置を示しています。
左右に左ドラッグすることによってキーを移動させることができます。
またモーショントラックの外(上の方)に左ドラッグすることによってキーを削除することができます。

▼時間のコントロール

 再生

モーションを再生します。再生には0〜エンドフレームまでのオートリピートがかかります。
現バージョンでは、1フレーム = 1/60秒 と固定されています。また、もしマシンの負荷が大きすぎて処理が間に合わなかった場合、1フレームの時間はこれより大きくなってしまいます。

 停止

モーション再生を停止して、時の流れを止めます。
この状態で編集するのが基本です。

▼キーの追加

キーを追加したいフレームに合わせて、ポーズを操作するだけで、自動的にフレームにキーを打ちます。

▼キーの削除

キーをモーショントラック外(上方)へドラッグします。

▼キーの移動

キーをドラッグします。

▼キーの複製

SHIFT を押しながらキーをドラッグします。

▼編集するモーションの選択

プロジェクト上でモーションアイテムを選択するだけです。

▼モーションの追加

プロジェクト上の親オブジェクトのメニューで「新規モーション」を選択してください。

▼モーションの削除

削除したいモーションアイテムのメニューで「削除」を選択してください。

▼モーション名の変更

変更したいモーションアイテムのメニューで「名前変更」を選択してください。

スクリプト

スクリプトとして Python(パイソン)を組み込んでいます。
現在以下のメソッド(命令)が使用できます。

リファレンス

Mikoto モジュール

GetThis( )

スクリプトと関連付けされている Item を取得

Print( str )

ログに文字列を出力

   

Item オブジェクト

GetName( )

Item の名前を取得

GetClassName( )

Item の属性名を取得

GetObject( str )

名前が一致する子 Object を取得

   

 

Python について、詳しく知りたい方は以下のサイトを参考にしてください。

Python Language Website
Python オフィシャルサイト。

Python チュートリアル和訳
Python 言語の基本を日本語で解説しています。

 

ログ

デバッグ、スクリプト用にログが log.txt に出力されます。
起動毎にこのファイルは削除され、新しい log.txt が生成されます。

リアルタイムに出力を確認できるよう、ログウインドゥを用意しています。
ツールバーのボタンでログウインドゥの表示/非表示できます。

 


●ツール

モーションコンバート

エイリアス(アイテム名)が一致しないものや、スケルトン構造が違うモーションデータを利用することができるようになったり、比較的普及している、BVH 形式のモーションを自分のモデルに組み込むことができます。

▼実行の仕方

モーションを適用させたいオブジェクトをスコープした状態で、スケルトンとモーション情報が格納されているオブジェクトを選択し、ツール→モーションコンバートを実行します。

OK     モーションコンバートを実行します。
キャンセル コンバート作業をしないまま終了します。
開く     モーションコンバート情報をロードします。
保存     モーションコンバート情報を保存します。

▼座標系の関連付け

右のツリーが変換元、左のツリーが変換先の状態を示しています。
右のツリーから座標系を選択して、左のツリーで同じ回転動作をさせたい座標系(ボーン)を選ぶことによって関連付けしていきます。

ここのインターフェイスにはまだ問題があります。

▼例 dance01.bvh のモーションを lowbody_sdef.mqo に組み込む。

まず lowbody_sdef.mqo のポーズを dance01.bvh の標準姿勢と同じ姿勢にします。

この標準姿勢は bvh の種類によって変わりますが、この直立姿勢が一般的のようです。

次に、 適応するモーション dance01.bvh を選択します。

lowbody_sef.mqo
  hierarchy
dance01.bvh    <-選択しておく
  hierarchy
  motion 

ツール→モーションコンバータを実行すると以下のようなウインドウが開きます。

「開く」ボタンで bvh2human.mmc をオープンしてください。
適したエイリアスの関連付けがされます。
「OK」ボタンでコンバート開始です。

lowbody_sdef.mqo
  skelton
  dance01.bvh <-コンバートした結果
dance01.bvh    
  skelton
  motion 

lowbody_sdef.mqo 内に dance01.bvh モーションが生成されているので、
それを選択することによって確認できます。  

連番 BMP 出力

プレビューの画像を連続したビットマップ( BMP )形式の画像ファイルとして出力するツールです。
プレビューで流れている映像をアニメーション GIF 化したり ムービー化することが可能です。

出力ファイル

BMP 出力するファイル名を指定します。 実際はこれをベースとして3桁の数字および、".bmp" 拡張子を付加したファイル名で出力されます。

出力フレーム

出力する期間をフレーム単位で指示します。初期状態は 0 〜 最終フレームに設定されています。

間隔

画像を落とす間隔をフレーム単位で指示します。指定したフレーム毎に画像を生成します。
1フレーム = 1/60 秒 となってます。

解像度

出力する画像の解像度を指定できます。3種類の方法から選べます。

そのまま出力

プレビューの解像度そのままで出力します。

縦解像度を固定

縦の解像度を固定します。

横解像度を固定

横の解像度を固定します。


●インポート&エクスポート

BVHエクスポート

例)

project
  sample.mqo
    obj1
    skelton
    motion

ポージングした後、ボーンの回転情報をBVHファイルへエクスポートするには sample.mqo にカーソルをあわせて、右クリックでメニューを出して「エクスポート」を選択します。BVH 形式を選択し、ファイル名を入力して保存してください。子アイテムであるヒエラルキー(座標系の階層)情報とモーション情報を出力します。

注)BVH ファイルにキーフレームの情報は入っていません。よってポーズのフレームの情報は失われます。また 1フレーム= 1/30秒で保存されます。

MQOエクスポート

例)

project
  sample.mqo
    obj1
    obj2

ポージングした後、変形したポリゴンモデルをMQOファイルへエクスポートするには sample.mqo にカーソルを合わせて、右クリックでメニューを出して「エクスポート」を選択します。MQO 形式を選択し、ファイル名を入力して保存してください。子オブジェクトである obj1, obj2 などが、MQO のオブジェクトデータとして書き出されます。
なお、現バージョンではボーンの情報は出力しません。

MKMエクスポート

例)

project
  sample.mqo
    obj1
    skelton
    motion1
    motion2

編集したモーションを MKM 形式として保存したい場合は親オブジェクト(sample.mqo)で「エクスポート」を実行して MKM 形式で出力してください。すべてのモーションアイテム(motion1, motion2)が保存されます。

MKMインポート

例)

project
  sample.mqo
    obj1
    skelton
    

保存した MKM モーションファイルをインポートしたい場合 skelton アイテム(座標系情報)がある親オブジェクト(sample.mqo)で「インポート」を実行して、MKM 形式で入力してください。自動的にモーションアイテムをスケルトン情報と関連付けして再生します。

注)現在、MKM にはスケルトン情報(座標系情報)は入っていません。MKM 単体でモーションを確認することはできません。