AdditiveIK(アディティブアイケー)
VRoidとモーキャプをプロのアセットに盛り付けろ!
モーションキャプチャをブラシで盛るように編集 fbxにしてUnityへ
(bvh, fbx, Unity, Maya, VRoid対応)
1.0.0.16 インストーラ |
MIT OSS 随時更新 |
MIT OSS |
前作EditMot + DirectX12 -> AdditiveIK |
---|
(UnityAsset HQ Retro Farmhouse +VRoid) 表現の意味を手に入れろ! 表現のためのモデル編集とモーション編集から 表現のためのシーン編集へ! モデルもモーションもシーンによって意味が生まれる UnityAssetStoreで https://assetstore.unity.com/?locale=ja-JP プロのアセットを入手し それを読込編集保存することが出来る 作業はそこからだ! (モデルにはVRoidを使用 https://vroid.com/studio) |
ステージ:UnityAsset POLY FantasyTownをAdditiveIKに読込
モデル:VRoid
https://youtu.be/TzlAqf45jIQ
ステージ:UnityAsset TheHuntをAdditiveIKに読込
モデル:VRoid
https://youtu.be/R0MsXt8plYg
ステージ:UnityAsset HQ Retro FarmhouseをAdditiveIKに読込
モデル:VRoid
複数モデルに対してモーキャプリターゲット編集
ステージ:UnityAsset POLY FantasyTownをAdditiveIKに読込
モデル:VRoid
高さフォグとSkyDOF機能をオン(ver.1.0.0.12)
ver1.0.0.9以降におけるシェーダー
図:シェーダの種類
図:PBR+Std.+Toon共存 その1
(Asset: FantasyTown + JAPANESE CITY)
図:PBR+Std.+Toon共存 その2
(Asset: FantasyTown + 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個までの有色ライトで昭光
ピック&セット
ステージ:UnityAsset JAPANESE CITY
[クリックで元サイズ表示]
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番目の結果.
背景
オブジェクトが重なっている場合
ピックの結果が意図と異なる場合があった.
オブジェクト中心とカメラの距離の
近いものから判定するのが原因.
(頂点の位置ではなくオブジェクト中心)
高速化のために見つかり次第処理を終わらせる.
そのための番号キープッシュ方式.
裏返り処理の閾値設定 (1.0.0.9から)
[クリックで元サイズ表示]
モーションキャプチャデータとは
計算値ではなく測定値です
測定には精度がつきもので
必ずノイズが含まれています
急に角度が大きくなったり小さくなったりして
裏返ることがあります
AdditiveIKには
裏返り対策が施されています
1.0.0.9からは
裏返り対策のトリガーとなる閾値を設定可能
裏返るのは頭あるいは足首がほとんど
上図のEndJoint閾値を調整することで
大抵の場合解決します
例えばCMUのbvh60_8をリターゲットすると
初期設定では頭が裏返りますが
EndJoint値を68度に設定してから
bvh2fbxbatchとretargetbatchを実行すると
リターゲット結果が正常になります
bvh60_7については更に再生時に制限角度を
設定することにより正常になります
ライト極座標GUI (1.0.0.10から)
[クリックで元サイズ表示]
1.0.0.10からは
ライトの向きの設定の仕方が
極座標の角度2つになりました
XZ平面(地面)上の角度と
首を上下に傾けるYの角度の2つです
3次元ベクトルで指定するよりも
直感的に設定が可能
カメラターゲットGUI (1.0.0.10から)
[クリックで元サイズ表示]
1.0.0.10からは
カメラターゲット(注視点)のGUIが
右ペイン上部に常駐
DispTargetにチェックを入れると
カメラターゲット位置に座標軸が
表示されます
その状態でスライダーをいじると
カメラとターゲット間の距離が変わり
ターゲット位置が動きます
MoveEyePosにチェックを入れて
スライダーをいじると
距離に応じてカメラの方が動きます
MoveEyePosのチェックをオンオフして
スライダーを動かすことで
尺取虫の様にカメラを操作可能
Lock2Jointにチェックを入れると
選択中のジョイント位置が
ターゲットになります
シャドウキャスターフラグ (1.0.0.11から)
ステージ:UnityAsset HQ Retro Farmhouse
[クリックで元サイズ表示]
1.0.0.11からは
シャドウキャスターフラグのGUIが
Shaderプレートメニューに付きました.
影を表示するためには
シャドウカメラを通常視点の後ろ上方に置きます.
シャドウカメラと表示オブジェクトとの間に
天井や壁があると天井や壁が大きな影として
表示されてしまうので図2の様になりがちです.
天井や壁のシャドウキャスターフラグをオフにして
天井や壁が影を落とさないようにすることで
図1の様に想定通りの影を表示します.
拡大回転移動別ペースト (1.0.0.12から)
[クリックで元サイズ表示]
操作対象ボーン設定ダイアログに機能追加
ペーストショートカットボタンを右クリック
PasteScale, PasteRotation, PasteTranslationの
3つのチェックボックスを追加
拡大、回転、移動の中の必要なものだけ
チェックしてペースト
3つの組み合わせも可能
ジャンプ補間 (1.0.0.12から)
ステージ:UnityAsset Fantasy Town
モデル:VRoid
[クリックで元サイズ表示]
Hipsジャンプ補間ボタンを追加
補間ボタンの左隣にジャンプ補間ボタンを追加
選択フレーム範囲の最初フレームと最後フレームの
Hipsの移動アニメを放物線で補間する
最後のフレームでぴったり着地するように補間
ボタンを押したときに
ジャンプ補間用の重力設定ダイアログを表示
常用スライダーの常駐 (1.0.0.12から)
[クリックで元サイズ表示]
アプリ上部に常駐スライダーを追加
EditRate、Speed、TopPosスライダーを常駐
いつでも操作可能に
TopPosスライダーの横幅が長くなったので
ブラシのピーク位置の設定精度改善
(長い分、目盛りが細かくなった)
被写界震度(DepthOfField) (1.0.0.12から)
ステージ:UnityAsset Fantasy Town
モデル:VRoid
SkyDOFオン
ステージ:UnityAsset Fantasy Town
モデル:VRoid
SkyDOFオフ
[クリックで元サイズ表示]
DOFプレートメニュー新規
ボカシ始め距離、ボカシ完了距離、
SkyDof(天球にもボカシを入れるかどうか)
8スロット分設定可能
フォグ (1.0.0.12から)
ステージ:UnityAsset Fantasy Town
モデル:VRoid
カメラ距離フォグ
ステージ:UnityAsset Fantasy Town
モデル:VRoid
高さフォグ
[クリックで元サイズ表示]
Fogプレートメニュー新規
カメラ距離フォグと高さフォグに対応
フォグ色も指定可能
8スロット分設定可能
シェーディングアルファ (1.0.0.12から)
ステージ:UnityAsset TheHunt
[クリックで元サイズ表示]
BaseAのスライダーでマテリアルの透明度を設定可能
HiA,LowAも設定可能
光の当たり方に依存させて透明度を
リアルタイムで徐々に変化させる
明るい部分を徐々に不透明にして
暗い部分を徐々に透明にしたり
その逆も
アルファテストスライダー (1.0.0.13から)
ステージ:UnityAsset TheHunt
[クリックで元サイズ表示]
陰影トゥーンテクスチャに
アルファも書き出して
ライティングに応じてリアルタイムで
アルファを変化させるのがシェーディングアルファ
今回は更に
指定透明度以下の透明度の描画をスキップする
つまりアルファテスト設定のための
スライダーを追加
アルファテストスライダーにより
シェーディングアルファ設定済オブジェクトを
徐々に出現させたり消したりすることが可能
ブラシを簡易選択 (1.0.0.13から)
モデル:VRoid
[クリックで元サイズ表示]
3Dウインドウの背景部分を右クリックで
ブラシ選択メニューが出ます
ブラシにピーク位置は
アプリ上部のスライダーで設定
プレートメニューを切替えること無しに
イージーアクセスでブラシ選択可能
詳細な設定が必要な場合には
BrushParamsプレートメニューで設定
ボーン入りメッシュもピック (1.0.0.14から)
モデル:VRoid
[クリックで元サイズ表示]
背景だけにしか使えなかったピック&セットが
ボーン入りメッシュに対応
コンピュートシェーダで座標変換
不具合修正でピック誤動作も減りました
即時実行型コンピュートシェーダは
視錐体カリングにも使用
視野内オブジェクトの選別が適切に.
シャドウ品質改善 (1.0.0.15から)
モデル:VRoid
[クリックで元サイズ表示]
シャドウのギザギザを解消
分散シャドウマップ(VSM)を導入
奥行情報の差分から求めた昭光確率
による影色
Shadowプレートメニューに
VarianceShadowMapsチェックボックスと
BlurShadowチェックボックスを追加
VSMのオンオフとボカシ処理のオンオフ
が可能
物理角度制限 (1.0.0.16から)
YouTube動画:https://youtu.be/sCNE9C_zWNA
アセット:PhantasyTown
モデル:VRoid
[クリックで元サイズ表示]
スカート真横は制限せずにスカートとヘアに対して角度制限
スカートが拡がるが中は見えない!!
物理シミュにはbullet physicsを使用
剛体の接続を柔らかくするほどに
角度制限は効かなくなっていく
60fpsを想定したライブラリなので
20fpsで再生すると乱れることも多かった
そこで
bullet physics計算の後処理として
自前の角度制限を追加
右クリックでピーク位置設定 (1.0.0.17から)
モデル:VRoid
[クリックで元サイズ表示]
変更前は
スライダーで%設定してブラシピーク位置を決めていた
変更後は
タイムラインを右クリックでダイレクトに
ピーク位置を設定
操作フレーム範囲はタイムラインのセルを
囲むように左ドラッグで設定
ブラシの他のパラメータは上部常駐GUIに配置
いつでも操作可能
ブラシの選択は3Dウインドウの背景部分を
右クリックで選択
マニピュレータ軸とグラフ軸が一致 (1.0.0.17から)
モデル:VRoid
[クリックで元サイズ表示]
VRoidからのfbx、バインドポーズ付きfbx読込時
マニピュレータ軸とオイラーグラフの軸が一致
DispAndLimitsプレートメニューの
AxisKindの初期値を変えたことによる軸の一致
物理シミュの環境依存緩和 (1.0.0.17から)
モデル:VRoid
[クリックで元サイズ表示]
物理シミュは時間依存定数を使うので
表示速度の速い遅いによって結果が変わる
その違いをある程度吸収するために
DispAndLimitsプレートメニューに
3つのスライダーを追加
個々のオブジェクトの設定を変更しないでも
全オブジェクトに対してスケールすることで
環境依存問題にある程度対応
物理シミュ回転禁止設定復活 (1.0.0.17から)
モデル:VRoid
[クリックで元サイズ表示]
剛体チェーンの中のある剛体に対して
物理シミュの回転禁止を設定可能
RigidParamsプレートメニューの
ForbidRotチェックボックスに
チェックをいれると回転禁止が機能
回転禁止は
子供ジョイント側に設定すると
子供ジョイントが
親ジョイント中心の回転をしなくなる
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
ver1.0.0.7スキップ
2024/02/21夕 ver1.0.0.8
ver1.0.0.9スキップ
2024/03/06夕 ver1.0.0.10
2024/03/13夕 ver1.0.0.11
2024/03/27夕 ver1.0.0.12
2024/04/03夕 ver1.0.0.13
2024/04/10夕 ver1.0.0.14
2024/04/18夕 ver1.0.0.15
2024/04/24夕 ver1.0.0.16公開開始
2024/05/01夕 ver1.0.0.17予定
1.0.0.16インストーラ
githubにてMIT OSS 随時更新
ジャンプ中にくるりと回ります
https://youtu.be/6wveLqMbsYA
念じながら走るのです
https://youtu.be/S-2ycgp_xM4
半回転階段チャレンジ
https://youtu.be/TzlAqf45jIQ
モーキャプ@夕暮れキッチン
https://youtu.be/pMRaTOw5B38
使い方動画
https://youtu.be/oKGY62YosSg
使用例動画
https://youtu.be/R0MsXt8plYg
日記
2024/04/25
AdditiveIK 1.0.0.17
1.0.0.16からの変更点
不具合修正
右クリックによるブラシ選択時にジョイント選択が
初期化されてしまっていたのを修正
右クリックによるブラシ選択時にジョイント選択を復元
左ペインのジョイント階層ツリーからジョイントを選択した場合にも対応
VRoid読込時マニピュレータとグラフの軸が一致
プロジェクトファイル(*.cha)ファイルに
DispAndLimitsレートメニューのBoneAxisを保存
chaファイルにBoneAxisタグが存在しない場合(古いchaファイルの場合)、
1つでもVRoidモデルがあればボーン軸種類としてBONEAXIS_BINDPOSEを設定
モデル読み込み後は、DispAndLimitsプレートメニューの
AxisKindコンボボックスにてボーン軸の種類を設定可能
軸の種類BONEAXIS_BINDPOSEについて
VRoidやバインドポーズとしてボーンの向きが設定されているfbxファイル用
オイラーグラフの軸とIK回転の軸(マニピュレータ軸)とボーンの軸が一致する
Rigの軸指定の種類のNODE*とも一致するようになる
軸の種類BONEAXIS_CURRENTについて
RokDeBone2出力のfbxやバインドポーズとして
グローバル軸が設定されているfbxファイル用
IK操作をボーン軸で行うことが可能
しかしオイラーグラフの軸とマニピュレータ軸は一致しない
オイラーグラフの軸の種類は常にBONEAXIS_BINDPOSE(今まで通り)
(今まではVRoid読み込み時にもBONEAXIS_CURRENTを指定していたので、
オイラーグラフの軸とマニピュレータの軸が表示上異なっていた)
注
軸の種類の違いにより、マニピュレータ軸とグラフの軸が
一致しないことがありますが、それは表現方法の違いであり
同一の姿勢を示しています。
軸の種類の違いとは、どこから角度を測るかという違いであり、
保持している元データとしては同一です。
ブラシピーク位置設定方法変更
今まではTopPosスライダーでブラシの山のピークの位置を決めていた
これからは、オイラーグラフ上部のタイムラインを
右クリックすることによりピーク位置を設定
ピーク位置は選択フレーム範囲内にクランプ
上部常駐スライダ変更
TopPosスライダーの代わりに、ブラシミラーUチェックボックス、
ブラシミラーVチェックボックス、ブラシリピートスライダを配置
ブラシ選択は3Dウインドウ右クリック、
その他のブラシ設定項目は上部常駐GUIに配置したので、
BrushParamsプレートメニューは取り除いた
4段階LODに対応
視野内判定高速化
シェーダ修正
物理回転バネ定数全体をスケールするスライダーを
DispAndLimitsプレートメニューに追加
EditScaleスライダーはアプリ上部の常駐スライダーと冗長なので取り除いて、
新たにAngleSpringScaleスライダーを追加
RigidParamsプレートメニューのForbidRot(回転禁止)設定も
自前の制限で復活
剛体は親ジョイントと子供ジョイントをつなぐ線分をベースに
作成されますが、ForbidRot回転禁止は子供ジョイントに設定します.
回転禁止にチェックが入っている剛体は、前のフレームの姿勢へと制限
自前の角度制限が動いたのでBulletPhysics側の角度制限はfree状態に設定
DispAndLimitsプレートメニューのAngleSpringScaleスライダーの値も
プロジェクトファイル(*.cha)に保存
各ブラシの引数チェック部分変更
ブラシのリピート回数の上限を100に.
ドキュメント追加
0_TroubleShooting/なぜ同じ項目についてのスライダーが
DispAndLimitsプレートメニューにも存在するのか.docx
(WhyTheDispAndLimitsPlateMenuAlsoHasASliderForTheSameItem)
2024/04/18
AdditiveIK 1.0.0.16
1.0.0.15からの変更点
不具合修正
CameraDist常駐スライダーをホイールで動かした際に
描画が更新されていなかったのを修正
Rigの修正
1009_5モデルにおいて
applyframeが167となるように複数フレームを選択して
足の青いリグを回転すると回転軸が設定と異なる不具合があった
通常のマニピュレータ回転時には子供ジョイントの軸で親ジョイントを回転させる
それに対してRig回転時には子供ジョイント軸で子供ジョイントを回転させる
Rig回転のときの回転軸計算に
通常マニピュレータ回転軸計算結果を使っていたというミス
修正により複数フレーム選択時のリグ回転も正常になった
ちなみに、
Testフォルダのモデルに設定してあるリグは
動作確認オンリーの目的で設定したものであり、
実用的設定ではないので各自使いやすいように設定してください
私はリグをあまり使わずにマニピュレータ(ジョイントを選択して回転)
でやる派なので、今のところ
物理角度制限復活
剛体接続を柔らかくしたので制限角度が効かなくなっていた
自前で制限処理をすることにより物理角度制限復活
LimitEulerプレートメニューのダイアログにLimitRateスライダーを追加
設定した制限角度を100%守って制限すると、
動きが激しい部分の動きがカクカクパタパタしてしまう
LimitRateスライダーを適当に設定して制限を緩めることにより
制限しつつ滑らかな動きへと近づく
そのような設定をするためには、
制限角度をオーバーして回転することを考慮して
制限角度を小さめに設定しておく必要がある
LimitRateはボーンごとに設定可能で、
ApplyDeeperボタンで下層ツリーへ一括設定、
ApplyAllボタンで全ボーンへ一括設定可能
DispAndLimitsプレートメニューにPhysicalLimitScaleスライダーを追加
LimitEulerプレートメニューで
各ボーンに対してlimitrateを設定しておいて
動作環境の速い遅いへの対応策として
DispAndLimitsプレートメニューのPhysicalLimitScaleで
全ボーンのlimitrateに倍率を掛けて調整する
重力スケールの最大値を100から200へと変更
回転バネ定数の設定範囲を0から500の範囲へと変更(以前は2から3000)
バネを柔らかくして重さを軽くして重力で調整してみる試み
EditRate, MotionSpeed, PhysicalLimitScale, cameraDistを
プロジェクトファイル(*.cha)保存時に保存
Testフォルダのモデル更新
1009_5
剛体の重さを一番小さく設定
ヘアのバネ定数を大きく スカートのバネ定数を小さく
LimitRate設定
スカートの真横ボーンには制限角度を設定しないことにより、
ジャンプでスカートは拡がるが中は見えないように.
ヘアの制限角度を+-15degree、スカートの制限角度を+-5degree
スカートだけではなくヘアに対する角度制限にも使えるようになった
fpsが小さい場合にもLimitRateスライダーで対応できるようだ.
75fps-->LimitRate85, 20fps-->LimitRate98
BoySporty_2
以前と大きくは変わらないようにLimitRateを設定
2024/04/12
AdditiveIK 1.0.0.15 release
1.0.0.14からの変更点
不具合修正
モデルが全体移動している場合に
シャドウが表示されていなかった不具合を修正
ChkInViewにおけるシャドウカメラ変換行列が
モデル全体移動に対応していなかった
DOF表示の高速化
被写界深度(DOF)をオンにした時の表示速度が
DOFをオフにしたときの表示速度と同じくらいにまで高速化
シャドウ品質の改善
シャドウの品質改善とはシャドウのギザギザ表示を解消すること
Shadowプレートメニューに
VarianceShadowMapsチェックボックスと
BlurShadowチェックボックスを追加
VarianceShadowMaps(分散シャドウマップ)とは
シャドウの深度情報の差分から影かどうかの分散(確率用語)を
計算して影の色を決める方法
BlurShadowは
ガウシアンによるボカシを掛ける機能で
オフにしている場合にも縮小拡大効果によりボカシを適用して品質向上
2024/04/07
AdditiveIK 1.0.0.14
1.0.0.13からの変更点
コンピュートシェーダー対応
CPU処理とGPU処理を同期して使うことが出来るように
コンピュートシェーダを即時実行するためのクラスを新規
ピック&セット機能がスキンメッシュ(ボーン入りのメッシュ)
に対しても機能するように.
ボーン変形計算とピック計算をコンピュータシェーダで実行
ビデオメモリ不足がシビアにならない程度に
(こちらで以前読めていたアセットを読み込むことが出来る程度に)
コンピュートシェーダ化
視野内判定(ChkInView)の改善
視錐体による判定(改善前は境界球判定だった)
コンピュートシェーダによる高速計算
Pick最大距離設定スライダー
ProjAndLODプレートメニューにPickDistスライダーを追加
PickDistRate x ProjectionFarの距離より遠いメッシュに対しては
Pick処理をスキップ
PickDist 0.0でPick全スキップ、
PickDist 1.0で視野内全メッシュに対してPick
マニピュレータの色の濃さを調整
色が濃すぎてメッシュが隠れてしまっていたのを
見易くなるように修正
半透明ブレンドに関わるメッシュソートの改良
管理クラスをはっきりさせて、まとめる部分はまとめてからソート
シェーダー内の割り算を出来るだけ掛け算表現で計算するように修正
多少高速化
2024/03/29
AdditiveIK 1.0.0.13
1.0.0.12からの変更点
不具合修正
DepthOfField(DOF)の修正
ボケるべき位置にボケない三角形が多数表示される不具合を修正
SkyDOFの実装方法をSkyデプス方式からクリア方式へ変更
大きいモデル(ポリゴン)表示時やカメラが遠くに離れた場合に
不具合が生じていた
RefPosをオンにした場合にも生じていた
RefPosの修正
半透明がブレンドされていなかった不具合修正
DOFと一緒に使うとボケない三角形が多数表示されていた不具合修正
スキンメッシュの内部配列のインデックスが
一部RefPosに対応できていなかった不具合修正
OWPスライダーの修正
セパレータ内のスライダーの左ダブルクリックが効かなくなっていたのを修正
左ダブルクリックでクリック位置へつまみを移動
セパレータ内の右ダブルクリックが効かなくなっていたのを修正
右ダブルクリックでスライダーのアンドゥを実行
スライダードラッグ時につまみの位置が微妙にずれるのを修正
クリック位置とつまみ位置のずれを保ったままドラッグによりスライドする
修正により、つまみ中央をドラッグした場合にも
つまみ位置とマウスと位置がぴったり合うことを確認
剛体マーク、リグマーク表示の修正
マルチスレッドのスロット番号合わせとフレーム番号合わせ
メッシュの姿勢とマークの位置が表示1回分ずれていたのを修正
プレビュー時、ホイールによるタイムラインフレーム移動時にも
表示がずれなくなった
アルファテストスライダー追加
ShaderプレートメニューにAlphaTestスライダーを追加
透明度がスライダー値より小さい場合に
ピクセル単位で描画をスキップする(アルファテスト)
アルファテスト修正
アルファテスト時にシェーディングアルファ設定にも簡略計算にて対応
シェーディングアルファで透明度を設定しておいてから
アルファテストスライダーを操作することにより
メッシュを明るい部分から徐々に出現させたり、
暗い部分から徐々に消したりすることが可能
アルファテストで完全に消えた場合の跡地がDOFでボケるようになった
ブラシのスピーディー選択
3Dウインドウの何も無いところ(背景)を右クリックすると
ブラシ選択コンテクストメニューが出る
詳細な設定はBrusheParamsプレートメニューで行うが、
ブラシの種類をパッと変えたいときに便利
選択中ブラシ名を表示
オイラーグラフのオイラー数値表示の並びに、
選択中のブラシ名も表示
TestフォルダにBoySporty_2モデルを追加
新しいVRoidでモデルを出力し直して復活
顔のシェーディングが直った
2024/03/20
AdditiveIK 1.0.0.12
1.0.0.11からの変更点
不具合修正
マルチスレッド処理修正
マルチスレッドのスロット合わせし直し
以前はループの最後と最初の部分で
部分的に形状が伸びることがあったがその症状は解消した
レンダリング中に姿勢計算をしても表示が乱れなくなった
シェーダーコンパイルエラー時にabortするように.
ユーザーがシェーダーをいじることも想定
エラーの時にはアプリを終了
シェーダーにミスがあった場合
(例えば全角スペース1個入っていた場合)に
アプリとWindowsOSが固まる不具合を解消
拡大、回転、移動の必要なものだけペースト
操作対象ボーン設定ダイアログに機能追加
ペーストショートカットボタンを右クリックで設定
PasteScale, PasteRotation, PasteTranslationの
3つのチェックボックスを追加
スケール(拡大縮小)、ローテーション(回転)、トランスレーション(移動)
の中の必要なものだけチェックしてペースト
SRT3つの組み合わせも可能
ジャンプ補間ボタン
Hipsジャンプ補間ボタンを追加
上段カエルボタンを押したときに、
補間ボタンの左隣にジャンプ補間ボタンを追加
選択フレーム範囲の最初フレームと最後フレームの
Hipsの移動アニメを放物線で補間する
最後のフレームでぴったり着地するように補間
ボタンを押したときに、
ジャンプ補間用の重力設定ダイアログ(再計算ボタン付き)を表示
いつでも使うスライダーを常駐
アプリ上部に常駐スライダーを追加
EditRate、Speed、TopPosスライダーを常駐
いつでも操作可能に
TopPosスライダーの横幅が長くなったので
ブラシのピーク位置の設定精度が上がった
(長い分、目盛りが細かくなった)
被写界深度(Depth of Field)対応
DOFプレートメニュー新規
ボカシ始め距離、ボカシ完了距離、
SkyDof(天球にもボカシを入れるかどうか)の設定
8スロット分設定可能
フォグ対応
Fogプレートメニュー新規
カメラ距離フォグと高さフォグに対応
フォグ色も指定可能
8スロット分設定可能
Skyプレートメニュー新規
8スロット分設定可能
アルファテスト
ピクセルシェーダ内でテクスチャのアルファが
0x08より小さい場合に書き込みをスキップ
書き込みスキップ時はZバッファにも描画されないので
テクスチャ抜きが綺麗に.
シェーディングアルファ
BaseAのスライダーでマテリアルの透明度を設定可能
HiA,LowAも設定可能
マテリアルごとに
光の当たり方によってアルファ(透明度)を徐々に
変化させることが可能
DispAndLimitsプレートメニューにAlphaBlendingチェックボックス
アルファテストだけのアルファ抜き表示の時はオフ、
ブレンドしたい場合にオン
オンにした場合にはZバッファのクリア1回分処理が増える
ドキュメント追記
TroubleShooting/0_シャドウの設定の仕方について.docx
2024/03/08
AdditiveIK 1.0.0.11
1.0.0.10からの変更点
不具合修正
インスタンシング描画修正
プリミティブ数指定を修正
直す前は、デバッグビルド実行時に警告が出ることがあったようだ
Shaderプレートメニュー修正
見出しボタンを押した後にShaderTypeを変更した場合に
最後のマテリアルの3文字タイプ表記が変わらない不具合を修正
(設定はされていた)
fbxに四角形が含まれていた場合に警告ダイアログを出すように.
エラーにはならないが4点目の法線を読み込んでいないので警告ダイアログを出した.
ワーニングは1ノードに付き1回まで.
起動時のウインドウ大小選択ダイアログでキャンセルしてアプリを終了した場合に
メモリリークしていたのを修正
法線マップとメタルマップのサンプラー修正
複数アセットで確認したが、albedoとnormalとmetalは
セットで切り替えるようだった
normalとmetalのサンプラーにもalbedoのサンプラーを使用することにした
TheHuntStreet1の地面の凸凹が改善した
マテリアルごとに影を落とさない設定を可能に
ShaderプレートメニューにShadowCasterチェックボックス追加
天井や壁や仕切りカーテンなどに対して
ShadowCasterのチェックをオフにすることで狭い場所にも
きれいに影が落ちやすくなった
2番目のトークンで類似チェックオンオフを可能に
DispGroupプレートメニューのSimilarチェックをアップデート
メッシュ名を右クリックで出るコンテクストメニューに2nd ON, 2nd OFFを追加
_で区切られたメッシュ名の2つ目の_の後のトークンを元に処理
例えば、Model_tree_1というメッシュに対して2nd ONを実行すると
Model_tree_2, Model_tree_3などがチェックオンになります
ShaderプレートメニューにLightingチェックボックス追加
チェックオフ時にはライトの向きを考慮しない白い拡散色とマテリアルテクスチャで表示
DispAndLimitsプレートメニューのEnableLightチェックをオフにした場合は
シーン全体に対してライトの向きを考慮しない白い拡散色とマテリアルテクスチャで表示
天球表示をオプションに
DispAndLimitsプレートメニューにSkyDispチェックボックスを追加
天球マテリアル設定機能追加
アプリ上部のメインメニューバーの
表示(disp)-->天球設定(SkyParams)メニュー選択でダイアログ表示
設定はアプリ終了時自動保存、アプリ起動時自動読込
UVの繰り返し回数設定
ShaderプレートメニューにTilingU, TilingVのスライダーを追加
スライダー設定をリアルタイムでテクスチャの繰り返し回数として適用
Albedoテクスチャ, Normalテクスチャ, Metalテクスチャすべてに影響
fbxファイルのUVScalingに保存して読み込み
UVScalingはMayaとUnityでは現在は無視されているようにみえる
fbxの正式なtiling回数の保存読み込みに関しては不明
CameraDistスライダーの最大値を1000から5000に変更
2024/02/27
AdditiveIK 1.0.0.10
1.0.0.9からの変更点
不具合修正
シャドウカメラの計算を修正
思った通りになっていなかったのを修正
ピック&セットの不具合修正
DispGroupプレートメニューにおいて、
クリックしてもGUI上で選択メッシュが自動選択されないケースがある不具合修正
選択メッシュをみつけた場合のbreak抜けにより自動選択されないケースがあった
OWP_Sliderの修正
スライダー上のクリック位置からの移動量でスライドする機能の修正
スライダーがセパレータの右側にある場合に計算が間違っていたのを修正
Testフォルダのモデル更新
新しいVRoidのモデルはStdシェーダで表示しても顔の中央に白いラインが出ないので、
今後は新しいVRoidのモデルを使用する
2/22のモーキャプ@夕暮れキッチン(https://youtu.be/pMRaTOw5B38)のモデルを新規
スカートに剛体設定してスカートのシミュをオンに設定
ジャンプした際にスカートががめくれないようにするには
こちらではDispAndLimitsメニューのSpeedを0.5に.
Rigの軸がドラッグ開始姿勢に依存していた問題解決
ジョイントドラッグのIKはうまくいっていたがRigで問題が出ていた
Rigの軸としてNodeX, NodeY, NodeZのどれかを選ぶことで動作が安定
ただしfbxのジョイントに適切な初期姿勢が設定されていることが前提
初期姿勢が設定されていない場合にNodeX, NodeY, NodeZを指定すると
ボーン軸ではなくグローバルXYZの回転になってしまう
新しいVRoidのモデルではうまくいっているようだ
DispGroupメニューのメッシュ名右クリックからのSimilarON,OFFの修正
処理関数を書き直し
先頭に'_'があってもうまくいくようになった
DispGroupメニューの項目の選択処理が重すぎたのを修正
プログラムからの項目選択時にも項目選択リスナーを呼び出していたのを
呼び出さないように修正
カメラドリーダイアログの修正
カメラドリーダイアログを出したときにカメラの位置が変わってしまわないように修正
(保存したいカメラ画面にしてからダイアログを出す場合に画面が変わると困るから)
カメラターゲットに関わるGUIを右ペインの上のウインドウに常駐
Lock2Jointチェックボックス : 選択中のジョイントをカメラの注視点にする
DispTargetチェックボックス : カメラターゲットの位置にマニピュレータと位置座標表示
CamDistスライダー : カメラの視点と注視点の距離を設定する
MoveEyePosチェックボックス : オフの時スライダー操作時に注視点を移動、
オンの時スライダー操作時にカメラ位置を移動.
CamDistスライダーで注視点を前後させて、カメラの回転の中心を設定することが可能
MoveEyPosチェックとスライダーの組み合わせで、
尺取虫の様にカメラを操作することも可能
注視点はカメラを回転する場合の回転中心になる
ファイルオープンダイアログを通常のエクスプローラタイプに変更
エクスプローラタイプに変更するとファイルを選択しやすい
しかし
現状のゲームパッド対応コードでは目的のGUIコントロールを取得することが出来なかった
(ゲームパッドでオープンダイアログのボタンを押すことが出来ない)
ゲームパッド対応はモーション遷移テストやキャラクターの移動などに
限定して使用していく予定
ゲームパッド対応時にもマウスは必要という方針に変更
どうしてもゲームパッドでファイルを開く必要が生じた場合には、
ゲームパッドでピック可能なオープンダイアログを作ることになる
ver1.0.0.10時点では一時的にゲームパッド対応コードをコメントアウトしている
LightsプレートメニューのGUI改良
ライトの方向を設定するためのGUIを極座標表現に変更
角度2つで設定可能なのでベクトル指定よりも直感的に設定することが可能
内部データと読み書き用ファイルは向きベクトルのまま
極座標のXZの角度は本来はX軸方向だが、
アプリ起動時のカメラの向きに合わせてZ軸方向を0度にした
GUIでの角度の数値の小数第2位以降は誤差ですが、
表示桁数を減らすと余計に誤差が大きくなるので小数4桁表示しています
マニピュレータ表示修正
回転モードのときにはリングも表示
移動モード、拡縮モードの時には軸だけ表示
DispGroupメニューにClearボタンを追加
メッシュ名のチェックマークをクリアするボタン
ドキュメント追加
0_TroubleShooting/0_スカート物理の設定の仕方.docx
0_TroubleShooting/0_シャドウの設定の仕方について.docx
0_TroubleShooting/0_Win32ダイアログの黒い枠.docx
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
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を変えてください.
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バッファ方式を切り替え
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に.
カメラに合わせてモデルのモーションを付ける際に
モデルだけ補間されてカメラが補間されない場合に、
モデルが画面上を行ったり戻ったりするようにみえる不具合解消のため.
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)
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(詳細度切替機能)を使って
遠くのオブジェクトに対してはノーマルマップ無しのモデルに置き換える
というのが良いと思っている
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時に軸がブレたりした
スケール初期化で直った
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のものにしたいと思っています(遠い目).
#########
## 備考002
#########
右ペインのWin32ダイアログに黒い枠表示が付いてしまう件
ウインドウの背景色は本来はプログラムごとにいじるものではないらしい
WindowsのユーザがWindowsの設定画面を使ってテーマと
背景色を設定するのが本来のやり方とのこと
設定の仕方としてはWindows11においては以下のようだった
設定-->アクセシビリティ-->コントラストテーマ-->夜空-->適用する
上記設定をするとWindows11全体としてウインドウの背景色が黒になる
ショートカットでテーマのオンオフも可能
左Alt + 左Shift + PrintScreenでテーマをオンオフ
図:コントラストテーマとして夜空を設定して起動したAdditiveIK