更新履歴


[2.13.0]
追加:新しく初期化用データを保存するようになりました。これにより初期化の速度が上がり、また初期化時に任意の姿勢で開始できるようになりました。
初期化データは新規コンポーネントでは自動的に作成されます。以前に作成されたコンポーネントではプレハブモードに入るか、もしくは一旦シーンに配置することで自動作成されます。
初期化データの状態はインスペクターの情報欄に表示されます。

改善:実行時構築では初期化から5ms後に構築作業を開始するように変更しました。これは一度に大量のインスタンス化や初期化を行うときに負荷を分散させる目的があります。
改善:ManagerInformationログにOSやCPUなどの実行環境を追加しました。
修正:登録したルートボーンもしくはレンダラーが重複していた場合は、エラーとなり動作しないように修正しました。
修正:アンカーの参照オブジェクトがチーム破棄時に正しくクリアされていなかった問題を修正しました。
修正:実行時構築の一部の処理がBurstコンパイルされていなかった問題を修正しました。これにより構築速度が向上しました。
修正:カスタム法線の計算アルゴリズムを修正しました。法線がより正しい向きを指すようになります。
修正:サンプルのUnityChanKAGURAの前髪の法線調整が誤った設定になっていた問題を修正しました。


[2.12.0]
追加:MagicaSettingsにPlayerLoopの監視チェックを追加しました。これは外部アセットによりPlayerLoopが上書きされてしまった場合に再設定するものです。

改善:C#で実行されるシステム関連の処理を大幅に高速化しました。
改善:距離カリングの初期状態を無効にしました。
改善:慣性スムージングの初期値を0.4、テザー圧縮の初期値を0.4に変更しました。これは動作をより良いものにするための改善です。
改善:各プリセットの慣性スムージングとテザー圧縮の値を調整しました。


[2.11.1]
修正:実行中にシミュレーション周波数を切り替えると時間管理に不整合が発生し、場合によってはメッシュが消失する問題を修正しました。
修正:表示予測アルゴリズムを改善しました。これにより、ラグが発生した際にメッシュが必要以上に伸びる問題が大幅に改善されました。
修正:セルフコリジョン利用時にスケールの異なる2つのメッシュを同期させた場合に起こる様々な問題を修正しました。


[2.11.0]
追加:MeshClothに接線の再計算モードを追加しました。

改善:すべてのコンポーネントをマルチ選択とマルチ編集可能にしました。
改善:マルチ選択時にギズモが正しく表示されるように改善しました。
改善:エディタのギズモトグルによりコンポーネントごとにギズモ表示の有無を設定できるように改善しました。

修正:スケール0でもエラーにならないように修正しました。ただし、スケール0ではシミュレーション結果は表示されません。


[2.10.0]
追加:距離カリングを追加しました。設定した距離以上の場合はシミュレーションを停止します。これによりパフォーマンスが向上します。

追加:実行時にMeshClothを構築する際に頂点属性をメッシュの頂点配列に対応した属性配列として指定する方法を追加しました。これはペイントマップによる属性指定の代替案です。
改善:これまで未公開プロパティであったblendWeightをインスペクターから操作できるように変更しました。

改善:BoneCloth/BoneSpringをDisableにしたときにTransformの姿勢を初期状態に戻すように変更しました。
修正:WindZoneの風向き変更関数であるSetWindDirection()が正しく機能していなかった問題を修正しました。


[2.9.1]
修正:非一様スケールでの利用はエラーではなく警告に変更し実行するようにしました。ただし、依然として非一様スケールでの利用は非推奨であり様々な問題が発生する危険性があります。


[2.9.0]
追加:カプセルコライダーにReverseDirectionフラグを追加しました。カプセルの方向を逆転できます。
追加:blendWeightパラメータをアニメーション制御可能にしました。
改善:コンポーネントのスケール状態を検証するようにしました。一様なスケール以外ではエラーとなります。
改善:カスタムスキニングの仕様を一部変更しました。これは利便性向上のためです。
修正:エッジとカプセルコライダーの衝突判定において状況により頂点が跳ね続ける振動の問題を修正しました。
修正:事前構築利用時に重力の初期方向が正しく記録されない問題を修正しました。これにより事前構築利用時にGravityFalloffが機能しない問題が解消されます。ただし修正するには事前構築データの再作成が必要です。


[2.8.0]
追加:マイナススケールに対応しました。負のスケールはXYZの一軸のみ設定可能です。
改善:一部のプリセットを再調整しました。
改善:プレーンコライダーの押し出し方向を表示するようにしました。
修正:コライダーが最初からDisableの状態であっても動作してしまう問題を修正しました。


[2.7.0]
追加:慣性スムージング機能を追加しました。急激な移動に対するクロスの乱れを緩和することが可能です。慣性パネルの”World Inertia Smoothing”パラメータで調整可能です。

追加:UpdateModeにAnimatorLinkageを追加しました。キャラクターのAnimatorと連動して適切な更新モードを自動で設定します。
修正:実行時構築の初期化中にコンポーネントが破棄されるとアサートログが表示される問題を修正。なお、このアサートは動作には影響ありません。
改善:慣性スムージング導入のためサンプルのUnityChanKAGURAのパラメータを調整しました。
改善:慣性スムージング導入のため各プリセットを調整しました。
改善:サンプルのUnityChanKAGURAのUpdateModeをAnimatorLinkageに変更しました。


[2.6.1]
修正:AnimatorのCullModeを”Cull Update Transforms”に設定した状態でカリング機能を利用し、一度カメラから外れた際にシミュレーションが再開しなくなる問題を修正しました。


[2.6.0]
追加:アンカーの機能を追加しました。これは特定のオブジェクトの慣性を無効化するものです。移動する床や乗り物に利用できます。アンカーの強さも調整できます。

修正:負荷によりラグが発生した場合にシミュレーションが乱れる問題を修正しました。
修正:スロー再生中に移動風の影響が弱くなる問題を修正しました。
修正:スロー再生中にキャラクターが移動するとシミュレーションが乱れる問題を修正しました。
改善:MagicaClothの初期化タイミングをAwake()からStart()に変更しました。初期化前にデータを加工しやすくなります。この設定はMagicaSettingsおよびAPIによりAwake()に戻すことも可能です。
改善:MagicaClothコンポーネントの実行順位を(+5)しました。MagicaClothコンポーネントは通常のMonoBehaviourコンポーネントより後に実行されます。
改善:MagicaSettingsコンポーネントの実行順位を(-50)しました。MagicaSettingsコンポーネントは通常のMonoBehaviourコンポーネントより先に実行されます。


[2.5.2]
修正:MeshCloth利用時にメッシュに対してBoneWeightsが毎フレーム書き込まれてしまう問題を修正しました。これはv2.5.1のエンバグです。
この不具合はパフォーマンスに大きく影響するため早急に更新するようにしてください。
修正:1つのレンダラーに2つ以上のMeshClothを利用し、1つを停止させた場合に正しくメッシュのBoneWeightsが戻らない問題を修正しました。


[2.5.1]
追加:重力など一部のパラメータがアニメーションから制御できるようになりました。

修正:1つのレンダラーに2つ以上のMeshClothを利用すると描画がおかしくなる問題を修正しました。これはv2.5.0のエンバグです。
修正:SourceRenderersおよびRootBonesの内容が変化してもインスペクターがリフレッシュされない場合がある問題を修正しました。
修正:TriangleBendの計算時に浮動小数点演算の精度問題によりメッシュが壊れる問題を修正しました。
修正:PreBuildのフォーマットが変更になりました。以前のPreBuildデータは利用できなくなります。


[2.5.0]
追加:事前構築(Pre-Build)機能を追加しました。クロスデータを編集時に構築しアセット化することで実行時にシミュレーションを即座に開始することが可能です。

詳細については事前構築の利用を見てください。
修正:クロスデータ構築完了後のOnCompleteイベントが正しく呼ばれない場合がある問題を修正しました。
修正:MeshClothでメッシュの非常に狭い範囲に大量の頂点が存在する場合に、リダクションアルゴリズムでエラーが発生する問題を修正しました。


[2.4.2]
追加: TransformおよびMeshへのシミュレーション結果の書き込むを停止するSetSkipWriting()APIを追加しました。この機能を利用することでストップモーションを実装することが可能です。詳しくはストップモーションの利用を参照してください。


[2.4.1]
追加: シミュレーションの更新タイミングをLateUpdateの前にするか後にするかを選択できるようになりました。

これはUnity2DAnimationを利用する場合に必要です。詳しくは2DAnimationでの利用を参照してください。
追加: 実行時にBoneCloth/BoneSpringを作成する場合には、頂点ペイントデータの代わりにTransformと頂点属性のペアを辞書として指定できるようになりました。
詳細はBoneClothでの属性設定を参照してください。
改善: MeshClothに設定できる最大のレンダラー数を15から31に拡張しました
修正: 風ゾーンの風量を0にすると機能しなくなる問題を修正しました。風量を0にするとそのゾーンは無風となります


[2.4.0]
追加:BoneSpringを追加しました。Transformにスプリングの効果を追加することができます。機能の詳細はBoneSpringの使い方を参照してください。

追加:BoneSpring用にSoftSpring/MiddleSpring/HardSpringの3つのプリセットを追加しました。
追加:ローカル慣性のパラメータに速度制限と回転制限を追加しました。ローカル慣性の影響力を詳細に設定可能です。
追加:デモのUnityChanKAGURAにBoneSpringによる胸揺れを追加しました。
改善:実行時のギズモ表示から無効属性頂点を除外しました。
改善:慣性中心ギズモを表示するかどうかを変更できるようになりました。
改善:BoneSpringの追加にともないデモのUnityChanKAGURAのFBXモデルとプレハブを再構築しました。
修正:プロキシメッシュのエッジ数が0の場合にエラーが発生する問題を修正しました。


[2.3.2]
修正:GameObjectがDisableの状態でMagicaClothコンポーネントを追加し手動で初期化を行い、Disableの状態のまま破棄するとメモリリークが発生する問題を修正しました。
修正:MeshClothで16以上のレンダラーを設定できないように修正しました。設定できる最大レンダラー数は15までです。
修正:Unity2023でコンパイル警告が発生する問題を修正しました。


[2.3.1]
追加:プロジェクト設定にMAGICACLOTH2デファイン定義を自動で追加するようになりました。

改善:パケージにAlwaysLinkAssembly属性を追加しました。ビルド時にコードストリッピング機能によりMagicaCloth2パッケージが除外されることがなくなります。
修正:実行時にコライダーを追加すると状況によりエラーが発生する問題を修正しました。
修正:BoneClothに対して実行時に手動でBuildAndRun()を呼び出すと稀に頂点ペイントの属性が反映されない問題を修正しました。


[2.3.0]
追加:カメラカリングモードを追加しました。カメラに映らなくなるとシミュレーションが停止状態となりパフォーマンスが向上します。”Culling“パネルから設定可能です。

改善:1つのMagicaClothコンポーネントで利用できるコライダー数が32個から無制限に拡張されました。
改善:メインスレッドの処理を改善しました。パフォーマンスが向上します。
改善:プロファイラにメインスレッドの処理内容を表示するようにしました。


[2.2.0]
追加:カプセルコライダーの回転中心を始点Transformに変更するモードを追加しました。

追加:テレポート時の振る舞いの設定を[Inertia]パネルに追加しました。自動的にテレポートを検出してシミュレーションをリセットするかそのまま保持するかを選択できます。

追加:ResetCloth()APIにシミュレーションを保持するモードを追加しました。これは姿勢を維持したままテレポートする場合に便利です。
改善:慣性設定がワールド慣性とローカル慣性の2つに分離しました。ワールド慣性はキャラクター全体の動きに対応し、ローカル慣性はキャラクター内部の布の動きに対応します。これによりキャラクターの移動影響を完全に排除することも可能となります。

改善:慣性パラメータの”Movement Inertia”が”World Inertia”に変更されました。
改善:慣性パラメータの”Rotation Inertia”が廃止されました。
改善:慣性パラメータの”Movement Speed Limit”が”World Movement Speed Limit”に変更されました。
改善:慣性パラメータの”Rotation Speed Limit”が”World Rotation Speed Limit”に変更されました。
改善:長時間稼働時に内部時間の精度が落ちる問題を修正しました。
改善:慣性仕様変更に伴いUnityChanKAGURAを再調整しました。
修正:プロキシメッシュをレンダーメッシュへ反映するときに稀にトライアングルがおかしな回転を起こす問題を修正しました。
修正:移動風にスケール影響が含まれていなかった問題を修正しました。


[2.1.9]
追加:外力を加えるAddForce()APIを追加しました。
改善:BoneClothのメッシュ接続アルゴリズムを改善しました。
修正:2つの頂点がまったく同じ位置にある場合にエラーが発生する問題を修正しました。
修正:SkinnedMeshRendererのボーンリストに(null)が含まれる場合に動作しなくなる問題を修正しました。これはv2.1.8で強化した検証アルゴリズムの不具合です。
修正:コライダーを無効/有効化したときに位置が正しくリセットされていなかった問題を修正しました。


[2.1.8]
重要事項:MeshClothで利用するスキニングメッシュの頂点ウエイトが5つ以上のボーンを使用している場合に警告文を表示するようにしました。頂点ごとに利用できるウエイト数は4つまででそれ以上は無視されます。これは公開当初からの仕様です。
修正:Unity2023.1.5以上のバージョンでエラーが発生する問題を修正しました。
修正:他の外部アセットがシーンビューにGUIを描画するときにウインドウIDなどの衝突によりエラーが発生する問題を回避しました。
修正:クロスデータ作成中にキャラクターが削除されると稀にエラーが発生する問題を修正しました。
改善:MagicaSettingsコンポーネントのヘルプボタンに対応しました。ドキュメントを開くことができます。


[2.1.7]
修正:プロキシメッシュの法線計算が間違っていた問題を修正しました。これにより表示メッシュに歪な凹凸や陰影が発生する問題が解消されます。
修正:プロキシメッシュの接線計算時に稀に0除算エラーが発生する問題を修正しました。
修正:TriangleBending制約で稀に0除算エラーが発生する問題を修正しました。
修正:カプセルコライダーの長さが0の場合に発生する内部エラーを修正しました。
修正:コライダー衝突判定時に頂点が複数のコライダーに衝突すると稀に0除算エラーが発生する問題を修正しました。


[2.1.6]
追加:MagicaSettingsコンポーネントを追加しました。このコンポーネントを使うことでコードを書かずにシステム設定を変更できます。

追加:シミュレーションの周波数とフレーム最大更新回数を変更できるようになりました。この値を下げることでシミュレーションの負荷を減らすことができます。しかし周波数を下げるとシミュレーションの精度も落ちるため十分注意してください。
追加:インスペクターのヘルプボタンに対応しました。素早くドキュメントを開くことができます。
改善:メニューTools/MagicaCloth2/ManagerInformationのログをテキストファイルとして出力するようにしました。ファイルはプロジェクトフォルダにMagicaCloth2_SysInfo_xとして保存されます。なおこの機能は問題発生時の情報収集用なので普段利用することはありません。
修正:プロキシメッシュの法線と接線計算時に稀に0除算エラーが発生しメッシュが消滅する問題を修正しました。
修正:BoneClothにおいてTransform数が1の場合に発生するエラーを修正しました。
修正:スキニングを利用せずにブレンドシェイプのみを利用するメッシュがエラーとなる問題を修正しました。


[2.1.5]
追加:エディタメニューに[Manager Information]を追加しました。これは問題発生時の内部情報の収集用であり通常の利用には影響しません。
修正:MeshClothにおいて無効属性により登録したレンダーメッシュの頂点がすべて排除された場合に発生するメモリリークとクラッシュを修正しました。
修正:MeshClothにおいてリダクションにより登録したレンダーメッシュの頂点数が0となった場合に発生するメモリリークとクラッシュを修正しました。
修正:クロスコンポーネントの破棄に関するメモリリークを修正しました。
修正:同時に実行されるクロスコンポーネントが1024を超えるとシミュレーションが誤動作を起こしシミュレーションが崩壊する問題を修正しました。同時に利用可能なクロスコンポーネントの数は4096となり、それ以上のコンポーネントは動作しなくなります。
修正:MeshClothにおいてリダクションの距離はメッシュ全体のバウンディングボックスから計算されますが、リストの2番目以降のメッシュが計算から除外されていた問題を修正しました。
修正:BoneClothを実行時に生成する場合にユーザー定義された頂点属性データが無視されていた問題を修正しました。


[2.1.4]
修正: v2.1.3で行った修正によりクロス編集時に一部のギズモが表示されなくなっていた問題を修正しました。


[2.1.3]
修正:BoneClothで無効属性に指定されたTransformが完全に無効にならず一部の機能が動作していた問題を修正しました。
修正:MeshClothのオリジナルレンダーメッシュの法線と接線の向きが完全に同一方向もしくは逆方向の場合に計算がNaNとなり表示メッシュが壊れる問題を修正しました。
修正:MeshClothの頂点ウエイト計算時にエラーが発生する問題を修正しました。
修正:実行時にキャラクターのスケールを変更すると表示メッシュが壊れる問題を修正しました。


[2.1.2]
改善: MagicaPhysicsManager.OnPreSimulationイベントの呼び出し位置を正しい場所に変更しました。
改善: シミュレーションリセット後は自動で速度安定化処理を実行するように変更しました。
改善: すべてのクロスコンポーネントを無効にしても一部のシステムジョブが動作していた問題を修正しました。
改善: 無効化状態のクロスコンポーネントを有効化した場合はシミュレーションリセットを行うように変更しました。
修正: クロスデータ構築中にコンポーネントが破棄されると稀にアプリがクラッシュする問題を修正しました。
修正: クロスデータ構築中にコンポーネントが破棄されると稀にメモリリークが発生する問題を修正しました。
修正: クロスコンポーネントを無効化し位置を変更した上で有効化するとシミュレーションが大きく乱れる問題を修正しました。
修正: エディタでのプレイ終了時にコライダーマネージャで稀にエラーが発生する問題を修正しました。
修正: 稀にVirtualMeshManager.CalcTriangleNormalTangentJobで発生するアサート問題を修正しました。
修正: Odinなどの外部アセットを利用しているとGetHashCode()でエラーが発生する問題を修正しました。


[2.1.1]
修正: 風力が変動すると揺れの周期が乱れる問題を修正しました。


[2.1.0]
追加: 風のシステムを追加しました。風の影響範囲の指定や、コンポーネントごとに風を受ける影響をコントロールできます。
追加: 風システムのサンプルシーンを追加しました。
改善: 風のシステムに合わせてUnityChanKAGURAを再調整しました。
改善: リダクション設定のSimpleDistanceとShapeDistanceの距離を拡張しました
改善: コライダー追加時に親オブジェクトの名前を引き継ぐように変更しました。
修正: Unityエディタで実行を停止した際に稀にコライダーマネージャでエラーが発生する問題に対処しました。
修正: カプセルコライダーのSetSize()によるサイズ変更が誤動作を起こす問題を修正しました。


[2.0.7]
追加: 頂点ペイントにFillボタンを追加しました。すべてのポイントを一度に塗りつぶすことが可能です。
追加: 頂点ペイントにThrough機能を追加しました。この機能を使うことで奥行きに関係なくカーソル範囲のポイントを塗りつぶすことができます。
追加: クロスの中心位置を取得するAPI(GetCenterPosition)を追加しました。これは慣性の中心座標である紫のギズモ球の位置です。
追加: クロスのオリジナル姿勢とシミュレーション姿勢のブレンド率を設定するプロパティ(blendWeight)をClothSerializeDataクラスに追加しました。
このプロパティは内部変数のみであるため、スクリプトからアクセスする必要があります。
改善: 初期化およびリセット時にクロスとコライダーが重なっていると、シミュレーション開始時に頂点が激しく押し出される問題が大幅に改善されました。
これはStablizationTimeプロパティとしてインスペクターから調整可能です。
改善: Collections2.xパッケージの最新版に対応しました。Collections2.xを利用する場合は2.1.0-pre.11以上をインストールするようにしてください。


[2.0.6]
修正: MagicaClothコンポーネントを無効にしても関連するTransformへの書き込みが停止しない問題を修正しました。
修正: MeshClothでペイントマップを利用する際に対象レンダラーのTransform姿勢が単位姿勢以外の場合にペイントマップの座標がずれる問題を修正しました。


[2.0.5]
修正: 頂点が無効属性のみの場合に初期化が失敗する問題を修正しまいた。
修正: RendererListやPaintMapListを変更した際にインスペクターの情報が正しく更新されない問題を修正しました。
修正: メッシュのUV値が(0.0~1.0)以外の場合にペイントマップの適用が失敗する問題を修正しました。


[2.0.4]
修正: MeshClothで指定したRendererにMeshが存在しない場合に内部でエラーが発生し動作が不安定になる問題を修正しました。
修正: MeshClothで指定したメッシュに接線が存在しない場合に内部エラーが発生し描画が黒くなる問題を修正しました。
修正: MeshClothのレンダーメッシュをプロキシメッシュにマッピングするアルゴリズムに誤りがあり、描画の陰影などにアーティファクトが発生する問題を修正しました。


[2.0.3]
追加: MagicaClothコンポーネントにUpdateModeを追加しました。これによりシミュレーションの時間更新の方法を変更できます。

追加: UpdateModeにUnityPhysicsを追加しました。キャラクターがFixedUpdate()のタイミングで更新される場合はこちらを利用してください。
追加: UpdateModeにUnscaledを追加しました。Unityのタイムスケールに影響されない時間更新モードです。
追加: MagicaManagerにOnPreSimulation/OnPostSimulationのコールバック関数を登録できるようになりました。
追加: MagicaClothコンポーネントにOnBuildCompleteのコールバック関数を登録できるようになりました。
修正: 同期中のクロスコンポーネントの片方を削除するとエラーが発生する問題を修正しました。
修正: 同期設定されたクロスの実行タイミングが稀にずれる問題を修正しました。
修正: クロスコンポーネントをマルチ選択すると慣性パラメータの[Movement Speed Limit][Rotation Speed Limit][Particle Speed Limit]のチェックが外れる問題を修正しました。


[2.0.2]
追加: 着せ替え用のサンプルシーンを追加しました。
修正: レンダーメッシュをプロキシメッシュにマッピングするときに1つの頂点に接続する他の頂点が多い場合にエラーが発生し失敗する問題を修正しました。
修正: 着せ替え用のボーン入れ替えAPIの不具合を修正しました。
改善: 1つのクロスに設定できるコライダーの最大数を16から32に拡張しました。


[2.0.1]
修正: Enter Play Mode Optionsを使用すると2回目以降の実行時に動作がおかしくなる問題を修正しました。
修正: 頂点ペイントのカーソルディスクの方向がおかしくなる問題を修正しました。
改善: MagicaClothコンポーネントにバージョンを表示するようにしました。


[2.0.0]
初期リリース