BgやBgイベントのキーフレームアニメーション指定について

144 views
Skip to first unread message

MM

unread,
Aug 8, 2025, 8:38:46 AMAug 8
to 宴ユーザーグループ
いつもお世話になっております。


こちらのリファレンスを参考に、キーフレームアニメーションを設定したのですが、BgやEventに設定されている画像(背景やCGです)を指定すると、not foundのエラーが出てアニメーションが再生されませんでした。

立ち絵を指定すると問題なく再生されます。
このキーフレームアニメーションは、BgやEvent扱いの画像は対象ではないのでしょうか?
もし対象でなければ、BgやEventにアニメーションを設定する方法はありますでしょうか?
横長のイベントCGをキーフレームアニメーションでX座標を動かして、メイン部分を表示させたいと思っています。

ご助言いただけましたら助かります。
どうぞよろしくお願いいたします。

マッドネスラボ

unread,
Aug 8, 2025, 8:49:20 AMAug 8
to 宴ユーザーグループ
すみません。
わかりづらいのですが、Bgや BgEventの場合は、オブジェクト名は統一してBGとなっています。

なので、AnimationコマンドのArg1で指定する名前を「BG」 にしてください。



2025年8月8日金曜日 21:38:46 UTC+9 MM:

MM

unread,
Aug 8, 2025, 11:48:26 AMAug 8
to 宴ユーザーグループ
ありがとうございます!
無事動くことが確認できました。

ちなみにギャラリーのCGモードでも同様にCGを動かして表示させたいのですが、キーフレームアニメーションをCGモードでも適用できる方法はありますでしょうか?

またもう一つ、アニメーションについて質問させてください。

Unityのタイムラインを使って作られたCGのアニメーションやエフェクトを宴で表示させる際、どのように表示させればいいでしょうか?
こちらもCGモードでも表示させたいのですが、可能でしょうか?

再度の質問でお手を煩わせて恐縮ですが、お助けいただけますと幸いです。

よろしくお願いいたします。

2025年8月8日金曜日 21:49:20 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 8, 2025, 11:46:01 PMAug 8
to 宴ユーザーグループ
>CGモードで
すみません。それはできません。
CGギャラリーは単純な2D画面を表示するためだけのものなので、それ以上複雑なことはできません。


>Unityのタイムラインを使って作られたCGのアニメーション
基本的にはタイムラインには対応していないです。
特に、すでに「宴」のコマンドで表示してある複数のオブジェクト(キャラクターと背景など)を、まとめてタイムラインで操作する・・・といったことは難しいと思います。
(できなくはないのと思うのですが、タイムライン側にバインド処理が必要になるはずです)

1つのタイムラインで扱うオブジェクトを1つのプレハブとして扱えるのであれば、先にそのプレハブを表示すれば可能かと思います。
試したことがないので、どうなるかわからないですが、おそらく独自の表示形式を作って表示する形になると思います。
外部アセット表示の対応方法 例:Spine https://madnesslabo.net/utage/?page_id=10144

他に、これらの形式でプレハブを表示するということでも可能かもしれません。
参考「Overrideしたコンポーネントを使ったプレハブを利用する場合」 https://madnesslabo.net/utage/?page_id=11689#2_Override

あとはそのオブジェクトに対して、タイムラインの操作をするコマンドを作ってそれを呼び出す形になります。
タイムラインアニメーションを操作する拡張プログラムを書いて、SendMessageByNameコマンドを使うか、カスタムコマンドを使って呼び出す形になります。

タイムライン用のオブジェクトが少なく、常にロード済みでもメモリ負荷などに問題がないのであれば
シーン内のあらかじめそのオブジェクトを作っておいて、それを操作するプログラム(表示をオンオフしたり、アニメーションを切り替える拡張プログラム)を、SendMessageコマンドを使うか、カスタムコマンドを使って呼び出すほうが楽かもしれません。

>こちらもCGモードでも表示させたいのですが、可能でしょうか?
すみません。ドキュメントにある通り、FileTypeを変えてしまうとそもそも表示できません。
>>ただし、CGギャラリーの表示UIは単純な2D画面などを表示するものなので、FileTypeがデフォルト(未記入または2D)かDicing以外の場合は対応していません。

2025年8月9日土曜日 0:48:26 UTC+9 MM:

MM

unread,
Aug 11, 2025, 8:36:17 AMAug 11
to 宴ユーザーグループ
ご回答ありがとうございます。

試しにタイムラインで作成したものをプレハブ化して、 https://madnesslabo.net/utage/?page_id=8864こちらの方法で表示を試してみたのですが、
列:Type は存在しないかデータが空です。
というエラーが出て表示されませんでした。

textureに登録してシナリオExcel内で使うだけでは、ダメということでしょうか?
プログラムがまったくできない状態のため、いまいちよく理解しておらず……再度教えてご回答いただけますと幸いです。
2025年8月9日土曜日 12:46:01 UTC+9 マッドネスラボ:

MM

unread,
Aug 11, 2025, 8:50:07 AMAug 11
to 宴ユーザーグループ
申し訳ありません、こちらのエラーは初歩的なミスでtypeを設定し忘れておりました。
ただ、BgやEventで設定するとnot contained in file settingのエラーが出てきます。
こちらの方法でプレハブをtextureに設定して表示する場合、typeはどのように設定すればいいのでしょうか?
sampleがcharacterシートでのものでしたので、textureの場合もご教授いただけますと助かります。

よろしくお願いいたします。

2025年8月11日月曜日 21:36:17 UTC+9 MM:

マッドネスラボ

unread,
Aug 12, 2025, 4:07:23 AMAug 12
to 宴ユーザーグループ
「~~not contained in file setting」は、単純にファイル設定シート内にその名前がないという意味のエラーです。
おそらくプレハブ等の設定は問題なく、Labelに設定した名前と、BGコマンドやSpriteコマンドで指定している名前がスぺルミスなどで間違っているだけかと思います。

2Dプレハブの指定は下記のように、FileTypeを2DPrefabとしするだけです。
Label、Typeの設定、FileNameは他と同じように設定してください。
ss_1047.png



2025年8月11日月曜日 21:50:07 UTC+9 MM:

MM

unread,
Aug 12, 2025, 10:07:52 AMAug 12
to 宴ユーザーグループ
こちらについてもご回答いただき、ありがとうございます。

一点確認のため質問させていただきたいのですが、こちらのリファレンスにあります

・プレハブを通常のテクスチャと同じように、プロジェクト名/Resouces/プロジェクト名/以下に置く
・プレハブに関連するテクスチャやマテリアルは、Resouces以下に置かない

こちらについて、.prefabのデータのみResouces以下に置く(Bg扱いならBgに)、プレハブを作るにあたって使用した他の素材(.animや.controllerなど)はResoucesではないどこかへ置いておく、という認識でよろしかったでしょうか?

2025年8月12日火曜日 17:07:23 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 12, 2025, 10:35:47 AMAug 12
to 宴ユーザーグループ

はい。そうなります。


2025年8月12日火曜日 23:07:52 UTC+9 MM:

MM

unread,
Aug 12, 2025, 11:06:33 PMAug 12
to 宴ユーザーグループ
ありがとうございます!

もう一点、新たにお尋ねしたいのですが、2Dプレハブのスケールは何か特別に設定する必要はありますでしょうか?
ゲーム画面サイズに合わせた大きさの2Dプレハブアニメーションを作って表示させたところ、かなり拡大して表示されてしまいました。
特にExcel上でサイズを縮小させる必要のない大きさに作ってあるはずなのですが、何故拡大されているのか不明で詰まっております。

何度も恐縮ですが、再度ご助言いただけますと助かります。
どうぞよろしくお願いいたします。

2025年8月12日火曜日 23:35:47 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 13, 2025, 7:15:40 AMAug 13
to 宴ユーザーグループ
基本的には2Dプレハブのスケールが1であれば、そのプレハブが使用している画像の1ピクセルが、宴の通常の画像の1ピクセルと大きさが合うように補正をかけています。

なので、この設定がそれと違っているのだと思います。
>ゲーム画面サイズに合わせた大きさ
オブジェクトが実際に画面上にどう表示されるかは、それを映すカメラとオブジェクトの設定によるので(Sceneビュー上とGameビュー上でも違います)
パターンが多すぎてちょっと私からは予測できず、具体的にどうすべきはなんともいえないです。
3D空間上に直接置いたほうがやりやすいかもしません。(特に下手にCanvasオブジェクト以下などに置くと、Canvasの設定次第で実際に表示される大きさが変わります)


この辺ちょっと説明が難しいのですが
UGUIのオブジェクトは基本的にはxyzの一単位が1ピクセルなのですが、それはUIのみの話で
3D空間上で2Dスプライトを扱う場合は1ピクセルはxyzの一単位での1/100になっています。

これを合わせるために、基本的にはUGUIのキャンバスには自動的にスケール値がかかっています。
宴の場合は、そのスケール値は基本的には1/100です。
2Dスプライトや3Dモデルを表示する場合は、いったんそのプレハブインスタンスの親に100倍のスケール値がかかるようなオブジェクトを置いて、補正をかけています。
(結果的に3D空間上は1倍で表示される)

UnityのデフォルトのCanvasの場合はスケール値が1/100とは限らないため、(カメラの設定によって実際に描画される大きさが変わるため)
そのCanvas以下に作ったオブジェクトは、大きさがさらにずれる可能性があります。

なので、基本的には宴のCanvas以下か、3D空間上(つまりUnityのデフォルトのキャンバス以下ではない)にプレハブを作ったほうが作りやすいかと思います。


2025年8月13日水曜日 12:06:33 UTC+9 MM:

マッドネスラボ

unread,
Aug 13, 2025, 7:25:59 AMAug 13
to 宴ユーザーグループ
また、上記はあくまで2Dプレハブを表示する場合の話です。

> Unityのタイムラインを使って作られたCGのアニメーションやエフェクトを宴で表示させる際、
本来の目的のタイムラインは、基本的には宴ではサポートしていないため、
「宴にいくつかあるプレハブ形式のオブジェクトを表示させる方法」を利用すれば可能かもしれないというだけで、
その後のタイムライン拡張などは自力で行う必要があります。
( 2Dプレハブ  を使うのであれば、タイムラインではなくAnimatorのほうが楽かもしれません)

2Dプレハブが目的のタイムライン機能と噛みあっているのかなどの設計の検証や、タイムライン拡張そのものに関しては、プロジェクト固有の実装になるためサポートできませんのでご了承ください。


2025年8月13日水曜日 20:15:40 UTC+9 マッドネスラボ:

MM

unread,
Aug 13, 2025, 11:54:16 AMAug 13
to 宴ユーザーグループ
ご回答ありがとうございます!
ご助言いただいた内容を参考にして、

アニメーションはAnimatorで制作
プレハブはリソース階下
使用している画像、clip、controllerリソース以外に配置
エクセルでスケールを0.01

で設定したところ、巨大化せずに無事表示されました。
この方法でやっていきたいと思っておりますが、単純にスケールを0.01にして表示する方法で何か問題などはありませんでしょうか?

いまいち理解しきれていないところもありますため、もしこれが非推奨でしたらご指摘いただけますと助かります。

よろしくお願いいたします。

2025年8月13日水曜日 20:25:59 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 13, 2025, 12:12:44 PMAug 13
to 宴ユーザーグループ
一応それでもいいのですが、
エクセルやプレハブのスケール値を1のまま作りたい場合は、プレハブを調整するシーン上の場所の設定を次のように調整してください。

2Dプレハブを、シーンの直下の3D空間(Cavas以下ではない場所)に置いて作成する場合
・プレハブのスケール値1
・エクセルのスケール値1
・画像のように、描画順の設定(Layer設定やSoritngOrderをほかのUIの手前に来るようにする)
ss_1051.png


2Dプレハブを、宴のCavas以下に置いて作成する場合は、次のようにしてください。
・プレハブの親に、スケール値100のダミーの親オブジェクトを置く
・プレハブの設定は上記と同じ(プレハブ、エクセルのスケール値1で、Layer設定やSoritngOrderをほかのUIの手前に来るようにする)
ss_1052.png


この設定であれば、宴のゲーム画面上の見た目と同じ縮尺で画面に表示されると思います。


2025年8月14日木曜日 0:54:16 UTC+9 MM:

MM

unread,
Aug 14, 2025, 5:15:58 AMAug 14
to 宴ユーザーグループ
ありがとうございます!
お教えいただいた内容で、再度見直しをしてみます。
いつも本当に助かっております……ありがとうございます。

それから、新たな質問があったのですが、なぜか新しい会話で投稿すると削除されてしまい投稿できなかったため、こちらで続けることをお許しください。
(別のスレッドを作るべきであるところ、本当に申し訳ありません)

CG回想とシーン回想について質問です。

双方の箇所が同じであるため、シーン回想を利用してCGとシーン回想を一緒にしようと考えております。

やりたいこととしては、

シーン回想上に並べられたサムネイルをクリック→CGのみが表示される→CG上にある回想再生ボタンを押すと、回想用に作成したシナリオエクセルに飛ぶ→回想シナリオが終了したら、ギャラリーのシーン回想に戻る

となります。

(なおCG回想はシーン回想中か否かを判別するフラグを使って、回想中ならゲーム本編内でCGのみが表示される箇所に飛ぶようにしてあります。回想用シナリオを作成した理由は、CG回想を優先してCGが表示される箇所に回想開始のタグを設定すると、テキストの内容が中途半端な場所から再生されてしまうからです)

Unity上で回想用シナリオに飛ぶボタンは作成して、CG回想上に表示するまでは完成しましたが、回想用シナリオからギャラリーに戻る処理で詰まっております。

ゲーム画面からギャラリーに飛ぶ処理が欲しい

過去のこちらの質問を見て、ゲーム画面からギャラリーに戻るには、シナリオ強制終了されるゆえの不具合があるとのことでしたが、今回はCGの表示→回想用シナリオ再生であるため、前のシナリオを再開する必要もなく、また強制終了されても特に支障はないと考えております。

もし他の不具合がないのであれば、ゲーム画面からギャラリーのシーン回想に戻る処理をしたいのですが、どのように実装すればいいか、ご助言いただけましたら助かります。

何度もお手を煩わせて、本当に申し訳ないです……。
どうぞよろしくお願いいたします。

2025年8月14日木曜日 1:12:44 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 14, 2025, 5:54:27 AMAug 14
to 宴ユーザーグループ
>回想用シナリオからギャラリーに戻る処理で詰まっております
現状だとどうなるのでしょうか?

シナリオが終了したとき、ゲーム画面からシーン回想に戻る処理は、通常は以下のコードで行っています。

Utage/Scripts/TemplateUI/UtageUguiMainGame.cs の209行目~
void Update() メソッド内の次の部分です。

if (Engine.IsEndScenario)
{
Close();
if (Engine.IsSceneGallery)
{
//回想シーン終了したのでギャラリーに
gallery.Open();
}
else
{
//シナリオ終了したのでタイトルへ
title.Open(this);
}
}

シーン回想用のシナリオが終了した際に、IsEndScenarioがtrueになります。
なので、終わらせたつもりがIsEndScenarioがtrueになってない場合は、終了処理を見直してください。

シナリオが終わるものの、タイトルに飛んでしまう場合は、シーン回想としてシナリオが再生されていません。
>回想再生ボタンを押すと、回想用に作成したシナリオエクセルに飛ぶ
この処理をどう行っているか次第ですが、
Engine.StartGameなどで行っていると、シーン回想としてではなく通常のシナリオとして再生されてしまうので、
Engine.StartSceneGallery を利用してください。
(ただ、すでにシーン回想中にさらにStartSceneGalleryを呼ぶことは想定してなかったので、何かしら想定外のことがあるかもしれませんが、中で行っていることはフラグ処理くらいなのでたぶん大丈夫だと思います)


ギャラリー画面を開かられるものの、意図した画面にならないということであれば
ギャラリー画面を開く処理は上記の gallery.Open(); の部分です、
ギャラリーは選択タブをリセットしない限りは直前の選択タブ(つまりシーン回想のサムネイル選択画面)になっているので、それをそのまま開いています。
今回の用途であれば、そのまま開けばよいので、特に手を加える必要はないかと思いますが、なんらかの独自処理を行っているばあいは、それを復帰させるようにしてください。


2025年8月14日木曜日 18:15:58 UTC+9 MM:

MM

unread,
Aug 14, 2025, 7:34:00 AMAug 14
to 宴ユーザーグループ
お返事ありがとうございます。
(投稿できなかったものが、一気に投稿されていたのを一瞬ですが目撃しました。もし削除のお手間をおかけしておりましたら、大変申し訳ありません)

シーン回想に戻る処理ですが、まずそもそも回想用のシナリオからどのようにして戻ればいいのか?が、見当もつけられていないレベルの状態です。
プログラムは勉強し始めたばかりの超初心者ですので、プログラムをいじる必要があるのか、必要があるのならどのようにすればいいのかも、お恥ずかしながらわかっておりません。

ご回答いただいた内容ですが、単純にExcel上のParamタグでIsEndScenarioをTRUEにすればいい……というわけではなく、プログラムでやる必要があるということでしょうか?

2025年8月14日木曜日 18:54:27 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 14, 2025, 9:01:31 AMAug 14
to 宴ユーザーグループ
通常、 シーン回想を終わらせるのは EndSceneGallery コマンドを使用します。
参考: SceneGallery  https://madnesslabo.net/utage/?page_id=1718
    EndSceneGalleryコマンド   https://madnesslabo.net/utage/?page_id=1814

これは通常のシナリオ再生中は何も起きないコマンドですが、シーン回想中であれば使用した時点でシナリオが終了します。

シーン回想かどうかにかかわらず、シナリオを終了させる場合は、EndScenarioコマンドを使用してください。

また、各シナリオシートの最後の行までくると強制的にシナリオ終了になります。(それ以上シナリオがないので)

これらのシナリオ終了処理がされた場合に、
Engine.IsEndScenarioがtrueになります。


2025年8月14日木曜日 20:34:00 UTC+9 MM:

MM

unread,
Aug 14, 2025, 9:49:45 AMAug 14
to 宴ユーザーグループ
  お返事ありがとうございます。

EndSceneGalleryは本編シナリオ=シーン回想として登録している箇所、つまり今回の場合ですとCG回想代わりになるところには使用しております。
もし回想専用シナリオ再生ボタンを押さず、そのままCG回想のみで終われば、EndSceneGalleryが機能してギャラリーに戻ります。

ところが、再生ボタンを押して回想専用シナリオを再生した場合、シーン回想中と判断されないためか、元のCG回想部分へJumpで戻ってもEndSceneGalleryが作用せずにタイトル画面に戻っている状況です。
CG回想部分へ戻らず、回想専用シナリオを終了しても、仰る通りシナリオの続きがないので強制終了でタイトルに戻ります。

これをタイトルではなく、ギャラリーに戻るようにしたく考えております。

回想専用のシナリオは、ゲーム本編では再生されず、CG回想(シーン回想を使っている)で表示されるボタンのみから呼び出されるシナリオです。
宴のシーン回想は、ゲーム中にシーン回想箇所として登録した部分を通過されると、ギャラリー内に該当の回想が解放される仕組みになっていると認識しています。
なので、ゲーム本編では再生されない回想用シナリオはシーン回想に登録できず、したがってEndSceneGalleryコマンドを使うとエラーが出ました。

説明が下手で申し訳ありません。
まとめますと、シーン回想指定はしていない、通常のゲーム画面からギャラリーに飛ぶのはどういった方法をとればいいのか見当がつかないため、お教えいただきたく思っております。


2025年8月14日木曜日 22:01:31 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 14, 2025, 11:26:42 AMAug 14
to 宴ユーザーグループ
下記の方法は試しましたか?

> >回想再生ボタンを押すと、回想用に作成したシナリオエクセルに飛ぶ
> この処理をどう行っているか次第ですが、
> Engine.StartGameなどで行っていると、シーン回想としてではなく通常のシナリオとして再生されてしまうので、
> Engine.StartSceneGallery を利用してください。



2025年8月14日木曜日 22:49:45 UTC+9 MM:

マッドネスラボ

unread,
Aug 14, 2025, 11:39:44 AMAug 14
to 宴ユーザーグループ
AdvEngineのStartSceneGalleryだと、一瞬ゲームが終了扱いになって、強制的にタイトルにもどされてしまうかもしれません。

うまくいかないようであれば、
AdvEngineのClearOnEnd()を呼んだ後に、
AdvEngineのJumpScenarioを 呼んでみてください。


2025年8月15日金曜日 0:26:42 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Aug 14, 2025, 11:56:52 AMAug 14
to 宴ユーザーグループ
プグラム内でのシーンギャラリー中かどうかのフラグは以下で設定可能です。
AdvEngine  の GalleryController.StartGame(true);

ただ、基本的にはイレギュラーな処理をする場合は、
現状どう実装していて、その結果現状どうなっているかがわからないと、
推測で問題の原因を答えることになってしまうので、かえって混乱させてしまうかもしれません。

イレギュラーな処理に問題回避のためのさらにイレギュラーな処理を重ねてしまうことになって、
しかもそれが本来必要ない処理だったりすると、いよいよ何が原因で問題がおきてるかわからなくなってしまうので
まずは、現状どう実装していて、その結果何が起きてるかなどを一度整理してみてください。



2025年8月15日金曜日 0:39:44 UTC+9 マッドネスラボ:

MM

unread,
Aug 14, 2025, 1:11:59 PMAug 14
to 宴ユーザーグループ
ご回答ありがとうございます。
StartSceneGalleryで設定して試したところ、回想用シナリオからギャラリーに戻ることができました!(すみません、先のご回答を見落としておりました)
ありがとうございます!

色々と試してみましたところ、回想用シナリオをEndSceneGalleryで終わらせると、回想に登録していないのにEndSceneGalleryが使われている旨のエラーが出て、上手くいきませんでした。
なのでEndSceneGalleryは使用せず、EndScenarioタグで締めるか、シナリオの続きがない強制終了状態で終わらせるとギャラリーに戻りました。
(なおJumpでCG回想のほうへ戻ることもできました)

ちなみにボタンは↓のように実装してあります。
(SceneButtonUIをかませてあるのは、以前ご教授いただいたボタン表示非表示をフラグ管理するためです)
test3が試験的に作成した、シナリオ回想専用のエクセルシートです。

1.jpg

2.jpg

処理は

ゲーム本編中、回想登録しているシナリオラベル以下にCG(とその差分)のみ表示される分岐を作る
scene_galleryがtrueであればその分岐にJumpタグで飛ばす

という方法で、回想中だとCGのみが表示されるようにしてあります。

この回想中CGの上に上記のボタンを表示させて、

クリックすれば指定の回想専用シナリオシートに飛ばす
フラグを使って、それぞれのCGに該当する目的の回想シナリオを再生
回想が終わるとEndScenario(あるいは強制終了)でギャラリー戻る

このようにしてあります。

イレギュラーな処理とのことですので、何か他にトラブルが発生する可能性も頭に入れてやっていくつもりですが、もしこの時点で何かよくない設定などをしておりましたら、ご指摘いただけますと助かります。

長くお時間を取らせてしまい、申し訳ありません。
よろしくお願いいたします。


2025年8月15日金曜日 0:56:52 UTC+9 マッドネスラボ:
Message has been deleted

マッドネスラボ

unread,
Aug 14, 2025, 5:43:38 PMAug 14
to 宴ユーザーグループ
たぶん、問題ないかと思います。
EndSceneGalleryのエラーは一応無視しても動くことは動くとは思いますが、
EndScenarioコマンドで問題ないようであれば、そちらを使ってください。

2025年8月15日金曜日 2:11:59 UTC+9 MM:

MM

unread,
Aug 16, 2025, 9:38:33 AMAug 16
to 宴ユーザーグループ
ありがとうございます!
助けていただけたおかげで、目的のギャラリーが実装できそうです。

とても助かりました。
いつも手厚いサポートをありがとうございます。
2025年8月15日金曜日 6:43:38 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages