SaveAtom
	(SaveAtom filename lobj)
	動作
		Lispオブジェクトの保存.
	引数
		filename : 保存するファイル名
		lobj : Lispオブジェクト

	返値
		tが返ります.
	解説
		現在<LSObj *******>であらわされる
		拡張オブジェクトについてはこの関数で
		保存することは基本的にはできません.

	LoadAtom
	(LoadAtom lobj)
	動作
		Lispオブジェクトの読み込み.
	引数
		filename : 保存するファイル名

	返値
		読み込まれたLispオブジェクトが返ります.

	PrintString
	(PrintString lobj)
	動作
		Lispオブジェクトを文字列に変換.
	引数
		lobj : Lispオブジェクト

	返値
		変換された文字列が返ります.

	strcat
	(strcat string0 string1 ...)
	動作
		文字列の結合.
	引数
		string0, string1 ,... : 結合の対象の文字列

	返値
		結合された文字列が返ります.

	PrintHexa
	(PrintHexa integer)
	動作
		値を16進数の文字列に変換します.
	引数
		integer : 変換対象の数値

	返値
		変換された文字列が返ります.

	with
	(with assoclist proc0 proc1 ...)
	動作
		シンボルをキーとする連想リストの内容を
		局所変数に格納し処理をおこなった後,
		局所変数をassoclistに戻す関数.
	引数
		assoclist : シンボルをキーとする連想リストを保持するシンボル
		proc0, proc1, ...:処理

	返値
		最後に実行した処理の返値が返ります

	例
		> (def alst '((a 32) (b 14)))
		alst

		> (with alst (def a (+ a b)))
		a

		> alst
		((a 46) (b 14))

	progn
	(progn proc0 proc1 ... procn)
	動作
		引数を左から順番に評価します.
		複文などに使います.
	引数
		proc0, proc1, ... procn:処理内容

	返値
		最後に実行した処理(procn)の返値が返ります.

	select
	(select lst index)
	動作
		リストのindex番目の値を選択します
	引数
		lst : リスト
		index : 値を得たいリストの番号

	返値
		リストのindex番目の値が返ります.

	LoadXPhBody
	(LoadXPhBody filename)
	動作
		"*.x"ファイルの読み込み(text形式のみ)
	引数
		filename : 読み込むファイル名の文字列
	返値
		物体オブジェクト<LSObj TDycLispXPhBody>
	解説
		読み込めるファイルの形式は現在"*.x"の
		text形式のみとなっております.
		階層構造を持つファイルの場合はメッシュごとに
		物体オブジェクトが作られ根元のオブジェクトが返ります.
		複数のマテリアルが割り当てられている場合は
		最初に割り当てられたもののみ有効になります.
		また,読み込む物体は表裏がそろえられていて
		辺に接する面の数が2となる多面体でないと
		衝突判定が正常に働かない場合があります.
		ファイルの作成や変換にはtrueSpaceやMetasequoiaが
		適していると思われます.

	例
		(def x (LoadXPhBody "box.x"))

	MakeEmptyXPhBody
	(MakeEmptyXPhBody)
	動作
		空の物体オブジェクトの作成
	返値
		物体オブジェクト<LSObj TDycLispXPhBody>
	例
		(def x (MakeEmptyXPhBody))

	DeleteXPhBody
	(DeleteXPhBody obj)
	動作
		物体の消去
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
	返値
		成功すればtが返る

	例
		(def x (LoadXPhBody "box.x"))
		(DeleteXPhBody x)

	DeleteAllXPhBody
	(DeleteAllXPhBody)
	動作
		すべての物体の消去
	返値
		成功すればtが返る
	例
		(DeleteAllXPhBody)

	LoadXPhBodyVisual
	(LoadXPhBodyVisual obj filename)
	動作
		物体に見かけの形状を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		filename : 見かけの形状をあらわすファイル名の文字列
	返値
		成功すればtが返る
		ファイルが存在しない場合などはnilが返る

	例
		(def x (LoadXPhBody "box.x"))
		(LoadXPhBodyVisual x "lbox.x")

	XPhBodyCollisionBoxAprox
	(XPhBodyCollisionBoxAprox obj)
	動作
		物体の衝突判定用の形状を表示用の物体を内包する箱に設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
	返値
		成功すればtが返る.

	例
		(def x (LoadXPhBody "notbox.x"))
		(XPhBodyCollisionBoxAprox x)

	LoadXPhBodyVisual
	(LoadXPhBodyVisual obj filename)
	動作
		物体に見かけの形状を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		filename : 見かけの形状をあらわすファイル名の文字列
	返値
		成功すればtが返る

	例
		(def x (LoadXPhBody "box.x"))
		(LoadXPhBodyVisual x "lbox.x")

	SetXPhBodyMat
	(SetXPhBodyMat obj Matrix)
	動作
		物体の位置と姿勢を設定します
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Matrix : 物体の位置と姿勢をあらわす行列
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)
	返値
		成功すればtが返る
	説明
		SetXPhBodyMatで物体を移動させた場合は
		物体の軌跡は不連続となります.
		つまり壁の手前から壁の向こう側に
		SetXPhBodyMatで移動させた場合は
		そのまま通り抜けます.

	例
		(def x (LoadXPhBody "box.x"))
		(SetXPhBodyMat x '((1 0 0)(0 1 0)(0 0 1)(0 5 0)))

	GetXPhBodyMat
	(GetXPhBodyMat obj)
	動作
		物体の親の座標系に対する位置と姿勢を取得します
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の位置と姿勢をあらわす行列が返ります.
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)

	例
		(def x (LoadXPhBody "box.x"))
		(GetXPhBodyMat x)

	GetXPhBodyGMat
	(GetXPhBodyGMat obj)
	動作
		物体のワールド座標系に対する位置と姿勢を取得します
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の位置と姿勢をあらわす行列が返ります.
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)

	例
		(def x (LoadXPhBody "box.x"))
		(GetXPhBodyGMat x)

	MoveToXPhBodyMat
	(MoveToXPhBodyMat obj)
	動作
		(現在問題あり)
		物体のワールド座標系に対する位置と姿勢を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.
	説明
		物体の軌跡を連続として物体を移動させる.

	例
		(def x (LoadXPhBody "box.x"))
		(MoveToXPhBodyMat x '((1 0 0)(0 1 0)(0 0 1)(0 -10 0)))

	XPhBodySetVisualMaterial
	(XPhBodySetVisualMaterial obj Material)
	動作
		物体の見かけの上のマテリアルを設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Material : 物体の見かけ上のマテリアル
			(list
				(list diffuseR diffuseG diffuseB diffuseA)
				(list ambientR ambientG ambientB ambientA)
				(list specularR specularG specularB specularA)
				power
			)

	返値
		tが返ります.

	例
		(def x (LoadXPhBody "box.x"))
		(XPhBodySetVisualMaterial x '((1.0 1.0 1.0 1.0)(0.5 0.5 0.5 1.0)(0.5 0.5 0.5 0.0) 10.0))

	XPhBodyGetVisualMaterial
	(XPhBodyGetVisualMaterial obj Material)
	動作
		物体の見かけの上のマテリアルを取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の見かけ上のマテリアルが返ります.
			(list
				(list diffuseR diffuseG diffuseB diffuseA)
				(list ambientR ambientG ambientB ambientA)
				(list specularR specularG specularB specularA)
				power
			)

	例
		(def x (LoadXPhBody "box.x"))
		(XPhBodyGetVisualMaterial x)

	XPhBodyAddForce
	(XPhBodyAddForce obj Point Force)
	動作
		物体に指定した座標から力を加えます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Point : 力を加える点のワールド座標上でのベクトル
		Force : 与える力のベクトル

	返値
		tが返ります.

	例
		tutorial\spring.lspを参照

	XPhBodyAddLinearForce
	(XPhBodyAddLinearForce obj Force)
	動作
		物体の重心に力を加えます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Force : 与える力のベクトル

	返値
		tが返ります.

	例
		tutorial\basic.lspを参照

	XPhBodyAddAngularForce
	(XPhBodyAddAngularForce obj Force)
	動作
		物体の重心にトルクを加えます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Force : 与えるトルクのベクトル

	返値
		tが返ります.

	例
		tutorial\basic.lspを参照

	XPhBodyGetVelocity
	(XPhBodyGetVelocity obj)
	動作
		物体の速度ベクトルを取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の速度ベクトルが返ります.

	例
		(def box (LoadXPhBody "lbox.x"))
		(XPhBodySetVelocity box)

	XPhBodySetVelocity
	(XPhBodySetVelocity obj velocity)
	動作
		物体の速度ベクトルを設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		velocity : 物体の速度ベクトル

	返値
		tが返ります.

	例
		(def box (LoadXPhBody "lbox.x"))
		(XPhBodySetAVelocity box '(0 12 0))

	XPhBodyGetAVelocity
	(XPhBodyGetAVelocity obj)
	動作
		物体の角速度ベクトルを取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の角速度ベクトルが返ります.

	例
		(def box (LoadXPhBody "lbox.x"))
		(XPhBodyGetAVelocity box)

	XPhBodySetAVelocity
	(XPhBodySetAVelocity obj velocity)
	動作
		物体の角速度ベクトルを設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		velocity : 物体の角速度ベクトル

	返値
		tが返ります.

	例
		(def box (LoadXPhBody "lbox.x"))
		(XPhBodySetAVelocity box '(0 12 0))

	SetXPhCameraMat
	(SetXPhCameraMat Matrix)
	動作
		カメラの姿勢と位置を設定します.
	引数
		Matrix : カメラの姿勢と位置をあらわす行列
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)

	返値
		tが返ります.
				
	例
		(SetXPhCameraMat '((1 0 0)(0 1 0)(0 0 1)(0 0 0)))

	SetXPhSimulationFlag
	(SetXPhSimulationFlag flag)
	動作
		カメラの姿勢と位置を設定します.
	引数
		flag : 非nil(tなど)ならばシミュレーションをおこなう
				nilならばシミュレーションをおこなわない.

	返値
		tが返ります.
				
	例
		(SetXPhSimulationFlag t)
		(SetXPhSimulationFlag nil)

	GetXPhCameraMat
	(GetXPhCameraMat)
	動作
		カメラの姿勢と位置を設定します.

	返値
		カメラの姿勢と位置をあらわす行列が返ります.
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)
				
	例
		(GetXPhCameraMat)

	SetXPhVertexTransformMat
	(SetXPhVertexTransformMat obj Matrix)
	動作
		物体の頂点をMatrixで変換します
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Matrix : 頂点を変換する行列
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)
	返値
		成功すればtが返る
	説明
		SetXPhBodyMatで物体を移動させた場合は
		物体の軌跡は不連続となります.
		つまり壁の手前から壁の向こう側に
		SetXPhBodyMatで移動させた場合は
		そのまま通り抜けます.

	例
		(def x (LoadXPhBody "box.x"))
		(SetXPhBodyMat x '((1 0 0)(0 1 0)(0 0 1)(0 5 0)))

	SetCollisionReboundCoeff
	(SetCollisionReboundCoeff coef)
	動作
		デフォルトの跳ね返り係数の設定
	引数
		coef : 跳ね返り係数を設定する
	返値
		成功すればtが返る

	例
		(SetCollisionReboundCoeff 0.5)

	GetCollisionReboundCoeff
	(GetCollisionReboundCoeff)
	動作
		デフォルトの跳ね返り係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionReboundCoeff)

	SetCollisionSpringCoeff
	(SetCollisionSpringCoeff coef)
	動作
		デフォルトの接触時のばね係数の設定
	引数
		coef : 跳ね返り係数を設定する
	返値
		成功すればtが返る

	例
		(SetCollisionSpringCoeff 20.0f)

	GetCollisionSpringCoeff
	(GetCollisionSpringCoeff)
	動作
		デフォルトの接触時のばね係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionSpringCoeff)

	SetCollisionStaticFrictionCoeff
	(SetCollisionStaticFrictionCoeff coef)
	動作
		デフォルトの接触時の静摩擦係数の設定
	引数
		coef : 跳ね返り係数を設定する
	返値
		成功すればtが返る

	例
		(SetCollisionStaticFrictionCoeff 0.7f)

	GetCollisionStaticFrictionCoeff
	(GetCollisionStaticFrictionCoeff)
	動作
		デフォルトの接触時の静摩擦係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionStaticFrictionCoeff)

	SetCollisionDynamicFrictionCoeff
	(SetCollisionDynamicFrictionCoeff coef)
	動作
		デフォルトの接触時の動摩擦係数の設定
	引数
		coef : 動摩擦係数
	返値
		成功すればtが返る

	例
		(SetCollisionDynamicFrictionCoeff 0.5f)

	GetCollisionDynamicFrictionCoeff
	(GetCollisionDynamicFrictionCoeff)
	動作
		デフォルトの接触時の動摩擦係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionDynamicFrictionCoeff)

	SetCollisionVerticalDamperCoeff
	(SetCollisionVerticalDamperCoeff coef)
	動作
		デフォルトの接触時の垂直方向の粘性摩擦係数の設定
	引数
		coef : 垂直方向の粘性摩擦係数
	返値
		成功すればtが返る

	例
		(SetCollisionVerticalDamperCoeff 0.5f)

	GetCollisionVerticalDamperCoeff
	(GetCollisionVerticalDamperCoeff)
	動作
		デフォルトの接触時の垂直方向の粘性摩擦係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionVerticalDamperCoeff)

	SetCollisionHorizontalDamperCoeff
	(SetCollisionHorizontalDamperCoeff coef)
	動作
		デフォルトの接触時の水平方向の粘性摩擦係数の設定
	引数
		coef : 水平方向の粘性摩擦係数
	返値
		成功すればtが返る

	例
		(SetCollisionHorizontalDamperCoeff 0.1f)

	GetCollisionHorizontalDamperCoeff
	(GetCollisionHorizontalDamperCoeff)
	動作
		デフォルトの接触時の水平方向の粘性摩擦係数の取得
	返値
		成功すれば係数が返る

	例
		(GetCollisionHorizontalDamperCoeff)

	SetInterferencePermitDistance
	(SetInterferencePermitDistance coef)
	動作
		デフォルトのめり込み許容量の設定
	引数
		coef : めり込み許容量
	返値
		成功すればtが返る

	例
		(SetInterferencePermitDistance 0.1f)

	GetCollisionHorizontalDamperCoeff
	(GetCollisionHorizontalDamperCoeff)
	動作
		デフォルトのめり込み許容量の取得
	返値
		成功すればデフォルトのめり込み許容量が返る

	例
		(GetCollisionHorizontalDamperCoeff)

	SetGravity
	(SetGravity coef)
	動作
		重力係数の設定
	引数
		coef : 重力係数
	返値
		成功すればtが返る

	例
		(SetGravity 0.1f)

	GetGravity
	(GetGravity)
	動作
		重力係数の取得
	返値
		成功すればデフォルトの重力係数が返る

	例
		(GetGravity)

	SetCollisionSatisfyCoefficientScale
	(SetCollisionSatisfyCoefficientScale coef)
	動作
		制約問題を解く際の最急降下法のステップ幅を設定する
	引数
		coef : 最急降下法のステップ幅
	返値
		成功すればtが返る

	例
		(SetCollisionSatisfyCoefficientScale 10.0f)

	GetCollisionSatisfyCoefficientScale
	(GetCollisionSatisfyCoefficientScale)
	動作
		制約問題を解く際の最急降下法のステップ幅を取得
	返値
		成功すれば最急降下法のステップ幅が返る

	例
		(GetCollisionSatisfyCoefficientScale)

	SetCollisionSatisfyRepeatMax
	(SetCollisionSatisfyRepeatMax num)
	動作
		接触の制約力を最急降下法で計算するときの
		1回の衝突判定につきおこなわれる最大の反復回数を設定する.
	引数
		num : 反復回数
	返値
		成功すればtが返る

	例
		(SetCollisionSatisfyRepeatMax 5)

	GetCollisionSatisfyRepeatMax
	(GetCollisionSatisfyRepeatMax)
	動作
		接触の制約力を最急降下法で計算するときの最大の反復回数を取得
	返値
		成功すれば反復回数が返る

	例
		(GetCollisionSatisfyRepeatMax)

	SetLinkSatisfyRepeatMax
	(SetLinkSatisfyRepeatMax num)
	動作
		接触以外(関節など)の制約力を最急降下法で計算するときの
		1回の衝突判定につきおこなわれる最大の反復回数を設定する.
	引数
		num : 反復回数
	返値
		成功すればtが返る

	例
		(SetLinkSatisfyRepeatMax 4)

	GetLinkSatisfyRepeatMax
	(GetLinkSatisfyRepeatMax)
	動作
		接触以外(関節など)の制約力を最急降下法で計算するときの最大の反復回数を取得
	返値
		成功すれば反復回数が返る

	例
		(GetLinkSatisfyRepeatMax)

	SetRetryCollisionMax
	(SetRetryCollisionMax num)
	動作
		1stepの間に衝突判定をおこなう回数を設定する
	引数
		num : 衝突判定をおこなう回数
	返値
		成功すればtが返る

	例
		(SetRetryCollisionMax 3)

	GetRetryCollisionMax
	(GetRetryCollisionMax)
	動作
		1stepの間に衝突判定をおこなう回数を取得
	返値
		成功すれば衝突判定をおこなう回数が返る

	例
		(GetRetryCollisionMax)

	SetSimulationStepSize
	(SetSimulationStepSize sz)
	動作
		シミュレーションのステップサイズの設定
	引数
		sz : ステップサイズ
	返値
		成功すればtが返る

	例
		(SetSimulationStepSize (/ 1.0 100.0))

	GetSimulationStepSize
	(GetSimulationStepSize)
	動作
		シミュレーションのステップサイズを取得
	返値
		ステップサイズが返る

	例
		(GetSimulationStepSize)

	SetSimulationRepeatSize
	(SetSimulationRepeatSize sz)
	動作
		1回の描画にstepを進める回数の設定.
		1000倍した値を設定する
	引数
		sz : 1回の描画にstepを進める回数の1000倍
	返値
		成功すればtが返る

	例
		(SetSimulationRepeatSize 2000)	;1frameにつき2stepシミュレーションを進める

	GetSimulationRepeatSize
	(GetSimulationRepeatSize)
	動作
		1回の描画にstepを進める回数の取得.
		1000倍した値が取得される.
	返値
		1回の描画にstepを進める回数の1000倍が返る

	例
		(GetSimulationStepSize)

	XPhBodySetFunction
	(XPhBodySetFunction obj func)
	動作
		物体にstepごとに呼ばれる関数を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		func : 関数(lambda (this) ... )

	返値
		tが返ります.

	例
		tutorial\basic.lspを参照

	XPhBodyGetFunction
	(XPhBodyGetFunction obj func)
	動作
		物体に設定されているstepごとに呼ばれる関数を取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		関数(lambda (this) ... )が返ります.

	例
		tutorial\basic.lspを参照

	XPhBodySetData
	(XPhBodySetData obj data)
	動作
		物体にLispオブジェクトを割り当てる.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		data : 物体に割り当てられたデータ

	返値
		tが返ります.

	XPhBodyGetData
	(XPhBodyGetData obj)
	動作
		物体に割り当てられたLispオブジェクトを取得する.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体に割り当てられたデータが返ります.

	XPhBodySetSameCGroupEachChild
	(XPhBodySetSameCGroupEachChild obj)
	動作
		物体とそれより下層にあるオブジェクトそれぞれに対する
		衝突判定をおこなわないように設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.

	XPhBodyGetKeyState
	(XPhBodyGetKeyState key_code)
	動作
		キーが押されているかどうかを判定します.
	引数
		key_code : キーコード

	返値
		キーが押されていればtが返ります.
		キーが押されていなければnilが返ります.

	XPhBodySetMass
	(XPhBodySetMass obj mass)
	動作
		物体の質量を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		mass : 質量

	返値
		関数が成功すればtが返ります.

	XPhBodyGetMass
	(XPhBodyGetMass obj)
	動作
		物体の質量を取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の質量が返ります.

	XPhBodySetInertiaTensor
	(XPhBodySetInertiaTensor obj Inertia)
	動作
		物体の慣性テンソルを設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		Inertia : 慣性テンソル

	返値
		関数が成功すればtが返ります.

	XPhBodyGetInertiaTensor
	(XPhBodyGetInertiaTensor obj)
	動作
		物体の慣性テンソルを取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		物体の慣性テンソルが返ります.

	XPhBodyGetInertiaTensorFromAABB
	(XPhBodyGetInertiaTensorFromAABB obj)
	動作
		物体を内包するAABB(Axis Aligned Boiunding Box)をもとに
		慣性テンソルを求めます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		求められた慣性テンソルが返ります.

	XPhBodyAddJointChild
	(XPhBodyAddJointChild obj child position axis direction radius)
	動作
		物体に子の物体を加えるとともに関節を作ります.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		child : 子のオブジェクト<LSObj TDycLispXPhBody>
		position : 関節の位置
		axis : 関節の軸
		direction : 回転の基準とする方向
		radius : トルク接続点の距離(トルクバネの係数のようなもの)

	返値
		関節オブジェクト<LSObj TDycLispXPhJoint>が返ります.

	解説
		直接の親子関係にある物体は衝突判定が無視されるため
		親に子をめり込ませて接続した物体を表現することができます.

	XPhBodyAddFixedChild
	(XPhBodyAddFixedChild obj child)
	動作
		物体に子の物体を親に固定されているものとして加えます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		child : 子のオブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.

	解説
		直接の親子関係にある物体は衝突判定が無視されるため
		親に子をめり込ませて接続した物体を表現することができます.

	XPhBodyRemoveChild
	(XPhBodyRemoveChild child)
	動作
		子の物体を親からはずします.
	引数
		child : 子のオブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.
	解説
		直接の親子関係にある物体は衝突判定が無視されているわけですが
		この関数を呼んで子を親からはずした場合はそのとたんに衝突判定が
		有効になります.めり込んだ状態からシミュレーションをおこなうと
		現在のシミュレータの仕様では物体が弾き飛ばされるような
		現象が発生するためめり込まない位置に移動させる必要があります.

	XPhBodyRemoveFromWorld
	(XPhBodyRemoveFromWorld obj)
	動作
		ワールドから物体を取り外します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.

	XPhBodyAddToWorld
	(XPhBodyAddToWorld obj)
	動作
		ワールドに物体を加えます.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		tが返ります.

	解説
		物体を加えたときに他の物体にめり込んでいると
		現在のシミュレータの仕様では物体が弾き飛ばされるような
		現象が発生するためめり込まない位置に移動させる必要があります.

	XPhJointSetTorque
	(XPhJointSetTorque joint value)
	動作
		関節に発生させるトルクを設定します
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : トルク

	返値
		tが返ります.

	解説
		関節のトルクは一度設定すると
		それ以降のステップでもそのまま有効です.

	XPhJointSetRotationalDamper
	(XPhJointSetRotationalDamper joint value)
	動作
		関節の回転にかかる粘性摩擦係数を設定します
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 粘性摩擦係数

	返値
		tが返ります.

	XPhJointGetRotationalDamper
	(XPhJointGetRotationalDamper joint)
	動作
		関節の回転にかかる粘性摩擦係数を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		粘性摩擦係数が返ります.

	XPhJointSetBrake
	(XPhJointSetBrake joint value)
	動作
		関節のブレーキにかかる力を指定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : ブレーキにかかる力

	返値
		tが返ります.
	解説
		関節にかかる動摩擦は
		brake * 動摩擦係数
		でかかります.

	XPhJointGetBrake
	(XPhJointGetBrake joint)
	動作
		関節のブレーキにかかる力を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		ブレーキにかかる力が返ります.

	XPhJointSetMinTheta
	(XPhJointSetMinTheta joint value)
	動作
		関節の回転角の最小値を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 関節の回転角の最小値

	返値
		tが返ります.

	XPhJointGetMinTheta
	(XPhJointGetMinTheta joint)
	動作
		関節の回転角の最小値を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の回転角の最小値が返ります.

	XPhJointSetMaxTheta
	(XPhJointSetMaxTheta joint value)
	動作
		関節の回転角の最大値を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 関節の回転角の最大値

	返値
		tが返ります.

	XPhJointGetMaxTheta
	(XPhJointGetMaxTheta joint)
	動作
		関節の回転角の最大値を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の回転角の最大値が返ります.

	XPhJointSetStaticFrictionCoeff
	(XPhJointSetStaticFrictionCoeff joint value)
	動作
		関節の静摩擦係数を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 関節の静摩擦係数

	返値
		tが返ります.

	XPhJointGetStaticFrictionCoeff
	(XPhJointGetStaticFrictionCoeff joint)
	動作
		関節の静摩擦係数を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の静摩擦係数の最大値が返ります.

	XPhJointSetStaticFrictionCoeff
	(XPhJointSetStaticFrictionCoeff joint value)
	動作
		関節の静摩擦係数を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 関節の静摩擦係数

	返値
		tが返ります.

	XPhJointGetStaticFrictionCoeff
	(XPhJointGetStaticFrictionCoeff joint)
	動作
		関節の静摩擦係数を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の静摩擦係数の最大値が返ります.

	XPhJointGetDTheta
	(XPhJointGetDTheta joint)
	動作
		関節の角速度を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の角速度が返ります.

	XPhJointGetDTheta
	(XPhJointGetDTheta joint)
	動作
		関節の回転角を取得します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		関節の回転角が返ります.

	XPhBodySetEAirRegistance
	(XPhBodySetEAirRegistance obj value)
	動作
		物体の速度に関してかかる粘性摩擦係数(空気抵抗のようなもの)を設定します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
		value : 粘性摩擦係数

	返値
		tが返ります.

	XPhBodyGetEAirRegistance
	(XPhBodyGetEAirRegistance obj)
	動作
		物体の速度に関してかかる粘性摩擦係数(空気抵抗のようなもの)を取得します.
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>

	返値
		粘性摩擦係数が返ります.

	XPhBodyGetFuncResult
	(XPhBodyGetFuncResult obj)
	動作
		物体に設定したstepごとに呼ばれる関数の返値を取得します.
	引数
		obj : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		物体に設定した関数の返値が返ります.

	解説
		おもに物体に設定した関数のデバッグに使います.
		エラーが発生したときはどこでエラーが発生したなどの
		情報を得ることができます.

	XPhBodyJointSpringCoeff
	(XPhBodyJointSpringCoeff joint value)
	動作
		関節を表現するバネののバネ係数を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : バネ係数

	返値
		tが返ります.

	XPhBodyJointSpringDamper
	(XPhBodyJointSpringDamper joint value)
	動作
		関節を表現するバネの粘性摩擦係数を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : 粘性摩擦係数

	返値
		tが返ります.

	XPhBodyJointAxisSpringLimit
	(XPhBodyJointAxisSpringLimit joint value)
	動作
		関節の軸を表現するバネの伸びの限界を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : バネの伸びの限界

	返値
		tが返ります.

	XPhBodyJointTorqueSpringLimit
	(XPhBodyJointTorqueSpringLimit joint value)
	動作
		関節のトルクを伝える働きをするバネの伸びの限界を設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		value : バネの伸びの限界

	返値
		tが返ります.

	XPhBodyJointLimitFlag
	(XPhBodyJointLimitFlag joint flag)
	動作
		関節に回転の限界を設けるかどうか設定をおこないます.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>
		flag : 非nil(tなど)ならば関節に回転の限界を設ける
				nilならば関節に回転の限界を設けない

	返値
		tが返ります.

	XPhBodyJointGuessParam
	(XPhBodyJointGuessParam joint flag)
	動作
		関節のパラメータを質量や慣性テンソルなどの値から
		バネ係数などのパラメータを設定します.
	引数
		joint : 関節オブジェクト<LSObj TDycLispXPhJoint>

	返値
		tが返ります.

	XPhSet_EasyViewText
	(XPhSet_EasyViewText string)
	動作
		画面に対して簡単な文字列の描画をおこないます.
	引数
		string : 描画する文字列

	返値
		tが返ります.

	XPhPIDMake
	(XPhPIDMake)
	動作
		PIDコントローラオブジェクトの作成
	返値
		PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
	解説
		このオブジェクトではPID制御を次のような形でおこないます.
		o = 100/p * (e + integral(e) / i + differential(e) * d)
		このとき,oを出力, eを目標の値と現在の値の誤差,
		integral(e)はeの積分,differential(e)はeの微分を
		表すものとします.
		また,pは比例帯,iは積分時間, dは微分時間と呼ばれます.

	XPhPIDSetParam
	(XPhPIDSetParam pid p i d)
	動作
		PIDのパラメータの設定
	引数
		pid : PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
		p : 比例帯
		i : 積分時間
		d : 微分時間
	返値
		tを返します.


	XPhPIDSetState
	(XPhPIDSetState pid state)
	動作
		PIDの現在の値の入力
	引数
		pid : PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
		state : 現在の値
	返値
		tを返します.


	XPhPIDSetTarget
	(XPhPIDSetTarget pid target)
	動作
		PIDの目標の値を設定
	引数
		pid : PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
		target : 目標の値
	返値
		tを返します.


	XPhPIDStep
	(XPhPIDStep pid dt)
	動作
		PIDの時間をすすめ,出力を得る
	引数
		pid : PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
		dt : ステップ幅
	返値
		出力を返します.


	XPhPIDSetOutPutRange
	(XPhPIDSetOutPutRange pid mn mx)
	動作
		PIDコントローラの出力の最小値,最大値を指定する.
	引数
		pid : PIDコントローラオブジェクト<LSObj TDycLispPIDObj>
		mn : 出力の最小値
		mx : 出力の最大値
	返値
		tを返します.


	XPhLoadLand
	(XPhLoadLand heightmap texture)
	動作
		地形を高さを表す"*.bmp"とテクスチャー"*.bmp"から作成する.
	引数
		heightmap : 地形を高さを表すビットマップファイルの名前
		texture : テクスチャーのビットマップファイルの名前
	返値
		地形オブジェクト<LSObj TDycLispLandObj>を返します.


	SetXPhLandMat
	(SetXPhLandMat land matrix)
	動作
		地形の位置と姿勢を設定する.(姿勢の変更は現在対応していない)
	引数
		land : 地形オブジェクト<LSObj TDycLispLandObj>
		matrix : 地形の位置と姿勢をあらわす行列
				(list
					(x軸の方向)
					(y軸の方向)
					(z軸の方向)
					(物体の中心位置)
				)
	返値
		tを返します.


	XPhLandSetVisualMaterial
	(XPhLandSetVisualMaterial land material)
	動作
		地形の地形の見かけ上のマテリアルを設定する.
	引数
		land : 地形オブジェクト<LSObj TDycLispLandObj>
		material : 地形の見かけ上のマテリアル
			(list
				(list diffuseR diffuseG diffuseB diffuseA)
				(list ambientR ambientG ambientB ambientA)
				(list specularR specularG specularB specularA)
				power
			)
	返値
		tを返します.


	XPhFogEnable
	(XPhFogEnable flag)
	動作
		フォグを使用するかどうかの設定.
	引数
		flag : 非nil(tなど)ならばフォグを有効に
				nilならばフォグを無効に
	返値
		tを返します.


	XPhFogNear
	(XPhFogNear dist)
	動作
		フォグをかけ始める距離を指定します.
	引数
		dist : フォグをかけ始める距離
	返値
		tを返します.


	XPhFogFar
	(XPhFogFar dist)
	動作
		フォグの効果が最大に達する距離の設定.
	引数
		dist : フォグの効果が最大に達する距離
	返値
		tを返します.


	XPhBgColor
	(XPhBgColor r g b)
	動作
		背景色の設定.
	引数
		r : 赤(0 〜 255)
		g : 緑(0 〜 255)
		b : 青(0 〜 255)
	返値
		tを返します.


	XPhBodySetParticle
	(XPhBodySetParticle obj name texture num)
	動作
		パーティクル管理オブジェクト<LSObj TDycLispBBParticle>の作成
	引数
		obj : パーティクル管理オブジェクトを保持する物体オブジェクト<LSObj TDycLispXPhBody>
		name : パーティクル管理オブジェクトの名前の文字列
		texture : テクスチャに使用する*.bmpの文字列
		num : パーティクル管理オブジェクトが保持できるパーティクルの数
	返値
		パーティクル管理オブジェクト<LSObj TDycLispBBParticle>を返します.


	XPhMakeParticle
	(XPhMakeParticle particleobj Position sigmaposition Velocity sigmavelocity 
					Force damper Color DColor width sigmawidth dwidth life
					num)
	動作
		パーティクルの作成
	引数
		particleobj : パーティクル管理オブジェクト<LSObj TDycLispBBParticle>
		Position : パーティクルの発生位置の平均値(x y z)
		sigmaposition : パーティクルの発生位置の分布半径
		Velocity : パーティクルの初速度の平均値(x y z)
		sigmavelocity : パーティクルの初速度の分布半径
		Force : パーティクルにかかり続ける力(x y z)
		damper : 粘性摩擦係数
		Color : 初期の色(a r g b)
		DColor : 色の変化速度(a r g b)
		width : パーティクルの幅の平均値
		sigmawidth : パーティクルの幅の分布半径
		dwidth : パーティクルの幅の1秒間で変化する率
		life : パーティクルの寿命
		num : 作るパーティクルの数
	返値
		tを返します.

	SetEditChara
	(SetEditChara obj)
	動作
		編集時に動くキャラクタの設定
	引数
		obj : 物体オブジェクト<LSObj TDycLispXPhBody>
	返値
		tを返します.


	GetEditChara
	(GetEditChara)
	動作
		編集時に動くキャラクタの取得
	返値
		物体オブジェクト<LSObj TDycLispXPhBody>を返します.


	SetMouseDownProc
	(SetMouseDownProc proc)
	動作
		マウスのボタンが押されたときに呼ばれる関数の設定.
	引数
		proc : Lispの関数
				(lambda (mode sx sy dx dy dz px py pz) ...)
					mode : どのボタンが押されたかのフラグ
					sx, sy : 画面上の座標
					dx, dy, dz : 視点からマウスで押された点の方向ベクトル
					px, py, pz : 視点の位置
	返値
		tを返します.

	GetMouseDownProc
	(GetMouseDownProc)
	動作
		マウスのボタンが押されたときに呼ばれる関数の取得
	返値
		Lispの関数(lambda (mode sx sy dx dy dz px py pz) ...)を返します.


	SetMouseMoveProc
	(SetMouseMoveProc proc)
	動作
		マウスのボタンが動いたときに呼ばれる関数の設定.
	引数
		proc : Lispの関数
				(lambda (mode sx sy dx dy dz px py pz) ...)
					mode : どのボタンが押されたかのフラグ
					sx, sy : 画面上の座標
					dx, dy, dz : 視点からマウスで押された点の方向ベクトル
					px, py, pz : 視点の位置
	返値
		tを返します.

	GetMouseMoveProc
	(GetMouseMoveProc)
	動作
		マウスのボタンが動いたときに呼ばれる関数の取得.
	返値
		Lispの関数(lambda (mode sx sy dx dy dz px py pz) ...)を返します.


	SetMouseUpProc
	(SetMouseUpProc proc)
	動作
		マウスのボタンが離されたときに呼ばれる関数の設定.
	引数
		proc : Lispの関数
				(lambda (mode sx sy dx dy dz px py pz) ...)
					mode : どのボタンが押されたかのフラグ
					sx, sy : 画面上の座標
					dx, dy, dz : 視点からマウスで押された点の方向ベクトル
					px, py, pz : 視点の位置
	返値
		tを返します.

	GetMouseUpProc
	(GetMouseUpProc)
	動作
		マウスのボタンが離されたときに呼ばれる関数の取得.
	返値
		Lispの関数(lambda (mode sx sy dx dy dz px py pz) ...)を返します.


	SetMouseData
	(SetMouseData data)
	動作
		マウス関数用に用意されたのデータ領域にLispオブジェクトを設定.
	引数
		data : Lispオブジェクト
	返値
		tを返します.

	GetMouseData
	(GetMouseData)
	動作
		マウス関数用に用意されたのデータ領域にLispオブジェクトを取得.
	返値
		Lispオブジェクトを返します.

	XPhDrawLine
	(XPhDrawLine Color P0 P1)
	動作
		マウス関数用に用意されたのデータ領域にLispオブジェクトを設定.
	引数
		Color : 線の色(list r g b a)
		P0 : 線の始点(list x y z)
		P1 : 線の終点(list x y z)
	返値
		tを返します.
	例
		(XPhDrawLine '(255 0 0 255) '(0 0 0) '(0 10 0))

	XPhRayPick
	(XPhRayPick Direction Position)
	動作
		Positionを始点としてDirection方向に伸びる半直線と
		物体オブジェクトの面の交差を求め一番近い物体オブジェクトと
		交点位置と半直線のパラメータparamを返す.
		半直線の式は
			x = Direction * param + Position
		である.
	引数
		Color : 線の色(list r g b a)
		P0 : 線の始点(list x y z)
		P1 : 線の終点(list x y z)
	返値
		交差が検出されればリスト(list obj XP param)を返します.
				obj : 物体オブジェクト<LSObj TDycLispXPhBody>
				XP : 交点
				param : 半直線のパラメータ

	SetLispConsoleMenu
	(SetLispConsoleMenu popname itemname proc)
	動作
		KANI Lisp Consoleにメニューを加える.
	引数
		popname : メニューを加えるグループの名前
		itemname : メニューの項目の名前
		proc : メニューがクリックされたときに呼ばれるLispの関数(lambda () ...)
				nilの場合は項目の消去
	返値
		tを返します.