【MME】FreeCamera0.2

作者 : 资源姬 2021-04-11分类:MME特效
///////////////////////////////////////////////////////////////////////////////////////
//
//名称透视改变效果ver0.2。
// 支持MikuMikuEffect ver0.2x。
// 由 kion 创建
// 更新于2010.12.29
//
///////////////////////////////////////////////////////////////////////////////////////
这些是可以和MikuMikuEffect ver0.2x一起使用的效果文件(*.fx)。
用MMDver7.25 + MMEver0.23测试。

一种改变观点的效果。
包括平滑功能。


关于MikuMikuEffect
这是一款可以在Maiki Intervention P.制作的MikuMikuDance中使用效果文件的工具。
更多信息 → http://www.nicovideo.jp/watch/sm12149815


文件内容
readme.txt 这个文件
CameraFull.x / 用于加载CameraFull.fx的附件。
CameraFull.fx / 效果文件本身
CameraSmooth.x / 用于加载CameraSmooth.fx的附件。
CameraSmooth.fx / 计算并平滑视点的矩阵。
Camera1.fx / 改变视点并绘制对象。
Cam1Pos.x / 设置摄像机位置的附件。

non.fx / GPU负载减少参考资料

Camera1.fx改变对象的视角并绘制它。
如果Cam1Pos.x的名字被更改,CameraSmooth.fx和Camera1.fx就无法获取信息,所以不要更改。


机制
用CameraSmooth.fx计算视图矩阵,进行平滑处理,并将其写入纹理。
在Camera1.fx中读取上述纹理,改变视角并绘制。
CameraFull.fx使用Camera1.fx输出画在离屏缓冲区的内容。
平滑是一种平均法,所以会有轻微的延迟。


如何使用
装入以下文件:
CameraFull.x
CameraSmooth.x
Cam1Pos.x
Cam1Pos.x是摄像机的位置,蓝面的方向是摄像机的视线。
在Cam1Pos.x的大小(Si)中以度数来指定视角。 初始值是1,所以可以改成45或60。

例子:Kagamine Len.pmd中的FPS视图。
Cam1Pos.x置于头骨上。
(x,y,z)=(0,2,-2) (Rx,Ry,Rz)=(0,180,0) Si=90。

请确保至少按一次[播放]按钮来初始化视点数据。


使用Kinect时,使用FPS视角或角色后视图的设置。
(就MMD版本7.24而言)
将Data/SamplesConfig.xml的第26行改写为。
(MMDver7.25或更高版本)
取消勾选菜单中的 "动作捕捉"->"向左/向右翻转"。


参数
平滑效果可以通过CameraSmooth.fx的以下参数进行设置。
// 阈值
float LimitPos = 0.01。
float LimitQuat = 0.02。
除非超过LimitPos和LimitQuat指定的值,否则它不会移动。
LimitPos是位置,LimitQuat是倾斜调整值。
主要是抑制微小振动的设定值。 值越大,可以抑制的振动越多。
另一方面,如果你把它做得很大,动作也会变得波涛汹涌,所以你应该把数值尽量做小。

// 平滑量(1<)
#define POS_SMOOTH 6
#define QUAT_SMOOTH 6。
存储包括当前帧在内的过去帧的视点信息,并通过计算平均值进行平滑处理。
数值越大,图像越平滑,但由于图像是由过去的信息拉动的,所以延迟变大。

// 平滑的开始时间。
#define WAIT_TIME 0.1。
按下播放按钮后初始化的时间(秒)。
当FPS极小(小于1)时,不妨增加FPS。

如果你想禁用平滑
更改值如下
// 阈值
float LimitPos = 0.0;
float LimitQuat = 0.0;
// 平滑量(1<)
#define POS_SMOOTH 1
#define QUAT_SMOOTH 1
即使你禁用它,也最好使用FreeCamera0.1x,因为它有额外的平滑过程。


注意事项和问题
如果摄像机的位置与原MMD位置相差太大,可能会出现边缘过厚的情况。
边缘可能会变得太厚或太薄。
请将相机放置在类似的位置或关闭边缘。
不支持自我阴影。


局限性
因为Camera1.fx是用来绘制模型的,所以由于它的结构,其他效果文件无法使用。
Clone.fx、Glass.fx、Sensitive Toon等不能使用。
唯一的办法就是修改Camera1.fx。


减少GPU负载
当CameraFull.x被启用时,不使用绘制结果到MainRenderTarget。
如果你使用non.fx,会更轻一些。
请从MME菜单 "Assign Effect "中对每个绘图模型应用non.fx。


分销
修改和再分配是免费的。


更新历史
2010.12.29 ver0.2
 增加平滑功能
2010.12.27 ver0.13
 增加了GPU减负non.fx。
2010.12.27 ver0.12
 介绍了抓捕的方法。 球面图计算正确。
2010.12.26 ver0.11
 运动量变得恒定。 可以调整放大倍数。
 调整了参数,修改了参数说明。
2010.12.26版本0.1发布。
*** 使用www.DeepL.com/Translator翻译(免费版) ***



///////////////////////////////////////////////////////////////////////////////////////
//
//	名前	視点変更エフェクト ver0.2
//	対応	MikuMikuEffect ver0.2x用
//	作成者	kion
//	更新日	2010.12.29
//
///////////////////////////////////////////////////////////////////////////////////////
MikuMikuEffect ver0.2x で使用可能なエフェクトファイル(*.fx)です。
MMDver7.25 + MMEver0.23で動作確認済み

視点を変更するエフェクト。
平滑化機能付き。


●MikuMikuEffectについて
舞力介入Pにより作られたMikuMikuDanceでエフェクトファイルを使用可能にするツールです。
詳しくは→http://www.nicovideo.jp/watch/sm12149815


●ファイル内容
readme.txt このファイル
CameraFull.x	/CameraFull.fx読み込み用アクセサリ
CameraFull.fx	/エフェクトファイル本体
CameraSmooth.x	/CameraSmooth.fx読み込み用アクセサリ
CameraSmooth.fx	/視点の行列を計算、および平滑化
Camera1.fx	/視点を変更してオブジェクトを描画する
Cam1Pos.x	/カメラ位置とを設定するアクセサリ

non.fx		/GPU負荷低減参照

Camera1.fxによってオブジェクトを別の視点に変更して描画します。
Cam1Pos.xの名前を変更するとCameraSmooth.fxとCamera1.fxで情報が取得できなくなるので変更しないでください。


●仕組み
CameraSmooth.fxでビュー行列を計算、平滑化処理をしてテクスチャに書き出す。
Camera1.fx内で上のテクスチャを読み込み、視点を変更して描画。
CameraFull.fxでCamera1.fxを使ってオフスクリーンバッファに描画した内容を出力しています。
平滑化は平均をとる方法になっているため、少し遅延します。


●使い方
以下のファイルを読み込む。
・CameraFull.x
・CameraSmooth.x
・Cam1Pos.x
Cam1Pos.xがカメラ位置、青い面の向いてる方向がカメラの視線方向になります。
Cam1Pos.xのサイズ(Si)に視野角を度数で指定します。初期状態は1なので、45や60など適当に変更してください。

例:鏡音レン.pmdでFPS視点
Cam1Pos.x 頭ボーンに設置
(x,y,z)=(0,2,-2) (Rx,Ry,Rz)=(0,180,0) Si=90

※視点データの初期化用に[再生ボタン]を必ず1回は押してください。


●Kinect使用時FPS視点やキャラ後方視点にする場合の設定
(MMDver7.24の場合)
Data/SamplesConfig.xmlの26行目をに書き換えてください。
(MMDver7.25以降)
メニューの「モーションキャプチャ」→「左右反転」のチェックをはずす。


●パラメータ
CameraSmooth.fxの以下のパラメータで平滑化の設定ができます。
// 閾値
float LimitPos = 0.01;
float LimitQuat = 0.02;
LimitPos,LimitQuatで指定した値を超えない限り動かないようになります。
LimitPosは位置、LimitQuatは傾きの調整値。
主に、小さな振動を抑えるための設定値です。大きくすると振動を抑えることができる。
一方で、大きくすると動きがカクつくようにもなるのでなるべく小さい値にするべき。

// 平滑化量(1<)
#define POS_SMOOTH	6
#define QUAT_SMOOTH	6
現在のフレームも含めた過去のフレームの視点情報を保存し、平均値を計算して平滑化しています。
値が大きいほどなめらかになりますが、過去の情報に引っ張られるため遅延が大きくなります。

// 平滑化開始時間
#define WAIT_TIME	0.1
再生ボタンが押されてから初期化しておく時間(秒)。
基本的に変更する必要はない。FPSが極端に小さいとき(1以下)は大きくしたほうがいいかも。

・平滑化を無効にする場合
以下のように値を変更
// 閾値
float LimitPos = 0.0;
float LimitQuat = 0.0;
// 平滑化量(1<)
#define POS_SMOOTH	1
#define QUAT_SMOOTH	1
無効にしても、平滑化の余分な処理があるのでFreeCamera0.1xを使用した方が良い。


●注意点・問題点
エッジ固定処理を行っていないので、MMD本来のカメラの位置と大きく異なると
エッジが太くなりすぎたり、細くなりすぎたりします。
カメラの位置を同じような位置に置くか、エッジをOFFにしてください。
セルフシャドウには、対応していません。


●制限
Camera1.fxを使用してモデルを描画するので、仕組み上他のエフェクトファイルが使用できません。
Clone.fx、Glass.fx、センシティブトゥーンなどは使用できない。
Camera1.fxを改造するしかないです。


●GPU負荷低減
CameraFull.xを有効にしているときはMainRenderTargetへの描画結果は使いません。
MainRenderTargetにnon.fxを使用することで描画を省きます。non.fxを使用すると少し軽くなります。
MMEメニュー「エフェクト割り当て」から各描画モデルにnon.fxを適用してください。


●配布
改造・再配布は自由です。


●更新履歴
2010.12.29 ver0.2
 平滑化機能追加
2010.12.27 ver0.13
 GPU負荷低減non.fxを追加。
2010.12.27 ver0.12
 キャプチャーの方法を記載。スフィアマップを正しく計算。
2010.12.26 ver0.11
 移動量が一定になるようにした。倍率調整できるようにした。
 パラメータを微調整、パラメータ説明文を修正。
2010.12.26 ver0.1公開

关于收费
微薄收入,仅用于维持服务器。本站模型区全部免费
关于VIP
VIP可以免费下载。月度、年度vip每天可免费下载9次,应该够用。终身vip每天可下载19次,右侧成为vip
注意,请不要重复点击某个资源的下载按钮,每次点击都会计入次数
资源失效处理
1、如果是蓝奏云,将下载链接中的lanzous换成lanzoux即可
2、如果是百度云失效了,那请点右侧发邮件给客服,或者在评论区指出,也可在菜单栏【有问必答】说明
3、如果是其他原因,请右侧按钮发邮件给我