ステータスの表示がおかしくなることは無くなっていますが
戦闘中に文字が消える不具合はver1.00.06でもまだ起こります。
起こるきっかけがあったと思われる時にエラーは以下のように出てきます。
NullReferenceException: Object reference not set to an instance of an object
TMPro.TMP_FontAsset.SetupNewAtlasTexture () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2415)
TMPro.TMP_FontAsset.TryAddCharacterInternal (System.UInt32 unicode, TMPro.TMP_Character& character) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2118)
TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAsset_Internal (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:159)
TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAssets (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Collections.Generic.List`1[T] fontAssets, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:241)
TMPro.TMP_Text.GetTextElement (System.UInt32 unicode, TMPro.TMP_FontAsset fontAsset, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isUsingAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:6147)
TMPro.TextMeshProUGUI.SetArraySizes (TMPro.TMP_Text+UnicodeChar[] unicodeChars) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1209)
TMPro.TMP_Text.ParseInputText () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:1902)
TMPro.TextMeshProUGUI.OnPreRenderCanvas () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1644)
TMPro.TextMeshProUGUI.Rebuild (UnityEngine.UI.CanvasUpdate update) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TextMeshProUGUI.cs:216)
UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/CanvasUpdateRegistry.cs:215)
UnityEngine.Canvas:SendWillRenderCanvases()
その後スキルが使用されたりすると次のエラーを吐き続けます。
issingReferenceException: The object of type 'Texture2D' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
TMPro.TMP_FontAsset.TryAddCharacterInternal (System.UInt32 unicode, TMPro.TMP_Character& character) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2063)
TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAsset_Internal (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:159)
TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAssets (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Collections.Generic.List`1[T] fontAssets, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:241)
TMPro.TMP_Text.GetTextElement (System.UInt32 unicode, TMPro.TMP_FontAsset fontAsset, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isUsingAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:6147)
TMPro.TextMeshProUGUI.SetArraySizes (TMPro.TMP_Text+UnicodeChar[] unicodeChars) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1209)
TMPro.TMP_Text.ParseInputText () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:1902)
TMPro.TextMeshProUGUI.OnPreRenderCanvas () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1644)
TMPro.TextMeshProUGUI.Rebuild (UnityEngine.UI.CanvasUpdate update) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TextMeshProUGUI.cs:216)
UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/CanvasUpdateRegistry.cs:215)
UnityEngine.Canvas:SendWillRenderCanvases()
Created at
Updated at
ご報告誠にありがとうございます。
以下をご教示いただいてもよろしいでしょうか。
ご不便をおかけしてしまい誠に申し訳ございません。 何卒よろしくお願い申し上げます。
Created at
unity editorはver2021.3.24f1
RMUはVer1.00.04
Unityの言語設定は日本語です。
新規プロジェクトは時間がかかるためまだ分かりません。
Created at
詳細をご教示くださり誠にありがとうございます。
調査の結果、何らかの原因で「TextMesh Pro」フォルダ内が破損してしまったためにこのような現象が発生しているようです(お客様が投稿されている、他の2件も同じ原因であると推察されます)。
解決するには以下の手順をお試しください。
ご不便をおかけしてしまい誠に申し訳ございません。 何卒よろしくお願い申し上げます。
Created at
project_baseファイルについてですが見てみたところバージョンが1.0.0でした。
プロジェクト内のzip.meta拡張子のファイルも同様です。
アップデートに失敗しているのでしょうか。
今まで1.00.00→1.00.01→1.00.02→1.00.04とアップデートを行っていますが必ず途中でアップデートが止まってしまいパッチが必須でした。
対処法を教えて頂きたいです。
Created at
新規プロジェクトにRPG Maker Uniteの現時点での最新版である1.00.04をインポートしてください。
インポート完了後、上述 のフォルダ内にproject_base_v1.0.4.zip(上記では1.0.5と記載いたしましたが、1.0.4の誤りです。大変失礼いたしました。)が生成されますので、こちらをお使いください。
何卒よろしくお願い申し上げます。
Created at
Updated at
project_baseのファイルを置き換えたところステータスや戦闘、装備等の表示関連の不具合は直りました。
ありがとうございました。
しかしその後にスキル付きの武器を使用して戦闘で攻撃を行ったところ再度エラーが出て
また同様の不具合が出るようになってしまいました。
project_baseファイルの破損はそれが原因ではないでしょうか。
以下使用していた武器のスクリーンショットです。
特徴の欄で付加しているスキルの中身は敵に対してランダムで3回攻撃する、というものでした。
Created at
お返事が遅くなってしまい申し訳ございません。
昨日Uniteの最新版1.00.06がリリースされました。このバージョンにアップデートして みて、状況が改善されるかをご確認いただいてもよろしいでしょうか。
お手数をおかけしますが、何卒よろしくお願い申し上げます。
Created at
ステータスの表示がおかしくなることは無くなっていますが
戦闘中に文字が消える不具合はver1.00.06でもまだ起こります。
起こるきっかけがあったと思われる時にエラーは以下のように出てきます。
NullReferenceException: Object reference not set to an instance of an object TMPro.TMP_FontAsset.SetupNewAtlasTexture () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2415) TMPro.TMP_FontAsset.TryAddCharacterInternal (System.UInt32 unicode, TMPro.TMP_Character& character) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2118) TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAsset_Internal (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:159) TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAssets (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Collections.Generic.List`1[T] fontAssets, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:241) TMPro.TMP_Text.GetTextElement (System.UInt32 unicode, TMPro.TMP_FontAsset fontAsset, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isUsingAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:6147) TMPro.TextMeshProUGUI.SetArraySizes (TMPro.TMP_Text+UnicodeChar[] unicodeChars) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1209) TMPro.TMP_Text.ParseInputText () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:1902) TMPro.TextMeshProUGUI.OnPreRenderCanvas () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1644) TMPro.TextMeshProUGUI.Rebuild (UnityEngine.UI.CanvasUpdate update) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TextMeshProUGUI.cs:216) UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/CanvasUpdateRegistry.cs:215) UnityEngine.Canvas:SendWillRenderCanvases()
その後スキルが使用されたりすると次のエラーを吐き続けます。
issingReferenceException: The object of type 'Texture2D' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. TMPro.TMP_FontAsset.TryAddCharacterInternal (System.UInt32 unicode, TMPro.TMP_Character& character) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAsset.cs:2063) TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAsset_Internal (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:159) TMPro.TMP_FontAssetUtilities.GetCharacterFromFontAssets (System.UInt32 unicode, TMPro.TMP_FontAsset sourceFontAsset, System.Collections.Generic.List`1[T] fontAssets, System.Boolean includeFallbacks, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontAssetUtilities.cs:241) TMPro.TMP_Text.GetTextElement (System.UInt32 unicode, TMPro.TMP_FontAsset fontAsset, TMPro.FontStyles fontStyle, TMPro.FontWeight fontWeight, System.Boolean& isUsingAlternativeTypeface) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:6147) TMPro.TextMeshProUGUI.SetArraySizes (TMPro.TMP_Text+UnicodeChar[] unicodeChars) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1209) TMPro.TMP_Text.ParseInputText () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs:1902) TMPro.TextMeshProUGUI.OnPreRenderCanvas () (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMPro_UGUI_Private.cs:1644) TMPro.TextMeshProUGUI.Rebuild (UnityEngine.UI.CanvasUpdate update) (at Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TextMeshProUGUI.cs:216) UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/CanvasUpdateRegistry.cs:215) UnityEngine.Canvas:SendWillRenderCanvases()
Created at
Updated at
私も同様の事象になったことがあります。 独自のやり方で、環境を再構築すると治るので、今は、発生していない状態です。
私は、今の所、1.00.06 では、不具合が発生していません。 でも、一旦発生すると繰り返し発生して、動作が不安定になります。
何か、特定の文字を使おうとすると不具合が起きるようです。
以前発生したときは、メニューから「万能薬」を使おうとしたら不具合がおきました。 色々と調査したところ、説明の 「戦闘不能以外の状態異常を回復 する。」 を表示させようとすると不具合が発生してしまうことがわかりました。 この中のどれかの文字が使えなくなっていると思われます。 この説明を消したら、普通に動きましたので。。。
そこで、TMPについて調べてみました。
特定の文字が、指定されたフォントアセットで対応していない場合、 FallBackに登録されたフォントアセットが使われるようです。
Uniteのフォントアセットの設定を見ました。
設定に違和感を感じる箇所があったので、ご確認いただけないでしょうか?
自分で正解と思われる設定をしても、 一度起きた不具合が解消されることがなかったです。
どこかのタイミングで、Uniteに取り込まれて、 最新の設定が反映されていないのかもしれませんが、 自力での解決はできませんでした。
1)defalt SDF の 設定 defalt SDF の Fallback に mplus-1m-regular SDF が二つ登録されている。 一つでいいのではないかと予想します。
2)menu SDF の 設定 menu SDF の Fallback に SourceHanSansCN-Reguler SDF が登録されていない。 追加するべきじゃないかと予想します。
CNなので中国語対応のものかもしれないので、 関係ないかもしれないと思いつつ、 中国語の文字に日本語の文字を追加して SourceHanSansCN-Reguler SDF を作成していたら、 おかしな事象になる可能性も考えられると予想しました。
一度、おかしな状態になると、環境を再構築してリカバリするのに 数時間かかってしまうので、 この事象は、結構なストレスになります。
もし、この変更で改善される可能性があるのなら、 修正していただけますと幸いです。
Created at
再び文字の表示が無くなった時に
以前教えて頂いたようにTMPの上書きを行いました。
その際に上書きされたフォルダの中を見てみると
フォントフォルダ内の
mplus-1m-regular SDF.assetとSourceHanSansCN-Regular SDF.assetのみが
上書き更新されていました。
TMP破損時には恐らくこの二つのファイルが変更されていたものと思われます。
ですのでアイネロさんがあげてくださったその二つのファイルが関係していることは充分にありうると思います。