ダイレクト入力枠

ダイレクト入力枠は、メインパネルとステータスバーの間にあるコンボボックス (編集可能なドロップダウンリスト) です。

ダイレクト入力枠は、ラベル文字列 “Direct” と、単一行テキストボックスと、ドロップダウンボタンと、Input ボタンによって構成されます。

配置データのチャンネル文を直接入力できるコンボボックスです。

たとえばこのフォームにフォーカスし、キーボードから “#00011:FOON” と入力して Input ボタン を左クリックすると、#000 の 1 Player 側 1 鍵盤レーン」に、「番号 FO のオブジェクト」と「番号 ON のオブジェクト」が、「小節を 2 等分する間隔」で配置されます。

ドロップダウンボタン を左クリックすると、直近 10 件までの入力履歴リストがドロップダウンします。矢印キー上下などで履歴アイテムを選択できます (Enter や左クリックで確定)。この入力履歴は BMSE 終了時に消去されます。

ダイレクト入力は、使い方次第で編集効率が向上する機能です。たとえばテンプレートサンプルの文字列を適当に変更して直接入力すれば、連番オブジェクトの書き込みや、配置間隔の変更などを一括で実行できます。(BmWh [https://cerebralmuddystream.nekokan.dyndns.info/] (外部リンク) を使えば、連番オブジェクトの書き込みはもっと簡単に達成できます。)

ダイレクト入力の注意点

入力文字列はすべて半角英数字で指定します。大文字小文字は問いません。不正な書式を入力した場合、BMSE の正常な動作は保証されません。

チャンネル文以外の入力は無視されます (変更フラグは立ちます)。

ダイレクト入力は Undo Counter にカウントされません。つまり、【ダイレクト入力によるオブジェクト書き込み】は “元に戻す/やり直し” ができません

ダイレクト入力で書き込んだオブジェクトに対する【移動、切り取り、コピー、貼り付け、削除】などの編集操作は、“元に戻す/やり直し” が可能です。

  • BMSE 1.3.9 beta14 では、たしかダイレクト入力も “元に戻す/やり直し” ができたような気がします (手元にないため未確認)。

配置済みオブジェクトと同一のグリッド座標上にダイレクト入力を行うと、オブジェクトが一時的に重なった状態になります。

00 (休符) をダイレクト入力で重ねても、配置済みオブジェクトは削除されずに元の場所に残ります。

ダイレクト入力で重ねたオブジェクトは一時的に単体選択できなくなる、などの不具合が生じる場合があります。再現条件は不明です。


ダイレクト入力は譜面ファイルを開かない限り機能しません。実行ファイルへのドロップ起動、譜面ファイルからの関連づけ起動、BMSE 単独起動後に譜面を開く、などの操作を経てようやく正常に動作するようになります。一度でも条件を満たせば、以降は保存や新規作成などの後も正常に機能します。これは BMSE 1.3.8 のバグです (1.3.9 beta 14 で修正されました)。


ダイレクト入力枠に一度に入力できる文字数は上限 256 bytes です。257 bytes 以降の文字列は切り捨てられます。先頭の 7 文字は必ず “#xxxCH:” の形になるので、直接入力できるリズムは「小節の 124 等分 (248 文字分)」が事実上の上限となります。これは、BMSE で定義可能なパスの長さの上限と完全に一致します (ANSI 換算で 256 bytes)。


ダイレクト入力の再描画範囲が広すぎると、BMSE が強制終了します。垂直スクロール範囲を一気に広げようとして #99911:11 などと入力しないでください。

大量の小節をダイレクト入力する予定があるなら、事前に準備しておくことをおすすめします。以下の手順のどちらかを実行してください。

  • 拡張命令タブ#99911:11 と記述していったん保存し、開き直す
  • または、譜面ファイルをあらかじめテキストエディタなどで開き、BMS コード末尾にダミーを記述しておく (#99911:11 など)。

強制終了する再描画範囲の閾値は不明です。以下の例を参考にしてください。

  • 全小節 4/4 拍子、End キーの移動先が #166 未満のとき、#154 以降に直入力すると強制終了。#153 への直入力はセーフ。そこまでのどこか 1 小節の長さを 21/32 以下にしておくと、#154 への直入力もセーフに。43/64 以上だと、#154 への直入力で強制終了。

  • 全小節 4/4 拍子、End キーの移動先が #166 以上 #500 未満のとき、#495 以降に直入力すると強制終了。そこまでのどこか 1 小節の長さを 63/64 以下にしておくと、#495 への直入力もセーフに。

  • #000#100 あたりまで拍子をすべて 64/4 にすると、#047 以降に直接入力したとき強制終了。#000#050 あたりまで拍子をすべて 64/4 にすると、#050 に直接入力しても強制終了しない。

各チャンネル文に関する注意点

#xxx01 (BGM) のチャンネル文をダイレクト入力すると、強制終了します。

バックアップは作成されます。

BGM をダイレクト入力できる BMSC [http://tixlab.com/software/bmsc.shtml] (外部リンク) と同じ感覚で操作すると失敗します。「ダミーオブジェクトは BGM に」という習慣は忘れてください。


#xxx02 (小節長) のチャンネル文をダイレクト入力すると、表示が変になります。1.3.9 beta 14 で修正されましたが “元に戻す/やり直し” などで不具合が発生するようです。小節長の直接入力は可能ですが推奨できません。ダイレクト入力のかわりに、拍子タブから拍子を指定してください。


#xxx03 (標準 BPM 変更) のチャンネル文は、2 桁の 16 進数で指定します。

たとえば “#00003:11ff” と入力すると、#000 の BPM レーンに、値 17 と値 255 のオブジェクトが、小節を 2 等分する間隔で配置されます。

16 進数 11 は 10 進数 17 に相当。

16 進数 FF は 10 進数 255 に相当。


#xxx08 (拡張 BPM 変更) のチャンネル文は、2 桁の 36 進数で指定します。

たとえば “#00008:11FF00zz” と入力すると、#000 の BPM レーンに、値 37555・休符・1295 のオブジェクトが、小節を 4 等分する間隔で配置されます。

負数も直接入力できたり、小数は直接入力できなかったりするようですが、よくわかりません。それらの値を確実に指定したい場合は普通にメインパネルに書き込んでください。


#xxx09 (STOP) のチャンネル文は、2 桁の 36 進数で指定します。1295 よりも大きな値を指定したい場合は普通にメインパネルに書き込んでください。


#xxx04 (BGA)#xxx07 (LAYER)#xxx06 (POOR)#xxx[11-69] (演奏領域) のチャンネル文は、2 桁の 16 進数または 36 進数で指定します。

チャンネル番号が 040607 の場合、コロン以降の値は映像オブジェクトの定義番号です。ただし値 00#BMP00 ではなく、休符を表します。

チャンネル番号が 11-69 の場合、コロン以降の値は音声オブジェクトの定義番号です。ただし値 00#WAV00 ではなく、休符を表します。

定義番号は 2 文字でオブジェクト 1 個を示すので、コロン以降の文字数は必ず偶数個になります。奇数個のとき、BMSE は末尾 1 文字を無視します

  • #xxx1727 (フリーゾーン) のチャンネル文は無視されます。その不可視 (3747) およびロングノート (5767) に関しても、同様に無視されます。


チャンネル文

#xxxCH:n の形式で記述します。#xxx は小節番号、CH はチャンネル番号です。

n はチャンネルによって意味が異なります。基本的にはコロン以降の「2 文字の組」の個数で小節を等分します。たとえば “#00104:110022” なら、#001 の BGA レーンに、小節を 3 等分する間隔で、映像オブジェクト 110022 を配置します。番号 00休符です。番号 11 および 22 のオブジェクトは、それぞれ #BMP11 (#BGA11) と #BMP22 (#BGA22) を参照します。

BMSE でダイレクト入力できるチャンネル
02-04, 06-09, 11-69
[#xxx02] 小節長

拍子の値を指定する (ダイレクト入力は非推奨)。

たとえば 7/16 拍子なら、#xxx02:0.4375” と指定する (7 ÷ 16)。

既定値は 1 なので、4/4 拍子なら指定は不要。

[#xxx03] 標準 BPM 変更
1 ~ 255 の整数値を、2 桁の 16 進数で指定
[#xxx08] 拡張 BPM 変更
1 ~ 1295 の整数値を、2 桁の 36 進数で指定
[#xxx09] STOP
1 ~ 1295 の整数値を、2 桁の 36 進数で指定
[#xxx04] BGA
小節を映像オブジェクト個数で等分する
[#xxx07] LAYER
小節を映像オブジェクト個数で等分する
[#xxx06] POOR
小節を映像オブジェクト個数で等分する
#xxx[11-69] 演奏領域
[11-19] 1P 可視
[21-29] 2P 可視
[31-39] 1P 不可視
[41-49] 2P 不可視
[51-59] 1P ロングノート
[61-69] 2P ロングノート

小節を音声オブジェクト個数で等分する。

チャンネルの割り当ては、譜面の種類によって異なる

演奏チャンネル番号の末尾が 7 なら、BMSE は入力を無視する


テキスト入力フォームの操作

他の部位のテキスト入力操作もこの項にまとめています。

テキスト入力フォーム上にフォーカスがないときの操作

テキストボックス左クリック
  • テキストボックスにフォーカス
  • コンボボックスの場合、左クリック時にテキストボックス内に文字列があれば、その文字列を全選択しつつフォーカスする
テキストボックス右クリック
  • テキストボックスにフォーカスし、入力フォームのコンテキストメニューを開く (後述)
  • コンボボックスの場合、右クリック時にテキストボックス内に文字列があれば、その文字列を全選択しつつメニューを開く
コンボボックス領域上で ホイール回転

リストアイテムがあるとき、リストを展開せず選択

ドロップダウンボタン 左クリック
  • テキストボックスにフォーカスし、リストを展開
  • テキストボックスに文字列があれば、その文字列を全選択しつつリストを展開
  • 下方向のスクリーン高さがリスト高さに満たない場合、リストをプルアップ展開

ダイレクト入力枠の Input ボタン 左クリック

ダイレクト入力枠のテキストボックス内に文字列があればそれを配置データとして入力し、テキストボックス内文字列をクリアしてフォーカスする

  • テキストボックスが空ならフォーカスしない
オブジェクトパネル BGA タブの入力ボタン 左クリック
#BGA タブのテキストボックス内に文字列があればそれを定義リストに登録し、テキストボックス内文字列をクリア

オブジェクトパネル (拡張命令タブなど) のスクロールバー操作

グレーアウト時

内容がテキストボックス 1 ページに収まる場合、以下のスクロールバー操作は無効

垂直スクロールバーノブ、 水平スクロールバーノブ 左ドラッグ

ドラッグ中、縦横にライブスクロール

  • 垂直スクロールバーのノブ高さは自動伸縮する (ウィンドウサイズや文書全体の行数に依存)
  • 水平スクロールバーのノブ幅は縮む一方 (テキストボックスを空にするか譜面を開くまで、伸びた全長は短くならない)
上下スクロールボタン 左クリック
垂直方向に 1 行ずつスクロール
左右スクロールボタン 左クリック
水平方向に 1 文字ずつスクロール
トラックを左クリック
  • ノブ位置からクリック位置の方向に、1 ページ (== ノブ長さ) ずつスクロール
  • 押しっぱなしでクリック位置まで連続スクロール
スクロールバー領域を右クリック
  • スクロールバーのコンテキストメニューを開く

  • マウスオーバーや矢印キーで項目を選択
  • 選択した項目を、左右クリックや Enter で実行
  • EscF10 やスクロールバー以外の場所をクリックで閉じる
水平方向の代替操作
  • 行頭・左の端 [Home]
  • 行末・右の端 [Ctrl + PageUp]
  • 先のページ・左のページ [不明]
  • 後のページ・右のページ [Ctrl + PageDown]
垂直方向の代替操作
  • 文頭・最上部 [Ctrl + Home]
  • 文末・最下部 [Ctrl + End]
  • 前のページ [PageUp]
  • 次のページ [PageDown]
[Windows 2000/XP 以降] 上下左右スクロールボタン 以外を Shift + 左クリック
クリック位置に瞬時にスクロール (コンテキストメニュー “ここにスクロール” と等価)

メインパネル & 定義リスト領域上にマウスポインタがないとき有効

Tab

タブインデックスを持つ各フォーム要素に、昇順でフォーカスを移動

(メインパネルおよびメニューバーはタブインデックスを持たない)

Shift + Tab
降順でフォーカスを移動

入力フォームのボタンにフォーカスがあるとき有効

SpaceEnter
ダイレクト入力枠の Input ボタン、 オブジェクトパネル BGA タブの入力ボタン を押下することで、各テキストボックスにある内容を入力

テキストボックスにフォーカスがあるとき (キャレット点滅中) 有効

任意のキー
  • フォーカスがあるテキストボックスに文字を入力

  • 選択文字列があるとき、選択範囲を削除して入力
Alt + テンキー
文字コードを指定して入力 (参考 [https://duckduckgo.com/?q=alt+テンキー] (外部リンク))
テキストボックス右クリック、アプリケーションキーShift + F10

入力フォームのコンテキストメニューを開く

(制御文字メニュー)

  • マウスオーバー、矢印キーで項目を選択
  • 選択した項目を、左右クリックや Enter で実行
  • 各項目アクセスキーで、選択と同時に実行
  • EscF10 や他の場所をクリックで閉じる
  • グレーアウト項目は状況に依存する
マウスアウト
メインパネルや定義リストにマウスオーバーすると、そちらにフォーカスが奪われる
矢印キー左右
  • キャレットを左右に移動
  • 選択文字列があるとき、選択を解除
矢印キー上下、ホイール回転↑↓

リストアイテムがあるとき、リストを展開せず選択

ドロップダウンボタン 左クリック、Alt + 矢印キー上下Shift + F4
  • ドロップダウンリストを展開 (履歴は 0 ~ 10 件)
  • リスト展開中ならリストを折りたたむ

  • 矢印キー上下、ホイール回転、Page Up/Down、マウスオーバーなどでリストアイテムを選択
  • 左クリック、Enter で選択アイテムを確定
  • Esc で展開中のリストを折りたたむ
  • 垂直スクロールバーのノブを左ドラッグでライブスクロール
  • [Windows 2000/XP 以降] 垂直スクロールバーのトラックを [Shift + 左クリック] で瞬時にスクロール
  • 上下スクロールボタン 左クリックでリストを 1 行ずつスクロール
  • スクロールバー右クリックで意味なしメニュー開く
左クリック
  • クリック位置にキャレットを移動
  • 選択文字列があるとき、選択を解除
Home
キャレットを行頭に移動
End
キャレットを行末に移動
BackspaceCtrl + H
  • キャレットから行頭側の隣接する 1 文字を削除
  • 選択文字列があるとき、選択文字列を削除
Delete
  • キャレットから行末側の隣接する 1 文字を削除
  • 選択文字列があるとき、選択文字列を削除
Insert
  • キャレット位置に文字列を挿入
  • 挿入モードは他の特殊キー押下時に解除
Page UpPage Down

ドロップダウンリストの選択されている項目から、最大 7 件上 or 下にあるリストアイテムを選択

  • (リスト 1 ページのアイテム表示件数は最大 8 件)
  • リストそのものの展開・非展開状態は問わない
  • 拡張命令タブでは 1 ページ量、垂直スクロール
Shift + Page UpShift + Page Down
1 ページ量、垂直スクロールし、かつスクロールした区間の文字列を全選択 (1 行フォームでは無効)
Ctrl + Page Up
水平スクロールバー末尾にスクロール (1 行フォームでは無効)
Ctrl + Page Down
1 ページ量、行末側にスクロール (1 行フォームでは無効)
左ドラッグ、Shift + 矢印キー左右
  • 押下中、マウスポインタやキャレットが通過した文字列を選択状態にする
  • 左クリックやキャレット戻すと選択を解除する
Shift + 矢印キー上下

上下行のキャレット位置までの範囲を選択

  • 1 行フォームでは [Shift + 矢印キー左右] と等価
  • コンボボックスではリストアイテム選択が優先される
Shift + 左クリック

Shift 押下中、キャレット位置を範囲選択の始点として固定し、任意の左クリック位置を範囲選択の終点に指定

Shift + Home
キャレット位置から行頭までの文字列を全選択
Shift + End
キャレット位置から行末までの文字列を全選択
Ctrl + Home
キャレットを文書全体の先頭に移動
Ctrl + End
キャレットを文書全体の末尾に移動
Ctrl + Shift + Home
キャレット位置から文書先頭までの区間を全選択
Ctrl + Shift + End
キャレット位置から文書末尾までの区間を全選択
Ctrl + 矢印キー左右
キャレットを左右に単語ごとに移動
Ctrl + Shift + 矢印キー左右

キャレット位置から左右に、単語ごとに範囲選択

Ctrl + Delete
キャレット位置から行末までの文字列を削除
左ダブルクリック
クリック位置の単語のみを範囲選択
Ctrl + A
入力フォーム内の文字列をすべて選択
Ctrl + XShift + Delete
選択文字列を切り取り
Ctrl + CCtrl + Insert
選択文字列をコピー
Ctrl + VShift + Insert
貼り付け
Ctrl + Z
元に戻す (コンボボックスでは無効)
Ctrl + Y
やり直し (コンボボックスでは無効)
Ctrl + JCtrl + M
改行文字を入力 (1 行フォームでは無効)
Ctrl + TabCtrl + I
Tab 文字を入力 (1 行フォームでは無効)
Enter

テキストボックス内文字列を配置データとして入力

  • ダイレクト入力枠のみ有効だがたまに効かない
  • 拡張命令タブでは Enter は改行

Microsoft IME 有効時の操作

[半角/全角]
  • [IME 有効 ←→ IME 無効] のトグル
  • 未変換文字列 or 文節があるとき、全確定
F10Ctrl + T

確定前の文字列を半角英数に変換

[小文字 → 大文字 → 先頭のみ大文字 → …]

F5Ctrl + Y
確定前の文字列を部首変換
F6Ctrl + U
確定前の文字列をひらがなに変換 [先頭から 1 文字ずつカタカナに変換]
F7Ctrl + I
確定前の文字列をカタカナに変換 [末尾から 1 文字ずつひらがなに変換]
F8Ctrl + O
確定前の文字列を半角カタカナ (半角) に変換 [1 文字ずつ、かな/大文字小文字へ変換]
F9Ctrl + P

確定前の文字列を全角英数に変換

  • [Ctrl + P] → [Ctrl + O] で半角英数になる
左クリック
確定前の文節群をクリック位置に移動・挿入
矢印キー上
  • 未変換文字列の先頭にキャレットを移動
  • アクティブな文節を前候補変換
  • 文節長の変更中、選択範囲を短縮
矢印キー下
  • 未変換文字列の末尾にキャレットを移動
  • アクティブな文節を次候補変換
  • 文節長の変更中、選択範囲を伸張
Shift + 矢印キー左右
文節の区切り直し (注目文節)
Shift + 矢印キー下
未変換文字列 or 文節を先頭から順に確定
Ctrl + 矢印キー下
注目文節を確定
Ctrl + 矢印キー
未変換文字列の先頭/末尾にキャレットを移動
Ctrl + 矢印キー上
アクティブな文節を前候補変換
変換キー
  • 変換
  • アクティブな文節を次候補変換
  • 確定済み文節の再変換
Shift + 変換キー
変換候補のメニュー表示中、前候補変換
Ctrl + 変換キーCtrl + F10

IME のコンテキストメニューを開く

(プロパティ → 全般タブ → 設定ボタンで 設定一覧)

Space
変換 / アクティブな文節を次候補変換
Shift + Space
変換 / アクティブな文節を前候補変換
Ctrl + Space
半角スペースを入力
Ctrl + Shift + Space
全角スペースを入力
Ctrl + Backspace
確定直後に入力で、未確定状態に戻す
Ctrl + Delete
  • 確定前文字列の以降から行末までを削除
  • 変換候補のメニューから、選択中の変換候補を一時的に削除する (詳細 [http://www.atmarkit.co.jp/fwin2k/win2ktips/566ime/ime.html] (外部リンク))
Shift + Alt
他言語用の入力方式が導入済みの場合、入力方式を切り替える (日本語 → 中国語 等)
Shift + Ctrl (ヘルプ筆者未確認)
キーボードレイアウトの切り替え (MS→ATOK、スタンダード→ナチュラル 等)
[Windows Vista 以降] [Office 2007 以降?] Tab
変換候補選択中に、すべての選択肢を表示
無変換
  • ひらがな、カタカナ、半角カタカナ (モードトグル / 文字列変換トグル)
  • 英数入力時は 全角 ←→ 半角 トグル変換
Shift + 無変換
全角英数 ←→ 半角英数 (文字列変換トグル)
Caps Lock
全角英数 ←→ ひらがな (モードトグル)
ひらがなキー
IME を有効化して、ひらがな入力モードに
Shift + ひらがなキー
IME を有効化して、カタカナ入力モードに
Alt + ひらがなキーローマ字キー
ローマ字入力/かな入力 の切り替え
Ctrl + E
  • 変換前の文字列の先頭にキャレットを移動
  • アクティブな文節を変換 (前候補)
Ctrl + AHome、Ctrl + 矢印キー左
  • 変換前の文字列の先頭にキャレットを移動
  • 先頭文節に移動
Ctrl + S or D矢印キー左右
  • 変換前の文字列のキャレットを前後に移動
  • 文節を前後に移動
Ctrl + FEndCtrl + 矢印キー右
  • 変換前の文字列の末尾にキャレットを移動
  • 末尾文節に移動
Ctrl + GDelete
変換前の文字列の、キャレットの行末側 1 文字を削除
Ctrl + HBackspaceCtrl + BackspaceShift + Backspace
  • 変換前の文字列の、キャレットの行頭側 1 文字を削除
  • アクティブな文節の変換を取り消し
Ctrl + J

確定前の文字列の直前位置で改行

  • 確定前の状態は維持される (1 行フォームでは無効)
Ctrl + K or L
  • 変換前の文字列のキャレットを前後に移動
  • 文節の区切り直し (注目文節)
Ctrl + ZEsc
  • 変換前の文字列を削除
  • 文節区切り時、文節区切りを取り消し
  • アクティブな文節の変換を取り消し

連続入力するとすっきり爽快

Shift + Esc
  • 変換前の文字列を削除
  • 文節区切りをすべて取り消し
Ctrl + X
アクティブな文節を次候補変換
Ctrl + N
  • 変換中の文字列を全確定
  • 変換中の文字列が選択されているとき、選択範囲のみ変換を確定 (注目文節)
Ctrl + MEnterCtrl + Enter
変換中の文字列を全確定
Page Up/DownShift + 矢印キー上下
変換候補メニューのページめくり
Home / End
変換候補メニューのアイテム先頭/末尾
Ctrl + 変換キー
変換候補メニュー表示中、漢字の読み候補をすべて表示 (画像)
アプリケーションキー

変換候補メニュー表示中、一覧メニュー表示

IME コンテキストメニューアイコン を左クリックするのと同じ (画像)