ハウツー/SR分室について

Last-modified: 2024-03-18 (月) 23:46:08
 
 
 

はじめに

このページはSR分室を編集する上で必要となる知識をまとめています。

このページの目的は次のとおりです。

  • SR分室に曲を追加する方法をツクラーに説明する。
  • SR分室について必要な情報を開発者に共有する。
 

サウンドルームの基礎知識

SR分室とは

SR分室とは、ゆめ2っきに使用されている音楽をゲーム上でプレイヤーが聞くことができるシステムです。
ちなみに、「SR」という語はサウンドルーム (Sound Room) に由来します。

SRa_0.png

 

SR分室と旧SR

プレイヤーが音楽を聞くことができるシステムは、SR分室の他にも旧SRが存在します。

旧SRはSR分室の前身にあたり、更新が滞った旧SRに代わってSR分室が作られました。
そのため、バグ修正等を除き旧SRを編集する必要はありません。
また、旧SRに曲を追加するなどの編集は行わないでください。

SR分室旧SR
マップ名 MAP0620 310_SR分室MAP0006 旧サウンドルーム
 

SR分室と旧SRはいくつかの別名で呼ばれることもあります。

SR分室旧SR
通常のゲームプレイ中に表示される表記 サウンドルーム旧SR
半角英数字(ファイル名等)SR anotherSR
略称SRaSR

※SRaは「Sound Room another」の略

 
 

サウンドルームの歴史

 
日付出来事ver.スレ
2007/05/26ゆめ2っき制作開始1部屋目
2009/09/25サウンドルームに関する最初のレス4部屋目
2010/04/25旧SRの実装0.088c5部屋目
2012/12/05SRエンディング完成0.099b12部屋目
2013/08/23旧SRに最後の曲追加(No.258)0.100b12部屋目
2014/11/10SR分室制作の流れに13部屋目
2014/11/22「SR分室」という語が初登場13部屋目
2015/04/01SR分室の仮実装0.103a14部屋目
2016/09/11SR分室の本実装0.104h15部屋目
2016/12/04メモリーモード実装・SR分室から旧SRへ入室する処理になる0.105a15部屋目
2018/01/09裏SRエンディング完成・アルバムとSR分室の連動実装・代行ログ運用開始0.106a17部屋目
2018/08/11SR分室の更新を現実部屋PCで通知するようになる0.107a17部屋目
2021/03/12PC画面BGMにSR分室の曲を設定可能に・現実部屋PCでSR分室の解放率表示0.115f19部屋目
2021/08/01制作wikiにこのページが作られる19部屋目
 

2009年9月25日:サウンドルームに関する最初のレス

  • サウンドルームは未使用の音源も演奏できるものとして考案された
501 :20 ◆7Hq6S9uj/75d :2009/09/25(金) 23:02:13 ID:zjezR+S5
(中略)
>>qs0UrDFJ氏

qs0UrDFJ氏のBGMはバリエーション豊かで、自分のMAPでいくつか使わせてもらっています。
全部は容量の関係で搭載できない事が残念です。
いずれサウンドルームを作って、未使用の音源を全て再生できるパッチを作りたいと思っています。
一応マップチップらしきものは作ったんですがね(ロダの素材集の白い部屋、スピーカーが赤いハウスポッド)
ゆめにっきっぽいゲームを作るスレ 4部屋目
 

2010年4月25日:旧SRの実装

  • ここから6年と少しの間、旧SRが運用されていくことに
674 :20 ◆7Hq6S9uj/75d :2010/04/25(日) 17:33:33 ID:1jyYoyYt
ver0.088cうpしました。
とうとう3分割になってしまいました。

ロダの画像と音楽を沢山使いました。職人さんありあがとうございました。
繋ぎ部屋を2つ仮設置したのでどんどん活用してください。
ゆめにっきっぽいゲームを作るスレ 5部屋目
 

2012年12月5日:SRエンディング完成

  • SR解放率100%のちょっと手前で見れるエンディング
  • エンディング名との兼ね合いもあって発生条件は緩めたくない、とのこと
123 :ゆきひつじ ◆TLOtLTfBtY :2012/12/05(水) 23:59:57.05 ID:k4e77Tms
ゆめ2っきver0.099bアップしました http://yui.oopsup.com/yume2kkifileupNo3/
色々弄っているので、バグを発見されましたらご報告をお願いいたします
ゆめにっきっぽいゲームを作るスレ 12部屋目
 

2014年11月10日:SR分室制作の流れに

212 :名前は開発中のものです。:2014/11/10(月) 08:10:26.45 ID:Y2rN0Jkh
>>186
> 0109BGM5に関してですが、
>  [MAP0111 dedp 市街地]>[MAP0441 白い部屋]でピッチ別バージョン使われてました。(ど忘れ)
>  でもサウンドルームの条件は初期開放になってる…たと思います。到達判定も追加?

K氏じゃないけど
SRの開放条件は長らく編集されてない(やってた人が抜けた)
そんな曲は他にも結構ある

てか現時点で未登録曲って100曲ぐらいあるか?
もういっそ「使用箇所の分かってる曲」だけにした新SRでも作ったらいんじゃね
旧はデバッグルームにでも残して、プレイヤー向けは新だけにする
「SRにない=どこにも使われてない曲」って図式成立させた方が、後の管理も楽だろ
ゆめにっきっぽいゲームを作るスレ 13部屋目

このレスからSR分室の必要性や実装方法についての発言がしばらく続きました。
その中で主に以下のような要求が挙がって、SR分室の制作が始まりました。

  • 管理を楽にするために、使用箇所の分かってる曲だけにしたい
  • 旧SRへの曲追加が滞っているので、新しい曲をサウンドルームで聞けるようにしたい
  • 曲追加の面倒を減らしたり曲番を整理しやすくするため、曲追加の編集箇所を1つにしたい
  • 曲情報のピクチャーを用意するのが面倒なので、文章の表示で代用したい
  • 演出をつけるのが面倒なので、簡素な演出だけにしたい
  • どの曲が解放されているのか分かりやすいように、曲一覧(★リスト)を表示したい

まとめると、演出・曲情報・未使用音源を省いて、曲追加・システム管理を楽にしたい、という動機です。
背景には、旧SRの編集が面倒で、さらに管理に積極的だった方が制作から離れてしまったことがありました。
そのため、曲の追加が滞ったり、解放条件がおかしなものになったり、旧SRの運用は上手く続きませんでした。
そういった失敗を踏まえて、SR分室は編集や管理が簡単に行えることに主眼を置いて制作されていきました。

最終的にSR分室は上記の要求を全て満たして実装され、今日まで運用が続けられてきました。

 

2016年8月28日:SR分室をメインとすることが確認される

  • ただし、旧SRはプレイヤーにも見れる形で残すことに
660 :12部屋目の310:2016/08/28(日) 15:32:59.00 ID:tlT2qQW8
途中経過見に来た レスくれた人ありがとな

実装の希望は少なからずあるってことで現状把握させてもらった
回答期限までに反対意見がなければ走者宣言するつもりだ
Ver.Upになるんでデータベース絡みでツクり溜めてる人がいれば、先に走ってもらって構わない

走った場合 K氏の提案に乗っからしてもらって
1回目の更新で分室本実装、2回目以降の更新で曲目調整していく予定

あと分室メインでも構わないが、現行のSRは通常プレイヤも見れるように残させてほしい
俺は現行のSRが好きだし、現行のSRがあったからこそ分室をツクろうと思えたんだ
自分本意で悪いが俺の手では消したくない

最終判断は他製作者に任せるが、一旦はクリア後鍵部屋から現行のSRに行けるようにするつもりだ
これも意見等あればレスしてくれ 考慮してみる
ゆめにっきっぽいゲームを作るスレ 15部屋目

※現在は主にSR分室のメニューから旧SRへ行ける仕様となっています。

 

2016年9月11日:SR分室の本実装

  • 仮実装を経て、SR分室の本実装へ
  • ここから現在までSR分室が運用されていくことに
673 :12部屋目の310:2016/09/11(日) 23:37:55.31 ID:IHmEc+Ja
宣言した期限ギリギリですまん

ゆめ2っきver0.104h 更新版アップロード完了した
 ↓
ttp://ux.getuploader.com/yume2kki07/

動作が不安定なところはバッサリ切り捨てて実装したが
デバッグ不足で不具合出そうな気がしてならん

しばらくは定期的にスレ見に来るから
不具合あったら報告頼む
ゆめにっきっぽいゲームを作るスレ 15部屋目
 

2021年8月1日:制作wikiにこのページが作られる

752 :qxy ◆TnRajQU.Lw:2021/08/01(日) 00:33:29.71 ID:RD4e9WCU
ver0.116i パッチ4上げました。DLは制作まとめWikiからお願いします。


ttps://wikiwiki.jp/yumenikki-g3/SR%E5%88%86%E5%AE%A4%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
制作wikiにサウンドルームの情報をまとめるページを作りました。
作成に協力してくれたwiki編集者の方々、ありがとうございました。

曲追加などの具体的な方法や仕様的に定義されてないけどこういう編集をしたほうがいい、というような情報も
思いつく限り文章化して残しておきました。

サウンドルームの全体的な制御を編集するときは、目を通してください。
また、そういった編集によってページの内容が古くなった場合は、ページの内容も編集するようにお願いします。
ゆめにっきっぽいゲームを作るスレ 19部屋目

過去に一度だけ、演出を複雑にするため曲追加に必要な編集箇所を増やす改変が行われました。
(その改変は後に撤回されました)
旧SRと同じ失敗を繰り返さないためにも、
どういう要求からSR分室が制作されたのかを明らかにする必要性から、このページが作成されました。

 
 

SR分室について

ゲームシステム中のSR分室の働き

  • ゆめ2っきに使用されている音楽をプレイヤーが聞くことができる機会を提供する。
  • SR分室で聞くことができる曲の総数やその変動を現実部屋PCでプレイヤーに通知する。
  • アルバムとPC画面BGM No.6,7,8のBGMを演奏する。
  • 旧SRへ移行する。
  • SRエンディング・裏SRエンディングへ移行する。
     

SR分室の主な構成要素

  • MAP0620 310_SR分室
  • MAP0002 現実部屋 (主にEVID:0002とEVID:0006)
  • コモンイベント0269:【☆】SR分室呼出
  • コモンイベント0271:【☆】壁紙SRaチェック

SR分室に曲を追加するなど、大抵の場合はこのMAP0620だけを編集します。
MAP0620は共有部屋で、誰でも編集できます。

map620.png

 

曲目リストについて

ほとんどの場合、SR分室の編集は曲目リストを編集することと同義です。
システムの重要な概念である曲目リストについてここで説明します。

曲目リスト
曲目リストとは、曲目を集めて曲目番号順に並べたもののことで、MAP0620のEVID:0002のことです。
MAP0620のEVID:0002は以下のようなページから構成されます。
  • 曲目を集めたページ
  • 終端のページ
     
    「曲目を集めたページ」は一番大きなページ番号のページ以外のページにあたります。
    各ページには最大25個の曲目を曲目番号順に並べます。
    例外として、曲目番号-1番と0番はページ番号1番の先頭に並べます。
     
    「終端のページ」は一番大きなページ番号のページにあたります。
    曲目リストの終端としての働きのほか、編集用のテンプレートも扱っています。
    そのため、イベント実行内容の先頭は◆イベント処理の中断でなければなりません。
曲目
曲目とは、曲を集めて演出番号順に並べたもののことです。
演奏する音声ファイルのファイル名が同じ曲、あるいは、
オリジナルとアレンジの関係になっている曲を集めることが慣例となっています。
曲の削除などによって曲を含まなくなった曲目(空っぽの曲目)も稀にあります。
曲とは、SR分室で演奏される音楽やそれを取り巻くデータをひとまとめにしたものです。
曲は以下のような要素から構成されます。
曲を構成する要素イベントコマンドでの表現
番号曲目番号◆条件分岐:変数[0103:曲目番号/壁紙番号]が ?
演出番号◆条件分岐:変数[0105:演出番号]が ?
解放条件◆条件分岐:?
音声ファイルを演奏するための情報◆BGMの演奏:?
演奏する音声ファイルのファイル名◆主人公の名前変更:マップ到達の名前を ? に変更
演出◆遠景の変更, ◆ピクチャーの表示 などの様々なイベントコマンド
曲目番号
曲目番号とは、曲目に割り振られた個別の識別番号のことです。-1 から順に続く数で表されます。
曲の番号が「123A」なら "123" が曲目番号にあたります。
演出番号
演出番号とは、曲目の中の曲に割り振られた個別の識別番号のことです。A から順に続く英字で表されます。
曲の番号が「123A」なら "A" が演出番号にあたります。
曲目の中の曲が1つしかない場合、演出番号を省いて曲の番号を表すこともあります。
※ 曲目番号が 9999 を超える、または、演出番号が Z を超えると、
※ 曲を演奏するときに表示がくずれたり、SR分室の一部機能に支障をきたします。
解放条件
解放条件とは、SR分室で曲を演奏できるようになる条件のことです。
また、SR分室で曲を演奏できるようにすることを、「曲を解放する」というように表現します。
音声ファイルを演奏するための情報
イベントコマンド「◆BGMの演奏」のことです。
演奏する音声ファイルのファイル名
SR分室で曲を演奏しているとき、Shiftキーを入力すると表示される情報です。
演出
演出とは、SR分室で曲を演奏したときの見た目の装飾のことです。
 
 

SR分室の編集方法

曲を追加したいとき

曲を追加するときの方法は以下の2つがあります。

A:新しい曲目に曲を追加する
B:既存の曲目に曲を追加する
 
同じ音声ファイルを演奏する曲、または、オリジナルとアレンジの関係にある曲は、
同じ曲目に追加することが慣例となっています。
 
追加したい曲について、どちらの方法が望ましいかを判断して、
上記の方法の A か B のいずれかを選びます。
 
ただし、例外として曲目番号-1番、0番に曲を追加することはできません。
曲目番号-1番、0番が曲を切り替えての演奏ができない仕様となっているためです。

オリジナルとアレンジの関係にある曲の例として、曲目番号1番が分かりやすいかもしれません。
タイトル画面BGMとしておなじみの「ym2-00_ano deskwork」
それと同じ旋律を用いた「qs0UrDFJ-title」
さらにその逆再生版の「qs0UrDFJ-title_Rv」
これらはファイル名が異なる音声ファイルですが、同じ曲目に登録されています。

それぞれの手順についてはリンク先を参照してください。

 

同じ音声ファイルを演奏する曲が既にSR分室に登録されているかどうかは、
以下のいずれかの方法で確認できます。


音声データの制作者がSR分室に登録しないでほしい旨を報告している場合があります。
その場合、その曲を追加することは控えたほうがいいかもしれません。
登録しないでほしい音声データの一覧は下記のリンク先から確認できます。


曲を追加したくてもSR分室の編集が難しかったり、時間がとれなくてできないような場合は、
他のツクラーに作業を代行してもらうこともできます。

スレ等でその旨を伝えるだけでも問題ないと思いますが、
"到達判定やSR登録の代行ログ(暫定).txt" に記載するとより確実です。

 
 

新しい曲目に曲を追加する

手順 1:新しい曲目のテンプレートをコピーします。

テンプレートを利用してヒューマンエラーを防ぎましょう。

  1. まず、MAP0620のEVID:0002(音符アイコンのイベント)を選んでイベントエディタを開きます。
  2. 次に、一番大きなページ番号のページに切り替えます。
  3. イベント実行内容の「曲追加用テンプレ」の下にある◆注釈◆条件分岐を選んでコピーします。

    newTrackTemplate_1.png
    ↑ この画像で選択しているコマンドがテンプレートです。

     

手順 2:これから追加する曲目の曲目番号が何番になるのかを調べます。

新しい曲目を追加するとき、好きな曲目番号を選んで追加することはできません。
曲目番号は必ず連番でなければならないため、この手順でしっかりと確認しましょう。

  1. まず、二番目に大きなページ番号のページに切り替えて、
    イベント実行内容の一番下の◆条件分岐:変数[0103:曲目番号/壁紙番号]が n (nは整数)を確認します。
    この n は「現在登録されている曲目の中で最大の曲目番号」になります。

    newTrackLastNumber.png
     ↑ 確認するコマンドの例

     
  2. よって、これから追加する曲目の曲目番号は n に 1 を加えた数だと分かります。
     

手順 3:テンプレートを貼り付けます。

EVID:0002の各ページには最大で25個の曲目を登録でき、それ以上は登録できません。
新しい曲目を追加するときはその制約に引っかからないかどうかを確認しましょう。

  1. まず、二番目に大きなページ番号のページに曲目がいくつあるかを数えます。
    曲目は◆条件分岐:変数[0103:曲目番号/壁紙番号]が??? とその中のコマンドを一括りにしたものを
    1個と見なして数えることができます。
    そのページに誤りがなければ、手順 2.の n を 25 で割った余りから曲目の個数を求めることができます。
    1. 曲目の個数が 25 より少ない場合、イベント実行内容の一番下にテンプレートを貼り付けます。
    2. そうでない場合、ページの新規作成を行います。
      そうしたら、新しいページのページ番号が二番目に大きなページ番号になっていることを確認して、
      イベント実行内容にテンプレートを貼り付けます。
      その後、イベント実行内容の一番上に下記の◆注釈を挿入します。
      ◆注釈:-----------------------------------------------------------
      :  :No.a-b
      :  :-----------------------------------------------------------
      ページ番号を c とすると、この a と b は次のような関係で表される数値となります。
      a = c × 25 - 24
      b = c × 25
      この◆注釈は「このページに登録できる曲目の曲目番号は a 以上 b 以下である」ことを
      制作者に明示するために必要となります。
       

手順 4:貼り付けたコマンドを編集します。

この手順で指定した箇所以外のところは編集しないようにしましょう。

   newTrackEdited_1.png
   ↑ 編集するところはここ

1. ◆注釈の数字を曲目番号に変更します。
2. ◆条件分岐:変数[0103:曲目番号/壁紙番号]が0 の条件の定数を曲目番号に変更します。
3. ◆条件分岐:マップ到達がID: 10を使用できる に当該の曲の解放条件を設定します。
  • 複数の◆条件分岐を組み合わせて条件を設定することも可能です。
    ただし、「当該の曲の解放条件」に当てはまらない場合、
    ◆変数の操作:[0106:未解放演出数]加算, 1 が実行されなかったり、
    複数回実行されたりすると、バグの原因になります(必ず1回だけ実行される必要があります)。
    手順 3.で貼り付けたコマンドの中に含まれているので、通常はそのままでOKですが、
    複数の◆条件分岐を組み合わせるときは注意してください。
     
  • 特殊技能の到達判定を条件に使う場合は下記のコマンドが必須です。
    ◆注釈:│ ▽SkillsMAP0000到達
    "0000" は適切なマップIDに編集します。
    マップIDが4桁未満の数の場合は数値の左側を "0" で埋めて4桁にします。
     
    このコマンドは手順 3.で貼り付けたコマンドの中に含まれているので、
    特殊技能の到達判定を条件に使わない場合はこの◆注釈を削除します。
     
    特殊技能によるフラグはRPGデバッガー200Xでも検索できないため、
    代わりにこの◆注釈の文章中の文字列を検索できるようにしてあります。
    管理上必須なので忘れずに編集してください。
     
  • 複雑な条件を設定したい場合、何らかの計算が必要になるかもしれませんが、
    便利スイッチ、便利変数、システム用の計算資源を計算に利用することはできません。
    また、計算に要する実行時間がSR分室の快適な遂行を妨げることになるので、
    可能なかぎり計算が必要になる条件は控えてください。
4. ◆BGMの演奏:ym2-00_ano deskwork を編集して、当該の曲を演奏するように設定します。

実際のマップやイベントで演奏されるBGMから以下のような調整を行うことが望ましいです。

  • フェードイン時間は「なし」に設定する。
  • ボリュームは大きすぎないように調整する。
    タイトル画面のBGM(.wavバージョン)を基準に調整すると良いと思います。

これらの調整を行うことで、曲の切り替わりが自然になったり、
ランダムな演奏でプレイヤーがびっくりするのを防げたりします。

5. ◆主人公の名前変更:マップ到達の名前をファイル名に変更 を編集して、ファイル名を設定します。
  • ◆主人公の名前変更 の[新しい名前]に演奏する音声ファイルのファイル名を入力します。
  • ファイル名の文字数が多すぎて入力欄に入らない場合、◆主人公の名前変更を新たに挿入して、
    「デフォルト1」「デフォルト2」「女の子」の名前を変更することで超過した文字を補えます。

    例えば、

    ◆主人公の名前変更:マップ到達の名前をaに変更
    ◆主人公の名前変更:デフォルト1の名前をbに変更
    ◆主人公の名前変更:デフォルト2の名前をcに変更
    ◆主人公の名前変更:女の子の名前をdに変更
    …というコマンドを用意すると "abcd" というファイル名をゲームプレイ中に表示します。
    この方法を使うと最大で半角48文字のファイル名を設定できます。

    他の方法として、TkoolBridge等を使用して文字数の制限なく設定することもできます。

    ただし、SR分室ではファイル名を半角39文字までしか表示しないため、
    それを超える文字数のファイル名を設定してもゲームの動作上は意味がありません。

    ファイル名が40文字以上の場合は、
    そのファイル名の先頭から39文字までを表示するようにします。
    略称などを作って表示を短くする必要はありません。

    「プレイヤーがSR分室で聴いた曲をMusicフォルダのファイルから探せる」
    このことが、プレイヤーに対してファイル名を表示する利点の一つです。
    ファイルを特定できるように、正確なファイル名を表示するようにしましょう。

 

手順 5:正しく曲を追加できたかどうかをテストします。

  1. テストプレーを行い、主に以下の点を確認します。
    • デバッグアイテムを持った状態でSR分室に正しく入室できるかどうか
    • 追加した曲の解放条件を満たさない場合、その曲が正しく未解放になっているかどうか
    • 追加した曲の解放条件を満たす場合、その曲が正しく解放されているかどうか
    • 追加した曲を演奏したとき、演奏する音声ファイルに誤りがないかどうか
    • 追加した曲を演奏してShiftキーを押したとき、表示されるファイル名に誤りがないかどうか
    • 他の曲について意図しない変更が起きていないかどうか
  2. テストプレーの結果、なんらかの欠陥が見つかればデバッグします。
     

手順 6:これで完了です。新しい曲目に曲を追加することができました。

  • この手順では演出の設定方法は説明していません。
    演出の設定方法は 演出を設定したいとき を確認してください。
     
     

既存の曲目に曲を追加する

手順 1:新しい曲のテンプレートをコピーします。

テンプレートを利用してヒューマンエラーを防ぎましょう。

  1. まず、MAP0620のEVID:0002(音符アイコンのイベント)を選んでイベントエディタを開きます。
  2. 次に、一番大きなページ番号のページに切り替えます。
  3. イベント実行内容の「曲追加用テンプレ」の下にある
    ◆条件分岐:変数[0105:演出番号]が1 を選んでコピーします。
    newPatternTemplate_0.png
    ↑ この画像で選択しているコマンドがテンプレートです。
     

手順 2:テンプレートを貼り付けます。

曲目に曲を追加するとき、演出番号順に曲を登録しなければなりません。
誤った位置にテンプレートを貼り付けないように注意しましょう。

  1. まず、曲を追加する曲目があるページに切り替えます。
    ページ番号は以下の計算から求めることができます。
    ページ番号 = ( 曲目番号 - 1 ) ÷ 25 + 1
  2. 次に、イベント実行内容の中から
    ◆条件分岐:変数[0103:曲目番号/壁紙番号]が??? (??? は曲目番号)を探します。
    その中の◆条件分岐:うろつきの名前が【SRa変動チェック】 の上にテンプレートを貼り付けます。

    newPatternTemplate_paste_0.png
    ↑ 手順を踏むとこんな感じになります。緑色の個所が貼り付けたコマンドです。

     

手順 3:演出数を変更します。

演出数はその曲目に登録されている曲の総数を表します。

  1. テンプレートを貼り付けた曲目にある◆変数の操作:[0104:演出数]代入, ? を編集して
    オペランドの定数を 1 増やします。

    newPattern_patternCount.png
    ↑ 編集するコマンドの例です。

     

手順 4:貼り付けたコマンドを編集します。

この手順で指定した箇所以外のところは編集しないようにしましょう。

   newPatternEdited_0.png
   ↑ 編集するところはここ

1. ◆条件分岐:変数[0105:演出番号]が1 の条件の定数を演出番号に変更します。

演出番号は曲目の中の曲に A から順に割り振られる番号のことです。
ここでは A を 1、B を 2、…といった感じで、英字を数値に置き換えてコマンドに設定します。

2. ◆条件分岐:マップ到達がID: 10を使用できる に当該の曲の解放条件を設定します。
  • 複数の◆条件分岐を組み合わせて条件を設定することも可能です。
    ただし、「当該の曲の解放条件」に当てはまらない場合、
    ◆変数の操作:[0106:未解放演出数]加算, 1 が実行されなかったり、
    複数回実行されたりすると、バグの原因になります(必ず1回だけ実行される必要があります)。
    手順 2.で貼り付けたコマンドの中に含まれているので、通常はそのままでOKですが、
    複数の◆条件分岐を組み合わせるときは注意してください。
     
  • 特殊技能の到達判定を条件に使う場合は下記のコマンドが必須です。
    ◆注釈:│ ▽SkillsMAP0000到達
    "0000" は適切なマップIDに編集します。
    マップIDが4桁未満の数の場合は数値の左側を "0" で埋めて4桁にします。
     
    このコマンドは手順 2.で貼り付けたコマンドの中に含まれているので、
    特殊技能の到達判定を条件に使わない場合はこの◆注釈を削除します。
     
    特殊技能によるフラグはRPGデバッガー200Xでも検索できないため、
    代わりにこの◆注釈の文章中の文字列を検索できるようにしてあります。
    管理上必須なので忘れずに編集してください。
     
  • 複雑な条件を設定したい場合、何らかの計算が必要になるかもしれませんが、
    便利スイッチ、便利変数、システム用の計算資源を計算に利用することはできません。
    また、計算に要する実行時間がSR分室の快適な遂行を妨げることになるので、
    可能なかぎり計算が必要になる条件は控えてください。
3. ◆BGMの演奏:ym2-00_ano deskwork を編集して、当該の曲を演奏するように設定します。

実際のマップやイベントで演奏されるBGMから以下のような調整を行うことが望ましいです。

  • フェードイン時間は「なし」に設定する。
  • ボリュームは大きすぎないように調整する。
    タイトル画面のBGM(.wavバージョン)を基準に調整すると良いと思います。

これらの調整を行うことで、曲の切り替わりが自然になったり、
ランダムな演奏でプレイヤーがびっくりするのを防げたりします。

4. ◆主人公の名前変更:マップ到達の名前をファイル名に変更 を編集して、ファイル名を設定します。
  • ◆主人公の名前変更 の[新しい名前]に演奏する音声ファイルのファイル名を入力します。
  • ファイル名の文字数が多すぎて入力欄に入らない場合、◆主人公の名前変更を新たに挿入して、
    「デフォルト1」「デフォルト2」「女の子」の名前を変更することで超過した文字を補えます。

    例えば、

    ◆主人公の名前変更:マップ到達の名前をaに変更
    ◆主人公の名前変更:デフォルト1の名前をbに変更
    ◆主人公の名前変更:デフォルト2の名前をcに変更
    ◆主人公の名前変更:女の子の名前をdに変更
    …というコマンドを用意すると "abcd" というファイル名をゲームプレイ中に表示します。
    この方法を使うと最大で半角48文字のファイル名を設定できます。

    他の方法として、TkoolBridge等を使用して文字数の制限なく設定することもできます。

    ただし、SR分室ではファイル名を半角39文字までしか表示しないため、
    それを超える文字数のファイル名を設定してもゲームの動作上は意味がありません。

    ファイル名が40文字以上の場合は、
    そのファイル名の先頭から39文字までを表示するようにします。
    略称などを作って表示を短くする必要はありません。

    「プレイヤーがSR分室で聴いた曲をMusicフォルダのファイルから探せる」
    このことが、プレイヤーに対してファイル名を表示する利点の一つです。
    ファイルを特定できるように、正確なファイル名を表示するようにしましょう。

 

手順 5:正しく曲を追加できたかどうかをテストします。

  1. テストプレーを行い、主に以下の点を確認します。
    • デバッグアイテムを持った状態でSR分室に正しく入室できるかどうか
    • 追加した曲の解放条件を満たさない場合、その曲が正しく未解放になっているかどうか
    • 追加した曲の解放条件を満たす場合、その曲が正しく解放されているかどうか
    • 追加した曲を演奏したとき、演奏する音声ファイルに誤りがないかどうか
    • 追加した曲を演奏してShiftキーを押したとき、表示されるファイル名に誤りがないかどうか
    • 他の曲について意図しない変更が起きていないかどうか
      特に、追加した曲と同じ曲目番号の曲が正しく開放・演奏できるかどうか
  2. テストプレーの結果、なんらかの欠陥が見つかればデバッグします。
     

手順 6:これで完了です。既存の曲目に曲を追加することができました。

  • この手順では演出の設定方法は説明していません。
    演出の設定方法は 演出を設定したいとき を確認してください。
     
     

演出を設定したいとき

SR分室で曲を演奏したとき
こんな感じにイベントやピクチャーを表示したり、遠景を変えたり、見た目を色々装飾できます。
この装飾のことを「演出」と呼び、この項目ではその設定方法を説明します。

decorationSample.png
↑ 演出の表示例

演出は設定しなくても構いません。余力があったら設定するくらいで十分です。
演出を設定する場合は、プレイヤーがSR分室で曲を演奏したとき、
どのマップやイベントの曲なのかが分かるような演出にすると良いと思います。

 

手順 1:演出の内容を記述したイベントコマンドを挿入します。

  1. まず、MAP0620のEVID:0002(音符アイコンのイベント)を選んでイベントエディタを開きます。
  2. 次に、演出を設定したい曲があるページに切り替えます。
    ページ番号は以下の計算から求めることができます。
    ページ番号 = ( 曲目番号 - 1 ) ÷ 25 + 1
  3. イベント実行内容の中から演出を設定したい曲を探して、
    その曲の◆条件分岐:スイッチ[3523:演奏-演出_処理]がON の中にイベントコマンドを挿入します。
    イベントコマンドは演出の一覧から取捨選択して必要なものだけを挿入してください。

      decoration_eventCommand.png
      ↑ この◆条件分岐の中に挿入します。

    「演出コマンドのテンプレ」をコピペして利用することもできます。
    テンプレはMAP0620 EVID:0002の一番大きなページ番号のページにあります。

 

手順 2:正しく演出を設定できたかどうかをテストします。

  1. テストプレーを行い、主に以下の点を確認します。
    • デバッグアイテムを持った状態でSR分室に正しく入室できるかどうか
    • 設定した演出が意図通りの形になっているかどうか
    • 他の曲について意図しない変更が起きていないかどうか
  2. テストプレーの結果、なんらかの欠陥が見つかればデバッグします。
     

手順 3:これで完了です。演出を設定することができました。

 

演出の一覧

設定できる演出とそのイベントコマンドの全てを以下に紹介します。
ここで紹介されていないイベントコマンドを挿入してはいけません。

画面中央のうろつきを非表示にする。
◆スイッチの操作:[3530:うろ_非表示]をONにする
  • スイッチ3530番をONにすると、画面中央のうろつきを非表示にした演出になります。
  • このコマンドを挿入しない場合、画面中央のうろつきを表示した演出になります。
ピクチャーを表示する。
◆ピクチャーの表示:1, [ピクチャーグラフィック], ( [表示位置] )
◆ピクチャーの表示:2, [ピクチャーグラフィック], ( [表示位置] )
◆ピクチャーの表示:3, [ピクチャーグラフィック], ( [表示位置] )
◆ピクチャーの表示:4, [ピクチャーグラフィック], ( [表示位置] )
  • ピクチャー番号1番、2番、3番、4番を表示することができます。
    それ以外のピクチャー番号を設定してはいけません。
  • ◆ピクチャーの表示 を挿入しない場合、
    該当のピクチャー番号のピクチャーを消去した演出になります。
画面の色調を変更する。
◆画面の色調変更:( [色調] ), 0.0秒
  • [オプション]の[色調変化が完了するまでウェイト]を有効にしてはいけません。
  • ◆画面の色調変更 を挿入しない場合、色調が R100,G100,B100,S100 の演出になります。
天候エフェクトを表示する。
◆天候エフェクトの設定: [エフェクトの種類], [激しさ]
  • ◆天候エフェクトの設定 を挿入しない場合、天候エフェクトが「なし」の演出になります。
チップを変更する。
◆チップセットの変更:[チップセット]
  • イベントのグラフィックに上層チップを設定する場合などに用います。
  • ◆チップセットの変更 を挿入しない場合、チップセットがID10番の演出になります。
◆チップの置換:上層チップのn番をm番に置換
  • 滅多に使いどころないとは思いますが、◆チップの置換 も挿入できます。
  • 下層チップはオートタイルが敷き詰められているため、置換によって変更することはできません。

MAP620は上層チップ、下層チップともに一番左上のチップが敷き詰められています。
既存の演出を崩してしまうので、上層チップ、下層チップともに編集してはいけません。

イベントを表示する。
最大2つのイベントを任意の位置に表示して、
足踏みアニメや4枚アニメ(右回転)で動かしたり、任意のグラフィックに固定したりできます。
演出に利用できるイベントは ID:0004 と ID:0005 です。
◆変数の操作:[0133:キャラ1_表示位置_X]代入, [定数]
◆変数の操作:[0134:キャラ1_表示位置_Y]代入, [定数]
◆変数の操作:[0135:キャラ2_表示位置_X]代入, [定数]
◆変数の操作:[0136:キャラ2_表示位置_Y]代入, [定数]
  • ID:0004はX座標が変数133番の値、Y座標が変数134番の値の位置に設定されます。
  • ID:0005はX座標が変数135番の値、Y座標が変数136番の値の位置に設定されます。
◆スイッチの操作:[3536:Lキャラ1_表示]をONにする
◆スイッチの操作:[3537:Rキャラ1_表示]をONにする
◆スイッチの操作:[3538:Lキャラ2_表示]をONにする
◆スイッチの操作:[3539:Rキャラ2_表示]をONにする
  • これらのスイッチをONにすると、
    イベントのグラフィックのパターンやアニメーションタイプを設定できます。
  • スイッチ3536をONにすると、ID:0004はパターンがLEFTの4枚アニメ(右回転)になります。
    スイッチ3537をONにすると、ID:0004はパターンがRIGHTの4枚アニメ(右回転)になります。
    両方ともONにしない場合、ID:0004はパターンがMIDDLEから始まる足踏みアニメをします。
  • スイッチ3538をONにすると、ID:0005はパターンがLEFTの4枚アニメ(右回転)になります。
    スイッチ3539をONにすると、ID:0005はパターンがRIGHTの4枚アニメ(右回転)になります。
    両方ともONにしない場合、ID:0005はパターンがMIDDLEから始まる足踏みアニメをします。
  • 足踏みアニメは◆キャラクターの動作指定◇アニメ停止で止めることもできます。
◆キャラクターの動作指定:EV0004◆演出用1
◆キャラクターの動作指定:EV0005◆演出用2
  • ◆キャラクターの動作指定 でイベントのグラフィックを設定したり、
    任意の方向を向かせたり、足踏みアニメを止めたりできます。
  • [対象キャラ]は EV0004◆演出用1(ID:0004)か、EV0005◆演出用2(ID:0005)を指定します。
    それ以外の対象キャラを指定してはいけません。
  • [移動頻度]は基本的には 8 に設定します。
  • [移動ルート]に◇グラフィック変更がないとイベントを表示することはできません。
  • [移動ルート]に◇スイッチON◇スイッチOFFを設定してはいけません。
  • [オプション]の[動作を繰り返す]を有効にすることもできます。
  • [オプション]の[移動できない場合は無視]はイベントを移動させる場合必ず有効にします。
  • ツクールの仕様上、4枚アニメ(右回転)を止めることはできません。
    つまり、パターンがLEFTやRIGHTのグラフィックを一方向に固定して表示することはできません。
    一方向に固定して表示したいときはMIDDLEのパターンを利用します。
  • イベントの初期状態は ID:0004、ID:0005ともに以下の設定になっています。
    • 移動速度:1(1/8倍速)
    • 透明度:1(不透明)
    • グラフィック:"#null" の左上(透明なグラフィック)
    • 向き:下
上記のイベントコマンドを挿入しない場合、イベントを表示しない演出になります。
遠景を変更する。
◆遠景の変更:[遠景グラフィック]
  • [自動スクロール]を有効にして、遠景をスクロールさせることもできます。
  • ◆遠景の変更 を挿入しない場合、"SR_another_1" (スクロールなし)、
    または、"SR_another_another" (スクロールなし) を表示した演出になります。
    サウンドルーム入室時にどちらの遠景を表示するかが決まります。
     
     

曲を削除したいとき

手順 1:曲のイベントコマンドを削除します。
以下の2つの方法からいずれか1つを選んで行います。

A:曲のイベントコマンドの一部を削除する方法

この方法の利点は編集の作業量が少ないことです。

  1. 曲の解放条件を表す◆条件分岐 を削除します。

    deleteMusic_part.png
    ↑ この画像で選択しているコマンドが削除するコマンドの例です。

     
  2. 手順 2 へ進みます。
  • このような削除を行うと削除した曲が常に解放済みとなって、
    音声ファイルの演奏や演出の表示をしない曲になります。
B:曲のイベントコマンドの全体を削除する方法

この方法の利点はSR分室の構造をきれいな状態に保てることです。
そうすることで、後から編集する他のツクラーが作業しやすくなったり、
プレイヤーがSR分室で音楽を聞くときに違和感を与える可能性を少なくできます。

  1. まずは、◆条件分岐:変数[0105:演出番号]が??? (???は演出番号)を削除します。

    deleteMusic_all.png
    ↑ この画像で選択しているコマンドが削除するコマンドの例です。

     
  2. 次に、曲を削除した曲目を編集します。
    1. 削除した結果、演出番号が歯抜けになったら、
      1から番号順に揃うように曲の演出番号を変更します。
      演出番号を変更するには下記のイベントコマンドを編集します。
      ◆条件分岐:変数[0105:演出番号]が??? (??? は演出番号)
    2. その曲目の演出数を変更します。
      演出数を変更するには下記のイベントコマンドを編集します。
      ◆変数の操作:[0104:演出数]代入, ?
       
  3. 削除した結果、曲目が曲を含まなくなった場合、その曲目を削除するかを検討します。
    その曲目が一番大きな曲目番号を持つ場合など、
    他の曲目に与える影響が小さい場合にのみ、その曲目を削除します。

    通常は曲目の削除を行わないようにしてください。
    曲目番号は必ず1から番号順に揃っていなければならず、
    編集量やセーブデータへの影響が大きいからです。

    曲目を削除した結果、イベント実行内容が空になってもページを削除してはいけません。
     
  4. 手順 2 へ進みます。
     

手順 2:正しく曲を削除できたかどうかをテストします。

  1. テストプレーを行い、主に以下の点を確認します。
    • デバッグアイテムを持った状態でSR分室に正しく入室できるかどうか
    • 曲が正しく削除できているかどうか
    • 他の曲について意図しない変更が起きていないかどうか
  2. テストプレーの結果、なんらかの欠陥が見つかればデバッグします。
     

手順 3:これで完了です。曲を削除することができました。

 
 

曲を削除したときのセーブデータへの影響

曲を削除することで、今まで演奏できていた曲が無くなったり、曲の番号がずれたりします。
その結果、プレイヤーのセーブデータの以下の情報が損なわれてしまう可能性があります。

  • PC画面BGM No.6で演奏する曲(変数108番)
  • PC画面BGM No.7やメモリーモードで演奏する曲(変数151番~160番)
  • アルバムで演奏する曲(変数3935番)

つまり、PC画面BGM、メモリーモード、アルバムが無音になったり、
プレイヤーの意図と異なる曲が演奏されるなどの不具合が生じます。

セーブデータに含まれるこれらの変数の値を変更することで、
こういったプレイヤーの不利益を避けられますが、基本的にそのような編集は非推奨です。
曲を削除したら上述の不具合が発生する旨をプレイヤーに告知するだけでも十分です。

 
 

バグを発見・修正したいとき

バグを発見する方法は結局のところテストプレーを重ねるしかありません。
しかし、いくつか簡単なテストを実施する方法が用意されています。

 

テスト1:夢の世界でほほをつねる / 現実部屋ベランダに出てから現実部屋PCを起動する

夢の世界でほほをつねる、現実部屋ベランダに出てから現実部屋PCを起動する、
といった行動を行うことで、SR分室の曲の解放状態をチェックする処理を実行できます。

この処理は、総曲目数、総演出数、解放済み曲目総数、解放済み演出総数を数え上げて、
前回入室時と異なるかどうかをチェックするもので、
並行して曲目リストの構造に誤りがないかどうかのテストを実施します。

このテストは変数の値が不正に上書きされていないかどうかを調べます。
セーブデータへ必ず影響を与えるバグを発見するので、
誤りを見つけた場合は、文章を表示した後、強制的にゲームを終了します。

誤りがある場合、以下のような文章が表示されます。

★MAPID:620 EVID:2[?] でエラー発生★
エラーの種類 :V[1826]の値が破壊された
推測される原因:?ページ目の登録曲目数が25を超過
(この後、エラーで終了する)

★MAPID:620 EVID:2[?] でエラー発生★
エラーの種類 :V[1800]の値が破壊された
推測される原因:追加方法を誤った曲目がある
(この後、エラーで終了する)

★MAPID:620 EVID:2[?] でエラー発生★
エラーの種類 :適正でない変数の値が破壊された
推測される原因:追加方法を誤った曲目がある
(この後、エラーで終了する)

これらの文章が表示されたときは、
ページ番号?番のページに誤りがある可能性が考えられます。

以下の点を確認して誤りを修正します。

  • ページ番号?番のページの全ての曲目について、下記のイベントコマンドが
    正しい位置に存在すること、誤った位置に存在しないことを確認します。
    ◆条件分岐:うろつきの名前が【SRa変動チェック】
     ◆変数の操作:[V[0102]]乗算, 変数[0104]の値
     ◆変数の操作:[V[0102]]加算, 変数[0106]の値
     ◆変数の操作:[0102~0103]加算, 1
     ◆変数の操作:[0104~0106]代入, 1
     ◆
    :分岐終了
    このイベントコマンドは曲目ごとに1つずつ、
    必ず正しい形で正しい位置に存在しなければなりません。
     

また、一番上の文章が表示されたときは、
ページ番号?番のページに25よりも多くの曲目が登録されている可能性も考えられます。

  • 1つのページには最大25個の曲目を登録することができ、
    それを超える数の曲目を登録することはできません。
    この場合、超過した曲目を別のページに移すことでエラーを修正できます。
 

テスト2:デバッグアイテムを持った状態でSR分室に入室する

デバッグアイテムを持った状態でSR分室に入室すると、
曲目リストの構造に誤りがないかどうかのテストを実施します。
このテストで発見した誤りは、曲の演奏や解放率計算に必ずバグを引き起こします。

誤りがある場合、以下のような文章が表示されます。

★MAPID:620 EVID:2[?] MusicNo.??? でエラー発生★
 
>No.???の曲を
>全てチェックすることができませんでした

この文章が表示されたときは、
曲目番号???番の演出数と実際に登録された曲の数が異なる、
または、登録された曲の数え方に誤りがあります。

以下の点を確認して誤りを修正します。

  • 曲目番号???番の下記のイベントコマンドについて
    正しい位置に存在すること、誤った位置に存在しないことを確認します。
    また、n が実際に登録された曲の数に設定されていることを確認します。
    ◆変数の操作:[0104:演出数]代入, n
  • 曲目番号???番の下記のイベントコマンドについて
    正しい位置に存在すること、誤った位置に存在しないことを確認します。
    ◆変数の操作:[0105:演出番号]加算, 変数[0107]の値
     ※このイベントコマンドは曲ごとに必ず1つずつ存在しなければいけません。
 

★MAPID:620 EVID:2[?] MusicNo.??? でエラー発生★
 
>No.???の次の曲目を
>チェックすることができませんでした

この文章が表示されたときは、
曲目番号???番に誤りがある可能性が考えられます。

以下の点を確認して誤りを修正します。

  • 曲目番号???番の下記のイベントコマンドについて
    正しい位置に存在すること、誤った位置に存在しないことを確認します。
    ◆条件分岐:うろつきの名前が【SRa変動チェック】
     ◆変数の操作:[V[0102]]乗算, 変数[0104]の値
     ◆変数の操作:[V[0102]]加算, 変数[0106]の値
     ◆変数の操作:[0102~0103]加算, 1
     ◆変数の操作:[0104~0106]代入, 1
     ◆
    :分岐終了
 
 

SR分室の曲一覧

 

サウンドルームのシステム上の注意点

SR分室や旧SRは夢の世界から行き来しない前提で制作しています。
この前提は、バグ回避はもちろんのこと、将来のシステム開発の余地を残したり、
システムの変更をしやすくするために必要となります。
そのため、下記のような処理は行わないでください。

  • 夢の世界からMAP0006やMAP0620に主人公を移動させる。
  • 夢の世界でコモンイベント269番やコモンイベント271番を呼び出す。
  • 起床する目的以外で、夢の世界でコモンイベント64番を呼び出す。
    コモンイベント64番の中でコモンイベント269番271番が呼び出されて、不具合の原因になります。

旧SRの更新を行っていたツクラーが制作から離れたため、旧SRが更新されなくなりました。
そのため、旧SRに代わって作られたSR分室は、
編集が容易な形を維持して、特定のツクラーに依存しないようにすることが大切です。
演出を凝ったものにする等の理由でSR分室に新しい制御を作ることはなるべく控えてください。


SR分室の曲の解放状態をチェックする処理はSR分室に入室しなくても実行されます。
その処理は以下のような流れで実行されます。

  1. 下記のタイミング(曲の解放状態が変動する可能性のあるとき)にフラグを立てます。
    • はじめからゲームを開始したとき
    • マップIDが2から変わったとき (コモンイベント33番)
    • ミニゲームを選択したとき
    • Map0002.lmuが編集されたセーブデータをロードするとき
    • バージョンアップしたとき (コモンイベント62番)
  2. 下記のタイミングでフラグが立っていれば、
    コモンイベント271番を呼び出して、曲の解放状態をチェックします。
    • 起床するとき (コモンイベント64番)
      (起床するときはフラグが立っていなくても必ずチェックします)
    • 現実部屋PCを起動するとき
    • アルバムを起動するとき
    • 現実部屋PCでセーブデータをロードするとき
      (実装上はセーブ後のMIDIの演奏位置(Tick)が 0 のとき、として表現しています)
    • バージョンアップしたとき
  3. チェックが終わったら、フラグを降ろします。

コモンイベント271番を呼び出すと、便利変数の値を破壊して、
曲目リスト(MAP0620のEVID:0002)の全てのページを実行します。

上記のタイミングで何らかの不具合が発生する場合は、
MAP0620(特に曲目リスト)に欠陥がある可能性があります。


サウンドルームにシステム上の変更を行ったときは、
このページに正しい情報を記載してください。