Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[9096] オブジェクトのIDがリセットされてしまう / binzume
Done [Bug report] Response
MQObject::GetUniqueID() が返すオブジェクトのユニークIDがファイルを開き直すとオブジェクトのインデックスの値にリセットされてしまうようです.

新規ドキュメントに空のオブジェクトを作成し,ファイルに保存すると.mqoファイルにもオブジェクトのuidの値が保存されていないようでした.

ただ,ボーンのスキン設定を行うと保存されるようになり,必ずリセットされるわけではないようです.IDを保存するためにプラグイン側から何か特定の操作が必要でしょうか?

環境は Ver4.7.7d (64bit) / Windows 10 です.
2021-07-27 21:04
[9097] Re: オブジェクトのIDがリセットされてしまう / binzume
別件ですが,同じ MQObjectなので返信で報告させてください.

引数なしの MQObject::GetName() でオブジェクト名の最後の1バイトが欠けているようです.正確なバージョンを覚えていませんが数年前のバージョンでは正常に動作していたと記憶しています. また,MQObject::GetNameW() は問題ないので,現状困っていはいません.

ご確認いただけると幸いです.
2021-07-27 21:31
[9099] Re: オブジェクトのIDがリセットされてしまう / Administrator
ユニークIDは標準的な状態では必要がないため保存されず、プラグイン内(ボーンやモーフも含む)で必要な場合にのみ保存されます。

SDKではOnSaveDocumentのparam引数内のbSaveUniqueIDが該当します。ここにTRUEを指定した場合にユニークIDが保存されますが、必要のない場合は必ず初期値のFALSEのままにしてください。

GetNameのほうは即答ができないので、また後日確認後に返答させていただきます。
2021-07-27 22:15
[9100] Re: オブジェクトのIDがリセットされてしまう / binzume
返答ありがとうございます.
すみません,OnSaveDocumentの説明を見落としていました.GetUniqueID() の説明からリンクがあると見落とさずに済みそうです.
2021-07-28 09:57
[9102] Re: オブジェクトのIDがリセットされてしまう / Administrator
GetNameについても確認しました。
Ver4.7あたりからstd::string戻り値のGetName()で挙動がおかしくなっているようです。
昔からのスタイルのGetName(char*,int)やGetNameW()では問題ありません。
現在では内部で管理される形式がワイド文字なので、GetNameW()が推奨となりますので、こちらをご利用いただいていれば大丈夫です。

ユニークIDについてはわかりやすいようドキュメントに追記しておきます。
2021-07-28 20:34
[9103] Re: オブジェクトのIDがリセットされてしまう / binzume
ご確認ありがとうございました.大変助かりました.
2021-07-29 20:13