本文へスキップ
LABMenu

AdditiveIK(アディティブアイケー) : モーキャプ物理編集リターゲット(DirectX12, bvh, fbx, Unity, Maya, VRoid対応)


このツールの概要


AdditiveIK(アディティブアイケー)
VRoidとモーキャプをプロのアセットに盛り付けろ!

モーションキャプチャをブラシで盛るように編集 fbxにしてUnityへ

(bvh, fbx, Unity, Maya, VRoid対応)




  Vector様で ダウンロード
1.0.0.8 インストーラ
 オープンソース GitHub
MIT OSS 随時更新
 MIT OSS















 前作EditMot + DirectX12 -> AdditiveIK

(UnityAsset HQ Retro Farmhouse +VRoid)


表現の意味を手に入れろ!

表現のためのモデル編集とモーション編集から
表現のためのシーン編集へ!

モデルもモーションもシーンによって意味が生まれる

UnityAssetStoreでプロのアセットを入手し
それを読込編集保存することが出来る
作業はそこからだ!

(モデルにはVRoidを使用)





ステージ:UnityAsset HQ Retro FarmhouseをAdditiveIKに読込
モデル:VRoid
https://youtu.be/pMRaTOw5B38







ステージ:UnityAsset TheHuntをAdditiveIKに読込
モデル:VRoid

https://youtu.be/R0MsXt8plYg








ステージ:UnityAsset HQ Retro FarmhouseをAdditiveIKに読込
モデル:VRoid

複数モデルに対してモーキャプリターゲット編集


















新機能オーバービュー





ver1.0.0.9以降におけるシェーダー


図:シェーダの種類



図:PBRシェーダでシーンを描画
(Asset: JAPANESE CITY)


図:Std.シェーダでシーンを描画
(Asset: JAPANESE CITY)



図:ShaderTypeParamsDlg
[クリックで元サイズ表示]

Auto, PBR, Std, HSV_Toonから表示を選びます
Autoは設定内容をみて自動的に3種共存します
PBR未設定でもすぐに表示できます

1.0.0.9以降において
全てのシェーダはトゥーンベースの色使いになった
Shaderプレートメニューで
HSV_Toonの設定をしてからAuto, Std.、PBRから
シェーダを選択

トゥーンには3段階トゥーンと
グラデーショントゥーンと
パワートゥーンがある


Std.とPBRの違いとしては
PBRは法線マップとメタルマップ対応
両方とも8個までの有色ライトで昭光













ピック&セット

[クリックで元サイズ表示]

Shader、DispGroupプレートメニュー選択時
Shaderメニューではマウス位置のマテリアル名を
DispGroupメニューではメッシュ名を表示
編集したい名前がみつかったら
そこでマウスクリックすると設定画面が出て
編集項目に自動スクロールする


DispGroupプレートメニュは
メッシュにグループ番号を付けて
グループ番号の小さい順に描画する仕組み
グループ番号1は不透明描画
グループ番号2以上は半透明描画

色が抜けていない半透明メッシュに対して
2以上のグループ番号を設定すれば良い

グループ内では
カメラから近い順に描画

グループごとに表示のON,OFFも可能











シャドウ


[クリックで元サイズ表示]
シャドウプレートメニューから設定画面
有効無効、向き、長さ、明るさを
調整するための設定
8スロット設定可能















HDRPブルーム


[クリックで元サイズ表示]
1.0よりも大きい3.0までのライト設定
マテリアルごとに5.0まで掛ける倍率

シェーダにStdを選び
ライトを1.0より大きくすると自動でブルーム













LOD(詳細度切り替え)


(Asset: HQ Retro Farmhouse)
[クリックで元サイズ表示]
モデル詳細度のカメラ距離による切り替え
LODによるシーンの最適化で描画速度高速化
メッシュ名の命名規則有り
2段階LODと3段階LODに対応



















インスタンシング表示

[クリックで元サイズ表示] 剛体表示



[クリックで元サイズ表示] リグ表示




スライダーで明るさと透明度を設定
モデルの服の色に応じて見易く調整





















 リファレンスポーズ (1.0.0.7から)

[クリックで元サイズ表示]

リファレンスポーズ機能がDirectX12に対応
メモリ制約があるので
リファレンス数はカレントを含めて合計4つ.

選択フレーム範囲の
最初と最後と真ん中とカレントフレームを表示
透明度はDispAndLimitsメニューの
スライダーで調整可能.























 Numキーピッキング (1.0.0.8から)

(Asset: TheHunt)
[クリックで元サイズ表示]

Shader、DispGroupプレートメニュー
マウスをかざすとShaderメニューではマテリアル名
DispGroupメニューではメッシュ名を表示.
2キーを押し続けると
カメラから2番目に近いピック結果を表示.
1から9と0キーに対応.0は10番目の結果.

背景
オブジェクトが重なっている場合
ピックの結果が意図と異なる場合があった.
オブジェクト中心とカメラの距離の
近いものから判定するのが原因.
(頂点の位置ではなくオブジェクト中心)
高速化のために見つかり次第処理を終わらせる.
そのための番号キープッシュ方式.





















ダウンロード


Vector様にて公開開始!
画像&サウンド-->グラフィック関係-->3Dグラフィックス
-->AdditiveIK
2023/12/27夕 ver1.0.0.1
2024/01/10夕 ver1.0.0.2
2024/01/17夕 ver1.0.0.3
2024/01/24夕 ver1.0.0.4
2024/01/31夕 ver1.0.0.5
2024/02/07夕 ver1.0.0.6
2024/02/14夕 ver1.0.0.7スキップ
2024/02/21夕 ver1.0.0.8公開開始
2024/03/06夕 ver1.0.0.9予定


Vector様で ダウンロード 
1.0.0.8インストーラ



オープンソース GitHub
githubにてMIT OSS 随時更新




モーキャプ@夕暮れキッチン
https://youtu.be/pMRaTOw5B38

使い方動画
https://youtu.be/oKGY62YosSg

使用例動画
https://youtu.be/R0MsXt8plYg





ver1.0.0.9 アップデートログ

2024/02/22
 AdditiveIK 1.0.0.9
  1.0.0.8からの変更点
   不具合修正
    ノーマルマップを小さく表示するとモアレが出る不具合修正
    ノーマルマップだけMipMapを0に固定していたのが原因
   AdditiveIKの方向性としてトゥーンベースに
    全てのシェーダ(PBR, Std. Toon)において
    拡散色のシェーディング時にHSV_Toonを参照するように.
    黒くなるシェーディングではなく
    色相を保ちながらまたは色相を変化させながら
    HSVのVが小さくなるシェーディングが可能.
    ベースとなるToon設定としてグラデーションとパワートゥーンを追加.
    顔の陰が綺麗に出るようにNormalY0チェックボックスを追加.
    SpecularCoefスライダでスペキュラーの倍率をマテリアルごとに設定可能に.
   Q2Eul_Thresholdプレートメニューを追加
    Retargetメニューの並びに配置.
    リターゲット時、fbx入出力時と
    姿勢をオイラー角に変換する計算時に使用する閾値の調整が可能.
   Rigidプレートメニューの各項目の右にToDeeperボタンを追加
    選択剛体の全ての子供の剛体に対してカレント値をコピペ.
    例えば手の甲に物理パラメータ設定をして
    ToDeeperボタンを押すと子供の指剛体全部にコピペされる.
   ウインドウ小モードにおける各種ダイアログの大きさ調整.
    見切れすれすれのものが多数あったので対応.
   法線マップとメタルマップのサンプラーのフィルターをMIP_POINTに変更.
    ぼけ過ぎないように.
   UV0とUV1の切り替えテストのためのUVSet決め打ちコードが
    残っていたのを修正. 
    fbxの元のものを読まないと正しく直らないことも有り.
   ScreenShotフォルダの中身を新しいSSに更新.
   TestフォルダのモデルのShader設定を更新. 
    体はStd. 顔だけToonLit2でY0フラグオン. 
    顔のセンターの法線の具合がStd.で光るので対策.
   ドキュメント追加
    0_TroubleShooting/0_シェーダの設定の仕方.docx
    0_TroubleShooting/0_裏返り修正の閾値設定について.docx


ver1.0.0.8 アップデートログ

2024/02/17
 AdditiveIK 1.0.0.8 release
  1.0.0.7からの変更点
   能動的デストラクトとメモリリーク解消
    Direct3Dオブジェクトをメンバに持つ自動変数、static変数、global変数の
    解放を能動的に行った
    アプリ終了時に自動開放を待たずに能動的にデストラクトすることにより
    リークしていたメモリを把握出来て修正することが出来た
    ダンプにおいてDebugDevice以外のRefcountが0になった
    (IntRefには何か書いてあるが問題ないらしい)
    メモリリークは解決したようだ
   TOONシェーダ対応(HSV_Toon)
    NOLIGHTシェーダをTOONシェーダに変更
    Shaderプレートメニューでマテリアル名のボタンを押してToonを選択すると機能
    TOON用のライトとしてはLightプレートメニューのライトの向きを使用
    マテリアルの拡散色から自動的にTOONテクスチャを作成し
    diffuseMapとしてシェーダで使用
    設定画面
     Shaderプレートメニューで設定
     面の向きとToon用ライトの向きが同じ向きを向いているほど
     HiAddr,LowAddrのスライダーは右側にします
     HiAddrよりも向きが同じ方向の場合にはハイライト色、
     LowAddrよりも向きが違う場合には陰色、
     どちらでもない場合にはベース色を表示
     トゥーンの色の設定はHSVで行います
     HSVのHは色相で0から360の数値をとります. 
     Sは彩度で0から1、Vは輝度で0から1.
     Base色はHSVの数値そのものを指定.
     AddH, AddS, AddVはベース色のHSVに加える分
     (引くときはマイナスの数値を指定)の数値を指定.
     各設定項目にはGUIスライダー有り
     プロジェクト保存時に*.stfファイルにテキスト保存、プロジェクト読時に自動読込
   PBR, StdのdiffuseMap参照の際にもHSV_Toonのテクスチャを参照
   PBRの法線修正
    法線マップが無い場合には頂点法線を使用するように.
    法線マップが無いメッシュにPBRシェーダを選んでもそれなりに表示されるように.
   NumKeyピッキング
    ShaderプレートメニューとDispGroupプレートメニュー時のピック処理修正
    オブジェクトの中心がカメラから一番近いオブジェクトをピックしていました.
    オブジェクトの形状によっては意図したオブジェクトがピック出来ないことがありました.
    1-9の番号を押しながらピックすることで
    カメラから番号番目に近いオブジェクトをピックするようにしました.
    処理の高速化のために距離の順番はカメラとオブジェクト中心との距離、
    見つかった時点ですぐに結果を返す仕様.
    現在は非スキンメッシュだけがピック対象(これも高速化のため).
   1オブジェクトだけのテスト表示機能
  DispGroupプレートメニューのTestボタンが機能していなかったのを修正
   Rigスプライトの画像ファイル更新
    見やすく
   ZPreCullingをデフォルトでオフ
    ZPreによる効果よりも不具合の方が多くなってきたため.
   RefPosの選択ジョイント軌跡表示修正
    カレントフレームの選択ジョイント位置も軌跡に含めるように.
   TestフォルダのモデルのShader設定を修正
  

######################
### HSV_Toon設定時の注意 ####
######################
   HSV_ToonにはRGBとHSVの変換計算が関係しています
   Windowsに付いているペイントというソフトで色作成ボタンを押して
   色の種類をRGBからHSVに変えてから色の位置をいろいろクリックすると分かるのですが。
   HSVのSが0の場合にはHをどんなに変えても色は白です.
   fbxの拡散色として真っ白が設定されている場合、Sが0になっています.
   その状態から色を変えたい場合には、まずSとVを変えてからHを変えてください.
   

ver1.0.0.7 アップデートログ

2024/02/11
 AdditiveIK 1.0.0.7
  1.0.0.6からの変更点
   不具合修正
    LimitEulウインドウでCurrentBoneに対するFromCurrentMotionボタンを実行すると
     他のボーンの制限角度が0リセットされて動かなくなる不具合修正
     カレントボーンだけを初期化してからカレントボーンだけに値をセットするように.
     AllBoneボタンの処理はそのまま.
    Brushesプレートメニューでアンドゥリドゥ時にウインドウが更新されない不具合を修正
    BrushMethodのコンボボックスを変更してもアンドゥ用の保存がされていなかったのを修正
    右ペインウインドウを開いたままリターゲットバッチを実行すると
     他のウインドウを表示した時に裏に残ったままになる不具合を修正
     リターゲットバッチ実行前に右ペインウインドウを閉じるように.
    IKモードスプライト表示状態の初期値修正
     回転モードスプライトを初期状態でONに.
     (初期状態で回転モードになっていたが表示色がオフ色になっていた.)
    アプリの終了処理を修正   


   クリック(ピック)&セット 
    DispGroupプレートメニュー選択時
    マウス位置のメッシュ名をToolTip表示し
    クリックしたモデルとメッシュを選択してGUIに反映
    ただし背景だけ(スキンメッシュは未対応)

    Shaderプレートメニュー選択時
    マウス位置のマテリアル名をToolTip表示し
    クリックしたモデルとマテリアルを選択してGUIに反映
    ただし背景だけ(スキンメッシュは未対応)


   RefPos機能をDirectX12に対応させて復活
    CameraAndIKプレートメニューのRefPosオンオフに対応.
    スキンメッシュ(ボーンが入っているメッシュ)のみ対応.
    複数残像を表示する機能ですがメッシュメモリは使いまわし
    必要なメモリを残像4個分アロケートします.
    選択フレーム範囲を2分割して3個の残像フレームと1個のカレントフレームを表示します.
    選択中のジョイントの軌跡を赤いソリッドコーンでインスタンシング表示.
    動きが大きいほどコーンの大きさは大きい.
    プレビューにも対応.
    DispAndLimitsプレートメニューのRefPosAlphaで残像の透明度調整
    DispAndLimitsプレートメニューのZCmpAlwaysチェックボックスで
    カレントフレームのZバッファ方式を切り替え



ver1.0.0.6 アップデートログ

2024/02/01
 AdditiveIK 1.0.0.6
  1.0.0.5からの変更点
   不具合修正
    カメラアニメ選択後にカメラの無いモデルを選択してプレビューすると
    カメラアニメが再生されない不具合修正
    最後に選択したカメラアニメが有効.
    カメラの無いモデルのモーション編集中にもカメラアニメが動くように.


   ShaderプレートメニューのEmissionチェックボックスの隣にEmissiveScaleスライダーを追加
   Emissionに対して0%から100%まで倍率を指定
   fbxに既に設定してあるマテリアルのemissiveに対して作用.

   DispAndLimitsプレートメニューのEditRateの値の範囲を0倍から50倍までに.
   (変更前は0から1)
   CameraAndIKプレートメニューの移動モード時にもEditRateを考慮
   (回転モードは以前から対応しているが9.9度以上のステップにはならないリミッター有)
   広いステージをスプライトドラッグで移動する場合にも速やかに移動可能に.

   Shiftキーを押しながらスケールドラッグでXYZ全軸に対してスケール処理

   ToolButtonのモーションの補間機能がスケールに対応していなかったのを修正
   スケール対応
   対応前は例えば全体を5倍したモデルのフレーム範囲を補間した場合に
   補間区間のモデル倍率が1倍になってしまっていた.
   対応後は5倍されたまま姿勢が補間される.

   カメラアニメ計算時の時間を丸めないdoubleに.
   カメラに合わせてモデルのモーションを付ける際に
   モデルだけ補間されてカメラが補間されない場合に、
   モデルが画面上を行ったり戻ったりするようにみえる不具合解消のため.


ver1.0.0.5 アップデートログ

2024/01/27
 AdditiveIK 1.0.0.5
  1.0.0.4からの変更点
   不具合修正
    既知の問題005の解決
     1メッシュに複数マテリアルが設定してあるfbxの書き出しに関する不具合修正.
     修正前の症状としては
     マテリアル番号オブジェクトが2つ出来て1つ目が未設定になり
     Unityでは読めるがMayaでは表示が指定通りでは無かった.
     修正後は
     UnityでもMaya2024でも指定通りの表示になった.
     マテリアル番号オブジェクトが2つあるfbxを読み込んだ場合には
     書き出し時に2つ目を書き出すようにした.
     古いAdditiveIKで保存したfbxはver1.0.0.5で読み込んで保存し直すことで
     Maya2024でも正常に読み込めます.

    既知の問題006の解決
     症状としては
     AdditiveIKで出力したfbxをMaya2024.2で読み込むとバインドポーズに関する警告が出て
     モーションが大きく変質する不具合.
     Maya2023.3では無警告で正常に読み込み正常に再生できる.
     解決方法としては
     古いAdditiveIKで保存したfbxはver1.0.0.5で読み込んで保存し直すことで
     Maya2024でも正常に読み込めます.

    Testフォルダのモデルを1.0.0.5で読み込んで保存し直し

    Hand_Closeリグで手を握った状態から開こうとするとうまくいかない不具合修正
     設定ファイル*.rigを更新
     親指の回転軸をNodeYに変更(変更前はCurrentY)

ver1.0.0.4 アップデートログ

2024/01/21
 AdditiveIK 1.0.0.4
  1.0.0.3からの変更点
   不具合修正
    BrushParamsプレートメニューでTopPosスライダー操作直後のIK中に、
    3dwndのポーズの表示が変化しないことがある不具合を修正

   DispGroupの挙動を修正
    グループごとに不透明はカメラから近い順、半透明はカメラから遠い順に
    ソートしてから描画
    Treeのグループ番号を大きい値に設定するだけで
    ステージのTreeの影付き透過表示がうまくいくようになった

    メッシュ名右クリックのSimilarチェック時に
    メッシュ名先頭にPrefabがあった場合には2番目の'_'までをパターンとする

   Shadowプレートメニューのbias値の最大値を0.03に変更(変更前は0.01)

   対称コピーに関する修正
    実際に有効な使用方法としてはRootBone:SymDirAndSymPosAndSymScaleだけ
    とも言えるので他のメニューはグレーアウト
    部分的にペーストしたい場合には
    上段カエルショートカットボタンの中のペーストボタンを"右"クリックして
    対象を絞って対称ペーストする

   IK操作中は30fps以上のマウス移動に対する処理をしないように修正
    IKの後処理が重くなり過ぎないようにするため。
    表示のfpsは今回の修正によっては制限を受けない

   Rigクリックだけで右ペインにクリックしたRigの設定画面を出すように.
    設定中のRigと操作中のRigを一致させることにより、誤保存を回避、操作も効率的に。

   Test/3_Winter2_1モデルのRig設定を修正
    このモデルはTestフォルダの中の他のVRoidよりも新しいVRoidで出力したモデル
    新しいVRoidにはローカル軸が保存されるようになったようだ
    それを踏まえて、新しいVRoidのリグの設定時には
    軸の種類としてNodeX,NodeY,NodeZを選ぶと良い
    特に足の部分のリグにはNodeX,NodeY,NodeZを選ばないとうまくいかないことが多い


  備考
   ノーマルマップテクスチャの表示について
   テクスチャにはMipMapの処理を入れてある
   MipMapが本当に機能しているかどうかについてはまだ調べ切っていない
   PBR表示の際のノーマルマップテクスチャについては遠くのテクスチャに
   モアレが出ることがある
   PBRをオフにすると通常のテクスチャに対してはモアレは出ない
   ノーマルマップを施しているメッシュについてはLOD(詳細度切替機能)を使って
   遠くのオブジェクトに対してはノーマルマップ無しのモデルに置き換える
   というのが良いと思っている

ver1.0.0.3 アップデートログ

2024/01/13
 AdditiveIK 1.0.0.3
  1.0.0.2からの変更点
   不具合修正
    1メッシュに複数マテリアルがある場合に面のマテリアル番号設定に問題があったのを修正
    LaterTransparent設定ウインドウに
    Albedoテクスチャ名がエントリーされていなかった不具合修正

     AlbedoでもNormalでもMetalでもないテクスチャ名だけが
     エントリーされていた不具合だった

     (修正前はVRoidではうまくいっていた)
    BrushParamsプレートメニューのTopPosのテキスト表示更新に関わる不具合を修正
     フレーム選択変更時にTopPosのGUI表示が更新されていなかった
    右ペインのウインドウのスクロールバードラッグのキャプチャとリリースに関して修正
     スクロールバードラッグ中に画面外でマウスを離した場合に
     挙動がおかしくなる不具合が直った

    モデルを追加読み込みするとモーションスピードが
    スライダーの値と異なってしまう不具合を修正

     DispAndLimitsプレートメニューのSpeedスライダーの設定どおりになった

   2つまでのマルチUVに対応
    Albedo, Normal, Metal丸ごと一緒にUVSet0とUVSet1を切り替えるように.
    DispAndLimitsプレートメニューに UVSetコンボボックスを追加
   インスタンシング表示
    リグと剛体をインスタンシング表示(1モデルに対する1回の描画で複数個表示)
    フォントとボーンマークは1.0.0.1からインスタンシング表示
   ボーンマークの明るさ、リグ(Rig)の透明度、剛体(Rigid)の透明度を設定可能に.
    DispAndLimitsプレートメニューのスライダーで設定
   Rigの設定(ジョイント右クリック->Rig名->Settingメニューで出る)の回転軸の追加
    CurrentX, CurrentY, CurrentZ,
    ParentX, ParentY, ParentZ,
    GlobalX, GlobalY, GLobalZ,
    NodeX, NodeY, NodeZ
    上記9種類に増やした
    足の付け根UpperLegの前後回転軸はParentYとした
    Testフォルダのrigファイルを更新
    古い設定はCurrent*として扱う   
   マニピュレータの計算の修正
    Hipsの特別扱いを止めて Hips自身の回転を考慮するようにした
    Rigの足の付け根(UpperLeg)の回転が 体全体の回転後も設定どおりに曲がるようになった
   テクスチャアドレッシングモードの読み込みと表示への適用と保存
    サンプラーステートにも適用
   テクスチャ命名規則を少し修正(_Baseが加わった)
    Albedoまたはalbedoまたは_Baseが名前にテクスチャをAlbedoMapとする
    Normalまたはnormalが名前につくテクスチャをNormalMapとする
    Metalまたはmetalが名前につくテクスチャをMetalMapとする
   VRoidに対する剛体作成の修正
    VRoidの足の横に平行して作成されるCoatSkirt用のボーンに対しては
    自動で剛体を作成 "しない" ように修正

   ジョイントマークを修正
    選択時は赤、非選択時は黄色に. 明るさ調整はスライダーで.
   モーションスピードの初期値を1.0に変更
    変更前は3.0

   外部ライブラリのバージョンアップ(差し替え)
    DirectXTK12をJun2023からDec2023に差し替え
    DirectXTexをDec2023に差し替え

   モデル更新
    Test/3_Winter2_1のモーションを修正
     全フレームのHipsのスケールを初期化
     スケール値に不具合を引き起こす値が入っていたようで
     Mayaで服のテクスチャが表示されなかったり IK時に軸がブレたりした
     スケール初期化で直った

ver1.0.0.2 アップデートログ



2024/01/04
 AdditiveIK 1.0.0.2
  1.0.0.1からの変更点
   不具合修正
    ボタンを押してもShader設定ダイアログが出ないことがある不具合修正
    Rigの設定が意図せず重複して片方を選べなくなる不具合修正
    シャドウの向きを修正
    マニピュレータの軸(計算と表示共に)がparent側に1階層分ずれていたのを修正
     体全体を90度回転した場合に足の付け根のRigの軸が
     設定と異なる現象を追いかけていたら発覚
     IK操作、Rig操作とRigの設定に影響
     軸の種類はDispAndLimitプレートメニューのAxisKindコンボボックスで
     Current, Parent, Global, Nodematから選択可能.
     昔の振る舞い再現はAxisKindでParentを選択すれば可能(Rigの設定が昔のままの場合).
     IK操作の軸が操作中にブレないことを再確認
   LOD機能追加 ProjAndLODプレートメニュー追加
   MipMap対応
    テクスチャ読み込み時に全レベルMipMapを作成して転送
    サンプリングステートでMipを有効に
   VRoid特有のジョイント名がある場合には
   シェーダー設定がAUTOのときにNOLIGHTを適用してトゥーン風に表示
   ブラシ設定のRepeatsのスライダーの最大値を100に.(変える前は10)
   起動時の初期値を変更
    HighRpmを最初から有効に.
    4Kモード時には ZprepassCullingを最初から有効に.
   ツールショートカットボタンのModelWorldMat設定ウインドウにカメラ位置、カメラ注視点にモデルを置くボタンを追加
   シャドウのbiasスライダーの最小値を0に.(変更前は0.001)
   Testフォルダにモデル追加 
    Test/3_Winter2_1
   トラブルシューティング追加
    0_TroubleShooting/LODの設定について.docx
    0_TroubleShooting/シェーダーの設定について.docx
    0_TroubleShooting/シャドウの設定について.docx
    0_TroubleShooting/画面に暗いノイズが表示される場合.docx
    0_TroubleShooting/ギザギザ画質を改善したい場合.docx
    0_TroubleShooting/リターゲット後の姿勢が部分的に180度異なる場合.docx






使い方


入力用のfbxの準備の仕方
 UnityAssetをUnityでfbxエクスポートする場合
 全てのマテリアルのシェーダーをStandardにするとfbxにテクスチャ名が出力される
 それ用のEditorスクリプトをみつけてきて使っています
メニュー
 2段構成プレートメニュー
 1段目は常時固定メニュー. 2段目はカエルボタンクリックで変化.
 メニューに対するGUIは右ペインウインドウに表示.
IK編集
 編集したいフレーム(時間横軸)範囲をロングタイムラインの四角マークをマウスで囲むようにドラッグして選択
 Brushプレートメニューで編集ウェイト曲線のパラメータを設定
 Brush設定によるウェイトカーブはタイムライン上に白い線で表示
 ジョイントマークをマウスドラッグしてIK
 元の動きを潰さずにドラッグした分だけの姿勢をウェイトを掛けて足す.
 IK階層数を大きくしてもIKStop設定ジョイントでドラッグ効果は止まる.
 IKStopはジョイント右クリックでオンオフ.
アンドゥリドゥ
 モーション編集とブラシ設定とフレーム選択に関して処理の巻き戻しと再実行が可能
 アンドゥ及びリドゥボタンはCameraAndIKプレートメニューで表示
 画面左上にR(数字)、W(数字)の表示がある 読込バッファ番号と書き込みバッファ番号を示す
 R位置番号はアンドゥするたびに1つ減る
 W位置番号は常にバッファの最後の番号
 R番号W番号は アンドゥリドゥによって どの状態に戻ったのかを確認するためのもの
高回転モードと計算スレッド数
 姿勢計算はマルチスレッド化されていて描画と同時進行で計算
 DispAndLimitsプレートメニューのHighRpmチェックは姿勢計算のスレッド回転を速くする
 HighRpmはプレビュー時(プレイヤーボタンのプレイを押したとき)に機能する
 HighRpmオン時にはプレビュー時にCPU稼働率が高くなり描画が速くなる
 DispAndLimitsプレートメニューのUpdateThreadsスライダーで計算スレッド数を設定
 UpdateThreadsは1モデルに対してのスレッド数
 読み込みモデル数とコンピュータのCPUコア数によって速く描画できるスレッド数は異なる
角度制限
 読み込み済のモーションの動く範囲を可動範囲としてワンボタン設定可能
 LimitEulerプレートメニューの
 FromCurrentMotionボタンとFromAllRetargetedMotionでワンボタン設定
 角度制限はCameraAndIKプレートメニューのLimitEulボタンでオンオフする
 IK時に設定した制限角度で止まる
 CameraAndIKプレートメニューのScrapingボタンオンの時には
 1つでも可動軸があるとその軸に関して動く
 指などの制限が厳しい設定下で動かしたい場合にScrapingを使用
位置コンストレイント
 ジョイント右クリックでコンストレイントジョインを指定
 位置コンストレイントはIK時またはConstExecuteボタン押下時に働く
 CameraAndIKプレートメニューのConstRefreshを押したときの位置にジョイントをコンスト
 LimitEulをオンにして使うことを想定(無理な方向へ曲がらないように)
カスタムRig
 操作用メッシュを表示したいジョイントを右クリックしてCreateNewRigで作成設定
 マウスのX方向Y方向それぞれのドラッグに対してXYZの度の軸を回転するかを指定
 回転には符号付きの倍率を設定
 RigによるIKは5階層まで伝達可能だがRigからRigも呼ぶことが出来るので5階層以上も可能
 Rig操作のオンオフはCameraAndIKプレートメニューのRigボタンで行う
コピーペースト
 ソフトを終了しても残るコピー履歴機能により手間を削減
 コピーの際にメモを記述可能で履歴画面に表示される
 コピー履歴表示のソートカットボタンは上段カエルボタンを押して表示
 最新を選択のチェックを外すと過去の履歴を選ぶことが出来るようになる
SymCopy
 対称コピー
 選択フレーム範囲のモーションに対して対称コピーを行う ペーストボタンで貼り付け
 ショートカットボタンは上段カエルボタンで表示
 ボタンを押して出てくるメニューでSymDirAndSymPosAndSymScale選択推奨
補間
 補間(Interpolation)ショートカットボタンは上段カエルボタンで表示
 補間計算は選択フレーム範囲の最初と最後のフレームに対して行う
 補間計算時にはBrushプレートメニューで選択したウェイト曲線を使用
 通常の補間をしたい場合にはZBrushにUpCos選択 TopPosを100にして補間ボタン押下
Smooth平滑化
 平滑化ボタンはCameraAndIKプレートメニューにある
 ボタンを右クリックで設定してから実行、左クリックは前回の設定で実行
 ノイズの除去に効果がある
 補間とは違って姿勢を考慮せずにオイラー角を直接計算するのでHipsに使うと体が傾くことがある
物理シミュレーション
 bulletPhysicsによる物理シミュレーション
 RigidParamsプレートメニューで設定
 Validにチェックを入れてToAllボタンで全身に剛体が入る
 髪の毛ジョイントはneckジョイント選択後ToolWindowのjointマークスキップresetを押すと表示
 シミュレーションしたいボーン(剛体)に対してRigidBodySimulationチェックボックスにチェック
 プレイヤーボタンのグレーの再生ボタンで物理シミュ開始
 BulletPhysicsプレートメニューのCalcCountスライダーで1フレーム当たりの物理計算回数を設定
 CalcCountは通常1.  大きいCalcCount値で安定することもあるが環境依存で大きくすることにより暴れることもある
カメラ履歴
 アセットの編集場所へすばやくカメラを移動可能
 上段カエルボタンでカメラ履歴ボタンを表示
 CameraAndIKプレートメニューのカメラボタンドラッグでカメラ設定後
 履歴ウインドウのGetボタンで値として取得 Saveでメモ付き保存
 ラジオボタン選択で履歴の場所にカメラ移動
表示
 DispAndLimitプレートメニューのShaderTypeでAuto, PBR, STD, NOLIGHTを切り替え可能に.
 法線マップを設定していないモデルに対してPBRを選択すると 法線が0となり黒い表示になることに注意
 ShaderTypeでAUTOを選んだ場合のシェーダー設定は以下
  スキンメッシュについては [Albedo無しまたはNormal有またはMetal有]->PBR, 
  [Albedoだけ有またはテクスチャ1つも無し]->NOLIGHT
  非スキンメッシュについては [Albedo無しまたはNormal有またはMetal有]->PBR, 
  [Albedoだけ有またはテクスチャ1つも無し]->STD
 スキンメッシュと非スキンメッシュそれぞれのShaderTypeに対して 不透明、半透明、半透明常時上書きの設定があり自動設定
 DispGroupプレートメニューでメッシュごとにグループ指定
  設定画面としてはモデルパネルで選択したモデル単位
  複数モデルを横断してグループ番号の小さい順に描画
  グループ番号1以外は強制的に半透明として描画
  メッシュ右クリックから類似する名前のメッシュの一括処理が可能
 LaterTransparentプレートメニューでメッシュ内の透過テクスチャ描画順を指定
 Shaderプレートメニュー
  マテリアル名ボタン押下で設定、見出しボタン押下で選択モデルの全マテリアルに対して設定
  シェーダータイプとしてAuto, PBR, Std., NoLightの4種類から選択
  PBRは法線テクスチャまたはメタルスムーステクスチャのどちらかが設定されている場合を想定
  Autoを選ぶと設定具合をみて自動的にマテリアルごとにPBR, Std.,NoLightを振り分け
 Shadowプレートメニュー
  デプスシャドウです セルフシャドウも表示されます
  影の向きはLightプレートメニューで設定したライトの番号で指定(1から8までのボタン)
  シャドウ用のカメラの位置から上記ライトの向きに影は落ちます
  シャドウライト位置と対象物間に遮るオブジェクトがある場合plus up設定でライトを持ち上げる
  影の明るさは0.0で真っ黒、1.0でdiffuse色
  シャドウカメラの位置設定にはカメラのターゲット位置が関係する
  ジョイントを選択後にDispAndLimitsメニューのLockCameraToSelectedJointチェックで選択したジョイントの位置をカメラターゲット位置にすることが可能
  カメラのターゲット位置によっても影の落ち方は変わる
 HDRP
  Lightプレートメニューで設定可能なライトの強さは1.0よりも大きい3.0.
  Shaderプレートメニューで設定可能なマテリアルごとのライト倍率最大値は5.0.
  SahderでStd.を選んで ライトを1.0より大きくすると 自動的にBloomが掛かる.
 bvh2Fbxバッチ
  bvhファイルをfbxファイルに変換.
  扱うことが出来るbvhのタイプは限定的(回転順序には対応.軸の違いには未対応).
  CMU(カーネギーメロン大学)のMotionBuilderFriendlyタイプのサンプルでテスト.
 retargetバッチ
  指定フォルダ内のfbxを選択中のモデルにリターゲット
  モーションのボーン名とモデルのボーン名の対応表*.rtg(テキストファイル)が必要
  Test/RetargetSettingFileExampleフォルダに*.rtgの例を同梱
  Testフォルダの*.rtgのファイル名は Model名_モーション種類.rtg
  指定フォルダにretarget.rtgという名前で*.rtgファイルを置く必要有





既知の問題と対策



問題001から003はver1.0.0.2にて解決

#######
# 問題004 
未解決だが対応策有
#######
ジョイントの方向(いわゆる初期姿勢)として X180, Y90, Z0が設定されているfbxの書き出しが変質する不具合がある。
書き出し時だけ問題が出る。読込とリターゲットはうまくいく。
X180, Y90, Z0の初期姿勢が設定されているモーションに対しては
読み込み後に普通の軸のモデルにリターゲットしてから保存してください。


#######
# 問題005 
ver1.0.0.5に向けた修正(github)にて解決済 テスト後にリリースへ
#######
1メッシュに複数マテリアルが設定してあるモデルの場合
AdditiveIKで読み込んでから保存すると
Unityではきちんと1メッシュに対して複数マテリアルが読み込まれるが
Mayaではメッシュに1つのマテリアルしかアタッチされていないことがある
という問題が起きています(Mayaでもマテリアル自体は読み込まれています)
解決に時間が掛かりそうなのと他の不具合修正分を早く出したいので
問題005は未解決ですが 1.0.0.4を出します
ver1.0.0.5に向けた修正で解決.
古いAddtiveIKで保存したfbxはver1.0.0.5で読込保存し直すことで
Maya2024で正常に読み込めます.


#######
# 問題006 
ver1.0.0.5に向けた修正(github)にて解決済 テスト後にリリースへ
#######
AdditiveIKで出力したfbxをMaya2024.2で読み込むと
バインドポーズに関する警告が出てモーションが大きく変質する不具合.
Maya2023.3では無警告で正常に読み込み正常に再生できる.
ver1.0.0.5に向けた修正で解決.
古いAddtiveIKで保存したfbxはver1.0.0.5で読込保存し直すことで
Maya2024で正常に読み込めます.


########
# 備考001
########
大きいサイズのfbxを読み込んだ際に
DescriptorHeapの作成に失敗とダイアログが出てアプリが落ちる場合は
プログラムのミスではなく、ビデオメモリが足りないからです.
その場合はAdditiveIKに読み込む前にfbxの内容を減らすなどしてください.
作者もビデオメモリ不足には悩まされており
次にビデオカードを購入するときには
8GBではなく16GBのものにしたいと思っています(遠い目).





ナビゲーション