いつも弊社製品をご愛顧のほど誠にありがとうございます。
お問い合わせ頂いたポーズ処理の件につきまして、調査が完了しましたのでご連絡差し上げます。
先に結論から申し上げますと、今回本スレッドで @KT 様にご提示いただいた修正内容で問題ございません。
その際、以前のスレッド でご提案させていただいた修正内容が不要となります。ご案内に不備があり混乱をお招きし、大変ご迷惑をおかけいたしました。
以下挙動調査の詳細となります。
症状が異なる原因について
_parameterStore が null であるかどうかで挙動が変化いたします。
_parameterStore位置修正前
CubismModel.Revive関数内の CubismModel.CanRevive が一度も有効にならないため、どの状態でも_parameterStore は null のままで main.Start関数は終了します。
_parameterStore位置修正後
いかなる条件であっても CubismModel.Revive関数が呼ばれた段階で _parameterStore をGetComponent関数で更新します。
この結果、main.Start関数内の、CubismModel3Json.ToModel関数やCubismModel.ForceUpdateNow関数でCubismModel.Revive関数が呼ばれると、_parameterStore に参照が入り、nullではなくなります。
この違いによる影響
main.Start関数内でCubismPoseController.Refresh関数を呼んだ際に CubismPoseController.defaultPoseIndex で設定されているインデックス以外は0.0に設定されます。
ただし、_parameterStore が設定されていると CubismParameterStore.Update関数で毎フレーム保存済みの値が適用され、この時点での各パーツの不透明度がポーズ適用前の値であるため全て1.0となります。
CubismParameterStore.SaveParameter関数で最新の値へ更新するのはCubismParameterStore.Refresh関数のため、常に毎フレーム1.0がパーツの不透明度に反映されている状態。
対応について
CubismPoseMotionImporter.InitializePosePart 関数の移植は問題ございません。また_parameterStore位置修正は不要となります。
なお、CubismModel3Json.ToModel関数は内部でCubismModel.InstantiateFrom関数を経由してCubismModel.Reset関数を呼んでいるため、その場でCubismModel.TaskableModelが生成されてその後は CubismModel.IsRevived が有効となり、CubismModel.CanRevive の条件式に入りません。
以上ご確認いただけますと幸いでございます。