C++ソースファイルの雛型


プラグインの、ソースの雛型です。この雛型に必要な処理を書き込み、"Mep_c.h"ファイルモジュール定義ファイルを1つのプロジェクトに付加して、コンパイル及びリンクを施す、といった手続きを踏む事によってプラグインを作成します。

/**********************************************************

 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.