PlayAnimationでレイヤーに関するエラーが出る

48 views
Skip to first unread message

MUSIC enp

unread,
May 2, 2024, 5:33:13 PMMay 2
to 宴ユーザーグループ
Unity バージョン:6000.0.0f1
宴 バージョン:3.12.6

突然の質問失礼いたします。

2Dキャラが動くアニメーションを作成し、
Animationシートに連番で設定、元の画像はSpriteとして登録、
アニメーションを表示したいレイヤーをSpriteとして
その上でPlayAnimationで動かそうとしているのですが

「'(レイヤー名)' AnimationEvent 'ChangePattern' has no receiver! Are you missing a component?」

とエラーが出てアニメーションされません。
どこで間違えているのかご教示いただけますと幸いです。

マッドネスラボ

unread,
May 2, 2024, 6:08:42 PMMay 2
to 宴ユーザーグループ
PlayAnimationコマンドは基本的には対象にしたオブジェクトそのものに対するアニメーションしかできません
レイヤーを指定した場合は移動アニメーション等は可能ですが、
レイヤーオブジェクト以下にあるキャラクターやスプライトのオブジェクトに対するアニメーションはできません。
なので、レイヤー名ではなく対応するキャラクター名かスプライト名を指定してください。

また、Animationシートのドキュメントにあるように
アニメーションキーのプロパティのうち
「Texture」の場合はダイシングが必須です。 
「Pattern」の場合はキャラクター表示のうちファイル変更がない場合のみ使用可能です。(SpriteにはPatternがありませんので使用できません)

また、2Dプレハブを使うとUnityのメカニムを使えるので、AnimationシートやPlayAnimationコマンドを使わずに、モーション再生をする形でアニメーションが可能です。
Unityに慣れているのであれば、こちらのほうがわかりやすいかもしれません



2024年5月3日金曜日 6:33:13 UTC+9 MUSIC enp:

MUSIC enp

unread,
May 15, 2024, 11:29:38 AMMay 15
to 宴ユーザーグループ
お世話になっております。

ご回答ありがとうございました。
もっと簡単な演出にしようと、Characterに設定した画像を変化させるという
(例えば(^ω^)→(´・ω・`)のような感じです)
方向に変えて、画像もDicingしてAnimationシートで設定をして…と進めているのですが、

>(CharacterシートのName) is not find in (Character画像のサブフォルダ)

とエラーが出てしまい、やはりアニメーションが上手く表示されません。

お心当たりがあればご回答いただけますと幸いです。

2024年5月3日金曜日 7:08:42 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
May 15, 2024, 10:33:17 PMMay 15
to 宴ユーザーグループ
エラーを見る限り、設定した位置に素材がないだけのようです。
Characterシートの設定を見直して、まずアニメーションなしでダイシングの表示が正しくできているかを確認してください。

アニメーションなしで意図通りの表示できているのであれば、
アニメーションのシートの設定の問題かもしれません。
ダイシングのアニメーションは、Textureキーに元のテクスチャ名を設定する形になります。

また、エラーが出る場合は、ゲームの画面以外にもUnityのコンソールウィンドウにログが出力されています。
エラーログ出力にはコールスタック(プログラムの呼び出し履歴)がついていると思います。
↓内容はエラーごとに違いますが、こんな感じの書式でエラーの起きたプログラム箇所の詳細がわかります。
Utage.CreateNewProjectWindow.get_UiFont () (at Assets/Utage/Editor/Scripts/Menu/CreateNewProjectWindow.cs:57)
Utage.CreateNewProjectWindow.OnGUI () (at Assets/Utage/Editor/Scripts/Menu/CreateNewProjectWindow.cs:117)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at /Users/bokken/build/output/unity/unity/Editor/Mo
これがわかればどこでエラーがでているかもわかるので、それも一緒に投稿していただければより正確にお答えできるようになります。
(ファイル名やフォルダパスなどで、他人にみられたくないもがある場合は適当な名前に変えてください。)


2024年5月16日木曜日 0:29:38 UTC+9 MUSIC enp:

MUSIC enp

unread,
May 16, 2024, 7:50:57 AMMay 16
to 宴ユーザーグループ
ご回答ありがとうございます。

Dicingした画像を1枚だけ表示させようとしたところ
表示が出来なかったので、Characterシートの設定の問題かもしれません。

下記がコンソールに出たエラーとなります。
お手すきの際にご返信いただけますと幸いです。

>con_00.png is not find in con_UR
>UnityEngine.Debug:LogError (object)
>Utage.DicingImage:set_Pattern (string) (at Assets/Utage/Scripts/GameLib/UI/Image/Dicing/DicingImage.cs:49)
>Utage.DicingImage:ChangePattern (string) (at Assets/Utage/Scripts/GameLib/UI/Image/Dicing/DicingImage.cs:71)
>Utage.AdvGraphicObjectDicing:ChangeResourceOnDraw (Utage.AdvGraphicInfo,single) (at Assets/Utage/Scripts/ADV/Graphic/Object/UIGraphic/AdvGraphicObjectDicing.cs:82)
>Utage.AdvGraphicObject:DrawSub (Utage.AdvGraphicInfo,single) (at Assets/Utage/Scripts/ADV/Graphic/Object/AdvGraphicObject.cs:176)
>Utage.AdvGraphicObject:Draw (Utage.AdvGraphicOperationArg,single) (at Assets/Utage/Scripts/ADV/Graphic/Object/AdvGraphicObject.cs:167)
>Utage.AdvGraphicLayer/<>c__DisplayClass32_0:<Draw>b__0 () (at Assets/Utage/Scripts/ADV/Graphic/Layer/AdvGraphicLayer.cs:68)
>Utage.AdvGraphicLoader/<CoLoadWait>d__5:MoveNext () (at Assets/Utage/Scripts/ADV/Graphic/Object/AdvGraphicLoader.cs:48)
>UnityEngine.MonoBehaviour:StartCoroutine (System.Collections.IEnumerator)
>Utage.AdvGraphicLoader:LoadGraphic (Utage.AdvGraphicInfo,System.Action) (at Assets/Utage/Scripts/ADV/Graphic/Object/AdvGraphicLoader.cs:37)
>Utage.AdvGraphicLayer:Draw (string,Utage.AdvGraphicOperationArg) (at Assets/Utage/Scripts/ADV/Graphic/Layer/AdvGraphicLayer.cs:66)
>Utage.AdvGraphicLayer:DrawToDefault (string,Utage.AdvGraphicOperationArg) (at Assets/Utage/Scripts/ADV/Graphic/Layer/AdvGraphicLayer.cs:113)
>Utage.AdvGraphicGroup:DrawCharacter (string,string,Utage.AdvGraphicOperationArg) (at Assets/Utage/Scripts/ADV/Graphic/AdvGraphicGroup.cs:158)
>Utage.AdvCommandCharacter:DoCommand (Utage.AdvEngine) (at Assets/Utage/Scripts/ADV/Command/Grahic/AdvCommandCharacter.cs:50)
>Utage.AdvScenarioThread/<CoStartPage>d__64:MoveNext () (at Assets/Utage/Scripts/ADV/Scenario/AdvScenarioThread.cs:348)
>UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)


2024年5月16日木曜日 11:33:17 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
May 16, 2024, 8:14:45 AMMay 16
to 宴ユーザーグループ
CharacterシートのほうのSubFileNameに設定するファイル名から拡張子を除いてください。

ss_0225.png

FileNameのほうは拡張子処理が入っているので、通常の使い方をする限りは拡張子があってもなくてもいいのですが
SubFileのほうは拡張子処理が入っていないので、拡張子はいりません。
わかりづらくてすみません。
(AnimationシートでTextureキー設定する場合も拡張子はいりません)

エラーの意味としては、「ダイシングデータの「con_UR」内に、con_00.pngという名前のテクスチャデータ見つかりません」という意味になります。

ダイシング内にコンバートされているデータは、
ダイシングアセットのインスペクター内のTextureDataListの中か、右下のプレビューメニュー切り替えで確認できますので、
同じ名前があることを確認してください。
ss_0226.png




2024年5月16日木曜日 20:50:57 UTC+9 MUSIC enp:

MUSIC enp

unread,
May 16, 2024, 5:42:40 PMMay 16
to 宴ユーザーグループ
ご回答ありがとうございます。

おかげさまで
・拡張子を除いて一度Dicingした1枚の画像を表示する(表示されなかったのでDicingをし直しました)
・上記が表示されたらAnimationシートを設定しなおす
こちらの対応でイメージ通りのパラパラアニメっが実現できました。

お忙しい中素早いレスポンスを頂き、誠にありがとうございます。
2024年5月16日木曜日 21:14:45 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages