Copyright(C)1999 MSM Inc. **********************************************************/ #include <stdio.h> #include <D3DTYPES.H> #include "mep_c.h" meGlobalFunctions *pfGlobalFuncs;/*インターフェース関数テーブルのポインタを格納する変数*/ //オブジェクトIDを格納しておく変数です。1つのモーション内で複数のオブジェクトに対して //プラグインを割り当てるには、この変数を配列にする等の措置が必要になります。 int ObjectID; int ExampleIO; /* mePlugInit ----------- 説明: プラグインがモーションエディターにロードされた時に呼び出され、プラ グインを初期化します。 引数: 無し */ int _stdcall mePlugInit() { //変数初期化 pfGlobalFuncs = NULL; return 0; } /* mePlugSetup ----------- 説明: プラグインがオブジェクトに割り当てられた時に呼び出され、プラ グインの初期設定をします。 引数: 1.objid モーションエディターで設定されているオブジェクトID。 この数値が-1ならば、無効なオブジェクトを意味します。 2.frameno 現在のフレーム番号です。 3.globalfuncs インターフェース関数テーブルへのポインタです。 */ int _stdcall mePlugSetup( int objid, int frameno, void* globalfuncs) { typedef int (_stdcall *ME_FUNC)(); ME_FUNC Funcs; //DLLをロードします。 //HINSTANCE hDll=LoadLibrary("DLL名"); meObjectInfoFunctions *pfObjectInfo; //モーションエディターから渡される、インターフェース関数テーブルへのポインタを //グローバルポインタ変数に格納します。 pfGlobalFuncs = (meGlobalFunctions*) globalfuncs; //Funcs=(ME_FUNC)GetProcAddress(hDll,"関数名"); //Funcs(); //DLLを解放します //FreeLibrary(hDll); return 0; } /* mePlugEdit ---------- 説明: プラグインのパラメーターを編集する時に呼び出されます。 引数: 1.objid 編集対象になっているオブジェクトのIDです。 2.reserved 未使用です。機能拡張のため、将来使用する可能性があります。 */ int _stdcall mePlugEdit( int objid, void *reserved) { //ここで、プラグインのパラメーターを設定するためのダイアログを表示させます。 return 0; } /* mePlugFrame ----------- 説明: モーションエディターの、現在のフレーム番号が変わった時に呼び出されます。 引数: 1.objid フレーム変化時に、モーションエディターから渡されるオブジェクトIDです。 2.frameno モーションエディターの、現在のフレーム番号です。 3.reserved 未使用です。機能拡張のため、将来使用する可能性があります。 */ int _stdcall mePlugFrame( int objid, int frameno, void *reserved) { if( objid != ObjectID) { /* エラー処理 */ return -1; } return 0; } /* mePlugReset ----------- 説明: モーションエディターに新しいアニメーションデータがロードされた時に呼び出され、 プラグインの設定にリセットをかけます。 引数: 無し。 */ int _stdcall mePlugReset() { pfGlobalFuncs = NULL; ObjectID = -1; return 0; } /* mePlugRemove ------------ 説明: プラグインがオブジェクトから解放された時に呼び出されます。 引数: モーションエディターから渡されるオブジェクトIDです。 */ int _stdcall mePlugRemove( int objid) { pfGlobalFuncs = NULL; ObjectID = -1; return 0; } /* mePlugGetP ---------- 説明: モーションエディターがアニメーションデータをセーブする時に呼び出され、 MSQファイルのObjectPlugInキーワードに記述されるパラメーターを設定します。 引数: 1.objid モーションエディターがアニメーションデータをセーブする時に呼び出され、 MSQファイルのObjectPlugInキーワードに記述されるパラメーターを設定します。 2.params MSQファイル内に記入するパラメーターへのポインタです(出力用)。 */ int _stdcall mePlugGetP( int objid, char *params) { if( objid != ObjectID) { /* エラー処理 */ return -1; } sprintf( params, "%f",ExampleIO); return 0; } /* mePlugSetP ---------- 説明: モーションエディターがアニメーションデータをロードする時に呼び出され、 MSQファイルのObjectPlugInキーワードに記述されているパラメーターを取得します。 引数: 1.objid モーションエディターから渡されるオブジェクトIDです。 2.params MSQファイル内に記入されているパラメーターへのポインタです。 3.globalfuncs インターフェース関数テーブルへのポインタです。 */ int _stdcall mePlugSetP( int objid, char *params, void* globalfuncs) { pfGlobalFuncs = (meGlobalFunctions*) globalfuncs; ObjectID = objid; sscanf( params, "%f", &ExampleIO); return 0; } /* mePlugType ---------- 説明: プラグインのタイプを決定するために呼び出されます。 プラグイン設定ダイアログ上で表示されている名前がクリックされた時に 呼び出されます。 引数: 無し。 */ int _stdcall mePlugType() { return MEPLUGIN_ANIMATION; } /* mePlugDesc ---------- 説明: プラグイン設定ダイアログ上で表示される名前を設定します。 引数: 1.desc 名前文字列の先頭アドレスへのポインタです(出力用)。 */ int _stdcall mePlugDesc( char *desc) { return strlen( strcpy( desc, "プラグイン名")); } /* mePlugDone ---------- 説明: モーションエディターが終了する時に呼び出されます。 引数: 無し。 */ int _stdcall mePlugDone() { return 0; }
Copyright (c) 1999____ |
Micronet co.,Ltd |
Micronet Software Manila Inc. |