発言者名をArg1から独立させることは可能でしょうか?

24 views
Skip to first unread message

鉱油

unread,
Dec 29, 2025, 9:49:16 AM (3 days ago) 12/29/25
to 宴ユーザーグループ
こんにちは。いつも宴にお世話になっております。

シナリオを記述するエクセル構成についてですが、発言者名をArg1から独立させることは可能でしょうか?
理由として、宴でシナリオを記述する際、以下の点を不便に感じているためです。

デフォルトの構成
発言者名(Arg1)とTextの配置が遠いため、シナリオを書く際、列のセル移動が大変

Textを発言者の右隣に移動した場合
セリフと発言者は書きやすくなるが、演出指定のコマンドの引数が一列空き、離れてしまうため、確認と記述がしづらい

Arg1をTextの左隣移動させた場合
演出コマンドの引数の順序が入れ替わるため記述がしづらくなってしまう


理想としては
Command, Arg1,Arg2,Arg3,Arg4,Arg5,Arg6,コメント注釈,Voice,発言者名,Text

といった構成にできれば大変制作が捗ります。
発言者名とArg1が独立できた場合、上記の問題点の改善に加えて、
キャラクターボイス発注時の台本制作の際、Command~Arg6の列を削除するだけで台本が完成するため、やはり便利だと感じています。

マッドネスラボ

unread,
Dec 29, 2025, 12:43:07 PM (3 days ago) 12/29/25
to 宴ユーザーグループ
現状だとカスタムコマンド等でもその拡張はできません。
ソースコードを書き変えるしかないので、私の方でアップデートで対応するしかないです。

互換性のために、旧来のやり方はそのまま使えるように保ちつつ、
プロジェクト設定等から、「発言者名列」(仮)を選べるオプションを追加する形になるかと思います。

書き方としてはすっきりすると思うので、追加機能としてやってみたくはあるのですが、
どうせやるなら、こうしたほうがいい的な意見もあるかもしれないので、
Discordのユーザーコミュニティでも意見を聞いてみて検討しようかと思います。


細かい点をつめていくと・・・

表示パターンやレイヤー名の指定
これは従来通りArg2~でよいでしょうか?
特にArg2の表示パターンは発言者名と離れてしまうかもしれません。

・「キャラクターシートで設定した名前と違う名前を表示する」という場合
現在は、Arg2(本来はキャラクターの表示パターンの指定)に、追加のタグを設定するけっこう強引な形になっています。
これは、発言者名列に名前テキスト、Arg1にキャラクターラベルを指定という形したほうがわかりやすくなるかと思います。
それとも、あくまでキャラクターラベルのほうに固定したほうがいいでしょうか?

今のところ、やるのであればこんな形になるかと思います。(Speaker=発言者名)
ss_1355.png

・別件:シナリオラベル列も追加する?
(今回の件とはまた別なのですが、拡張するなら同じ時期に一度にやったほうがよさそうなことで)
シナリオラベルは現状Command列に書くようになっているのですが、
「ScenarioLabel 列」を追加して独立させるというのもありかなと思っていますがどうでしょうか。
(どこからシナリオラベルで区切られているかわかりやすくなるので、そういう拡張をしているユーザー様もいるようです)

やるとすれば、こんな感じになります。
ss_1359.png


2025年12月29日月曜日 23:49:16 UTC+9 鉱油:

マッドネスラボ

unread,
Dec 29, 2025, 4:29:38 PM (3 days ago) 12/29/25
to 宴ユーザーグループ
追記:
> 現状だとカスタムコマンド等でもその拡張はできません。
と書いてしまいしたが、マクロを使えば可能です。
https://madnesslabo.net/utage/?page_id=2984

・Speaker列を追加
・マクロを追加して、%Speaker をArg2に設定。その他の列は全てそのまま同じ列に設定するように作る。
・セリフ表示を全て上記で作成したマクロを使って行う
という流れです。

全てのセリフでマクロを使わないといけないという制限はありますが、一応これで対応可能になるかと思います。

2025年12月30日火曜日 2:43:07 UTC+9 マッドネスラボ:

鉱油

unread,
Dec 30, 2025, 10:13:15 AM (2 days ago) 12/30/25
to 宴ユーザーグループ

ご回答ありがとうございます。
現時点では拡張実装が難しい旨、承知しました。
頂いたマクロ案で実装できるか試してみますね。
また、アップデートのご検討もありがたく思います

◆Speaker列について
頂いた仮画像と概ね同じイメージです。
ただ、どちらかと言えば、キャラクターの立ち絵指定とテキストウィンドウの発言者名指定を切り離し、
Speakerは名前欄指定だけの用途としてイメージしておりました。

この場合のメリットデメリットとして、
キャラオフセリフは<Off>指定が省略できたり、立ち絵と違う発言者名を出す場合は発言者名を変えれば良いだけなので楽になりますが、
今まで発言者名(兼立ち絵指定)だけで済んでいた箇所が厳密に発言者名+立ち絵指定が必要になる点は生じます
発言者名を後から一括変更などの機能を維持する面では、単純な発言者名ではなく、ご提示のようにキャラクター名をキーとした指定のほうが良いかもしれませんね。

また、表情指定等のArg2が遠いのはやはり気になるところですね…。
これはエクセルでコマンドの引数を別セルに書く、という根っこの設計上避けられないところではあるのですが、
個人的には宴に少し不便に感じているところなので後述します。


◆シナリオラベル独立について
私は現在のところセルの色分けで視認性を確保してCommandで運用しています。
発言者セル独立のご相談と矛盾する意見で恐縮ですが、エクセルの構造上、データ列が増えるほど扱いが難しくなる(視認性の低下、セル移動の手間)
と感じているので、どちらかといえば実装するとしてもオン・オフできるオプションだとありがたいかなという印象です。


◆Argセル形式に不便に感じているところ

一人開発者の視点ですが、今回発言者セル独立の方法をご相談した背景には
 ・シナリオ執筆、演出スクリプト指定の際、セル移動/記述セル判別の手間を減らしたい
と感じることが多いです。

例えばWait命令で間を置く演出を挟むとして、Textでシナリオ執筆していた箇所からデフォルト配置だと、
・Commandまで8セル移動して記述
・Wait時間指定まで6セル移動して記述(Wait時間指定がArg6であることを確認)
・Text,ないしキャラ指定のArg1に移動
という工程が挟まるため、シナリオを執筆しながら直感的に演出指定を書いていくのがなかなか大変だったりします。

うた子@笑い,左レイヤー,200,100,0.5
うた子@Layer:左レイヤー,fade:0.5
Wait@1.2

これはあくまで勝手な考えでしかないのですが、1セルにキャラ指定とパターンやフェード指定などの引数を書けたら良いなと思うことが時々あります。
上述の通り、データ列が増え、セル移動が増えるほど直感的なシナリオ執筆&演出指定が難しくなるため、

[コマンド&引数] / [voice] / [発言者] / [セリフor地の文text]  あるいは、
[コマンド] / [引数] / [voice] / [発言者] / [セリフor地の文text]
ぐらいのセル数がシナリオを書きやすいと感じます。

すみません。ここまで来ると追加機能のレベルではなくなってくるし、互換性維持の問題等も出てきますよね。
話半分に聞いて頂ければと思います。

余談ではありますが、自作のゲームへのADVパート導入に宴かNaniNovelをどちらを使用するか、
決め手になったのはボイス依頼時の台本作りや、ローカライズのやりやすさでした。
Argセルの多さは自分にはやや扱いづらいですが、列を削除することで台本を作ったり、
日本語テキストを見ながら別列に直接英訳を記述することでローカライズ版が作りやすいといったエクセル形式だからこそのメリットがあると見ています


また、私は自前のアクションRPGをベースに制作しているため、宴を会話シーン機能として使用しつつ、独自のSendMessageで表情差分を切り替える実装が多いなど、
ADVメインの使い勝手とはまた違った視点の一つの意見となることにご留意ください。
追加機能や改修の方向性を決定する際は、幅広いユーザーさんの意見を元に決めるのが良いと思います。


誠勝手な意見となってしまい恐縮です。
ご参考頂ければ幸いです。


2025年12月30日火曜日 6:29:38 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Dec 30, 2025, 3:22:42 PM (2 days ago) 12/30/25
to 宴ユーザーグループ
詳細なご意見ありがとうございます。

>◆Speaker列について
>今まで発言者名(兼立ち絵指定)だけで済んでいた箇所が厳密に発言者名+立ち絵指定が必要になる点は生じます
そうですね。そうなります。
宴の設計上、暗黙的に処理する部分を多くして、逆に厳密に指定したいという場合(一時的に名前を変えたい場合や、キャラは非表示で名前は指定したい場合など)は、少し面倒な書き方になるという形になっています。
これは結構根本的な部分なので、変えることはないと思います。
なので、その形に対応をしていくのはちょっと難しいです。
下手に両対応にしようと根本の部分をいじってしまうと、不具合を見落とした場合に既存のプロジェクトにも悪影響ができてしまうので、それは避けたいと思っています。

>◆シナリオラベル独立について
>どちらかといえば実装するとしてもオン・オフできるオプションだとありがたいかなという印象です。
はい。そのつもりです。互換性もありますので、これまでの形を変えることはしません。
変えたい人だけ変えることもできるとするつもりです。
ただ、特に需要がないようでしたら拡張もしません。


>◆Argセル形式に不便に感じているところ
>  [コマンド&引数] / [voice] / [発言者] / [セリフor地の文text]  あるいは、
>   [コマンド] / [引数] / [voice] / [発言者] / [セリフor地の文text]
>   ぐらいのセル数がシナリオを書きやすいと感じ
複数の引数を単純にカンマ区切りなどで設定するだけにするのはおそらく難しくて、
>うた子@Layer:左レイヤー,fade:0.5
のように、どの引数名をセットで指定する形になっていくかと思います。

一応列数を減らすために数をまとめるのは、Tweenコマンドでも行っていて、「引数名=値」という形にしています。
ただこれはやむを得ずやった面が強くて、むしろ書きづらいと思っていたのですが、むしろその面に偏ったほうが書きやすいという感じでしょうか。

Tweenコマンドはマクロを使って1引数=1列という形式にすることで、本来の宴っぽい書き方に落とし込むことも可能なのですが
これとは逆に、マクロ機能に「指定の列名の文字列を解析して、指定の名前のパラメーターの値を取得する」という文法を追加すれば
>うた子@Layer:左レイヤー,fade:0.5 のような書き方をマクロ内で自己解析して使用できるようになるかと思います。

たとえば、現在のマクロでは &Arg1のように、%列名としている部分を引数として使用しますが、
 &Arg1.Layerや、 &Arg1.fade のように、%列名.サブ引数名 という引数の取り方を可能にして
1列内の複数パラメーターを解析できるようにするといった感じです。

現在はその機能がありませんので、追加実装してからの話になります。
もっとも、この場合は既存の全コマンドを自作マクロで代替できるようにラップして、それ経由で呼び出す形になってしまいます。
また、最終的な書き方が、本来の書き方と大きく違う独自性の強い書き方になってしまうので、安定性やエラー対応などで不安点は結構残ってしまうかもしれません。

2025年12月31日水曜日 0:13:15 UTC+9 鉱油:
Reply all
Reply to author
Forward
0 new messages