Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ソング: シーケンサ左クリックデフォルトの動作を調整する #2279

Closed

Conversation

romot-co
Copy link
Contributor

@romot-co romot-co commented Oct 1, 2024

内容

要議論かもです(いったんドラフト)

シーケンサにおいて:

  • ノート選択中に左クリックでは選択キャンセルにする
  • ノート選択中に左クリック+ドラッグではノート追加(ドロー)を行える
  • 複数選択時に選択中のノートShift+左クリックで選択除外

関連 Issue

ref #2039
close #2039

スクリーンショット・動画など

なし

その他

@romot-co romot-co changed the title #2039 ソング: シーケンサ左クリックデフォルトの動作を調整する ソング: シーケンサ左クリックデフォルトの動作を調整する Oct 1, 2024
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

左クリックのデフォルト動作、どうすべきか難しいですね!!!!
ノートの選択状態によって挙動を変えるのは思いつきますが、ドラッグした時にノートを追加できるのはなるほどでした!
ちょっと触らせていただいたので感想まで!

とりあえず僕が気づいた破壊的変更になる動作としては、スナップを1/4にしてノートをシングルクリックして追加していってたのができなくなった感じでした。
もちろんちょっとドラッグすればぽぽぽと足していけるというの、あとそもそもデバッグ以外でこの置き方はしない気もしないでもないので、重要度は高いのが低いのかまだ考えられてないです!

あとこっちはバグっぽいですが、ノートをクリックした後、別の離れたノートをshift+クリックするとその範囲内のノートも選択状態になっていたんですが、ctrl+クリックと同じ挙動になっているかもです。

UX の観点ですが、選択状態かそうじゃないかで、特に見た目の差なくシングルクリックの挙動が変わるのは、まあ想像しない挙動だろうな~~~とは感じました。
とはいえもしかしたら選択状態の時とノート追加(可能な)状態とでカーソルを変えるだけでも結構違ったりする・・・・のかも・・・・・?

あと複数選択時に選択中のノート左クリックで選択除外は挙動を確認できなかったです!
ただまあこれはさすがにctrl+クリックで選択状態反転が一般的なんじゃないかなとは感じました・・・・・・!
(まぁと言っても、ファイラーとかパワポとかぐらいかもですが・・・。)

一旦コメントまで!!!

@romot-co
Copy link
Contributor Author

romot-co commented Oct 1, 2024

@Hiroshiba
ご確認ありがとうございます!

UX の観点ですが、選択状態かそうじゃないかで、特に見た目の差なくシングルクリックの挙動が変わるのは、まあ想像しない挙動だろうな~~~とは感じました。
とはいえもしかしたら選択状態の時とノート追加(可能な)状態とでカーソルを変えるだけでも結構違ったりする・・・・のかも・・・・・?

挙動の予測ができないというのはその通りで、
どうしようかな…と

  • 選択してしまったらマウスでキャンセルができない(Escキー押せばよくはある)
  • キャンセルのつもりで別の場所をクリックしたら追加されるかプレイヘッドなどが動く

...なんか壊れそうだし触るのが怖い&面倒というのにつながる気がしているのですが
ちょっと整理して再度調整してみます…!


あと複数選択時に選択中のノート左クリックで選択除外は挙動を確認できなかったです!
ただまあこれはさすがにctrl+クリックで選択状態反転が一般的なんじゃないかなとは感じました・・・・・・!

こちらPRのコメント間違いでShift+クリックの誤りでした…!
たぶん一般的にはCtrl+クリックで複数選択 / 複数選択解除だと思っています
(いまのところShift+クリックで複数選択になっている)

@romot-co
Copy link
Contributor Author

romot-co commented Oct 2, 2024

案A:

  • クリックで追加 / 追加可能時は追加可能カーソルで現在の状態を表現
  • 選択時は外側クリックで選択解除 / カーソルは(個人的にはこの方が良いような気がしている
  • Ctrl + ノートクリックで複数選択/選択解除
操作 PC(マウス) PC カーソル(モード) タッチデバイス
ノートの追加 1. クリックでデフォルト長のノートを追加 2. クリック&ドラッグで長さを指定してノートを追加(ドロー) 鉛筆アイコン? 1タップでデフォルト長のノートを追加 2. タップ&ドラッグで長さを指定してノートを追加
ノートの選択 ノートクリックで選択 標準の矢印カーソル ノートタップで選択
ノートの選択解除 1. 空白部分をクリック 2. エスケープキーを押す 標準の矢印カーソル 空白部分をタップ
ノート範囲の選択 Shift + ドラッグで選択範囲を作成 十字カーソル 二本指でドラッグして選択範囲を作成
ノートの移動 選択したノートをドラッグ 十字矢印 選択したノートをドラッグ
ノートのサイズ変更 ノートのエッジをドラッグ 水平方向の両矢印アイコン ノートのエッジをドラッグ?
ノートの削除 選択後にDELETE 2. コンテキストメニューから削除 標準矢印 1. 選択後に削除アイコンをタップ 2. コンテキストメニュー(ロングタップ)から削除

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 3, 2024

選択時は外側クリックで選択解除 / カーソルは(個人的にはこの方が良いような気がしている

やっぱりこれは、少なくとも何かしらの見た目の差がないと、かなり不思議な挙動だと感じられると思います。
ノート追加ができる状態の時に鉛筆アイコンにするのがどれぐらい効くか次第かなぁと。。。

ちなみにVSCodeのテキスト欄にて、右クリックでコンテキストメニューを開いた時の挙動がこれでした!
通常状態の時は縦棒のカーソルになっていて、右クリックでメニューを開くと普通のマウスカーソルに戻る感じ・・・!

それでも微妙な時は、挙動を選べる設定を用意するのか丸いのかなと感じました。
そもそもクリック時の挙動を変えたいのが多分既存のDAWユーザーに配慮したいという意図だと思うので、エディタを起動した直後にDAWに慣れているかどうかを聞いて、YESだったらクリックで選択解除機能をオンにするのが良いのかな~~~と。。。

そういえばiOSのGarageBandはタップでノート追加なので、挙動を見てみました。大まかにこんな感じ!

  • 編集モード
    • 空欄をタップ:ノート追加、そのノートが選択状態
    • 選択状態で空欄をタップ:↑と同じ挙動
    • ノートをタップ:ノート削除
    • ノートの端っこを長押し:ノートの長さ変更
    • 空欄を長押し:詳細な位置に配置するモード
  • 編集じゃないモード(選択モードっぽい感じ、🔏アイコン)
    • 長押し:範囲選択開始

@romot-co
Copy link
Contributor Author

romot-co commented Oct 4, 2024

@Hiroshiba
ありがとうございます!
こちら実際試してみると確かにまあ微妙(やはり直感には反する)なので
試行しつつ考えられればと思います…!

案として破棄でもよさそうです(Ctrl+クリックで選択解除だけはいずれにせよあったほうがよさそう)

@sigprogramming
Copy link
Contributor

sigprogramming commented Oct 4, 2024

そもそもクリック時の挙動を変えたいのが多分既存のDAWユーザーに配慮したいという意図だと思うので

たぶん意図としては「グリッドをシングルクリックでノート追加」を可能にするためだと思います(違っていたらすみません…)、CubaseやStudioOneなどのDAWは、ツール(選択ツール、鉛筆ツールなど)を使用して編集を行うので、グリッドをシングルクリックしたときの動作(アクション?)の割り当てが競合することは無いと思います。

ツールなしのUIで、グリッドをクリックorドラッグしたときの動作に「選択解除」と「ノートの追加」を
割り当てるのであれば、

  • パターンA
    • 非選択時にグリッドをクリック → 何もしない
    • 選択時にグリッドをクリック → 選択解除
    • グリッドをドラッグ(選択状態は考慮せず)→ ノート追加
  • パターンB
    • 非選択時にグリッドをクリック → ノート追加
    • 選択時にグリッドをクリック → 選択解除
    • グリッドをドラッグ(選択状態は考慮せず)→ ノート追加

のどちらかになると思います。

ツールありのUIなら、以下も可能だと思います。

  • パターンC
    • 選択ツール時
      • 非選択時にグリッドをクリック → 何もしない
      • 選択時にグリッドをクリック → 選択解除
      • グリッドをドラッグ(選択状態は考慮せず)→ 範囲選択
    • 鉛筆ツール時
      • 非選択時にグリッドをクリック → ノート追加
      • 選択時にグリッドをクリック → ノート追加
      • グリッドをドラッグ(選択状態は考慮せず)→ ノート追加

ちなみに、SynthVはツールありのUIですが、鉛筆ツール時はパターンAの挙動でした。
Cubase、VoiSonaはパターンCの挙動でした。

現在のPRの挙動はパターンBで、これのメリットは「シングルクリックでノート追加」が可能なことだと思いますが、私も選択状態で挙動が変わるのは不自然に感じるので、アイコン変更でも不自然な場合はパターンAが良いかなと思います。
ただパターンAも、初めて使うユーザーにとっては直感的ではないかもしれないので、初回起動時に「グリッドをドラッグでノート追加」みたいな説明を表示した方が良いかもしれません。

また、現在のmainブランチの挙動はパターンCの鉛筆ツール時の挙動になっていますが、ツールなしのUIでこれは不便かなと思います(選択はクリックで簡単に行えるので、選択解除もキーを使用せずにクリックでできた方が直感的でよいと思います)

@romot-co
Copy link
Contributor Author

romot-co commented Oct 4, 2024

@sigprogramming @Hiroshiba
ありがとうございます!おおむねおっしゃる通りかと思います!


たぶん意図としては「グリッドをシングルクリックでノート追加」を可能にするためだと思います(違っていたらすみません…)

DAWに沿うというよりは、Sigさまのおっしゃっている意図になります。

  • 基本操作でのツール選択を最低限にしたい
  • 現状の実装では選択後の解除が難しい
    → 使いづらいのもありますが、おそらくは壊れやすく触りづらいUIに見えてしまう...ので改善したい(キャンセル可能に見せたい・エラー回避など)
  • 現状の状態を把握できるようにしたい(カーソルまたは他の方法で今できることを明示)
  • タッチデバイスでも矛盾はなくしておきたい

SynthVやDAWであれば少なくとも選択・編集ツール(モード)があり、それらを切り替える形です。
ただ多くが「選択」といっても単機能ではなく、ダブルクリックで追加もできるマルチな形です。
(ツール切り替えというよりは選択のみ / 編集可能の切り替えの亜種っぽく思える

  • パターンC"
    • 選択
      • ノート非選択時にグリッドをクリック → 何もしない
      • ノート選択時にグリッドをクリック → 選択解除
      • グリッドをドラッグ → 範囲選択
      • グリッドをダブルクリック → ノート追加
    • 編集
      • ノート非選択時にグリッドをクリック → 何もしない
      • ノート選択時にグリッドをクリック → 選択解除
      • グリッドをドラッグ → ノート追加
      • グリッドをダブルクリック → なにもしない

このパターンでの「選択」に寄せてしまうのもありかと思いますが、
ダブルクリックは意図しない追加を防げるものの入力のしづらさにもつながるので
もう少し考えられればと思います…!


※ 選択・編集についてはスプレッドシートかなにかにまとめた気もする(わかりづらい)
https://docs.google.com/spreadsheets/d/1ltGxtvCoUhDiX06F8E1-Tf1TWlC9XM98ESBNOIHUYjw/

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 4, 2024

@sigprogramming

たぶん意図としては「グリッドをシングルクリックでノート追加」を可能にするためだと思います

なーーーーるほどです!!!
僕はクリックで音符が入力されるのがほぼネイティブなので、こっち基準で考えてました。
「なんでクリックで音符が入力されないんだろう」と思えるくらいには。
(3年前にCeVIOを1ヶ月触ったはずですが。。)


クリックでノート入力ネイティブ勢としての感想を書いてみます!

改めてVOICEVOXソング触ってみたのですが、左手がキーボードにない状態で選択解除したくなる機会があまりないかもと感じました。
ノートを編集したあとは再生位置を良い感じにするためにルーラーをクリックして再生ヘッドを移動させるので、選択状態が解除されるなーと。
shiftで複数選択したあと解除したくなったら、まあ左手はキーボードにあるのでEscを押しやすいかもです。
(Esc押せば良いということに気付けないのが真の問題、という説もありそう。)

そういえば、「シーケンサーをクリックしたら選択が解除できる」と、そもそも考えたことがないかもです。
もちろんファイラーとか、背景クリックに選択解除以外の意味がない場合はクリックしますが、シーケンサーではそもそもその発想が出ないなぁと。
実際Voisonaの「クリックしてノート入力」をONにして使うと、同じ気持ちになるんじゃないかなと思いました。ずっとペンカーソルなので、ペン持ってる気持ち。

あ、Voisonaは何度か触った程度ですが、だいぶ使いやすく感じました。
クリックしてノート入力をONにしていて、かつ編集ツール以外どれも使わないです。
ちなみにVoisonaは、コピペ時やノート移動終了時にノート選択が自動的に解除される設計になってました。
(これはこれで、複数選択してノート移動し間違えると選び直しになるなどの課題がありそうでした。)


最高の落とし所探したいですねぇ。。。。。。だいぶ考えても思いつかない・・・・・・。

良い案が思いつくまで、Voisonaみたいにクリック時の挙動を選べるようにするのもありかも・・・・・。
実験的機能みたいな立ち位置で・・・。まあ更に変更するときにしんどいのですが。。。。

@sigprogramming
Copy link
Contributor

@romot-co

スプレッドシートの共有ありがとうございます!
各ソフトの動作や、UIで考えるポイント、なるほどです!

このパターンでの「選択」に寄せてしまうのもありかと思いますが

編集優先のUIにするのであれば、「編集」に寄せた方が良いと思います!
「追加、リサイズ、移動、削除、歌詞編集」の5つが編集で必須の操作で、
「複数選択、選択解除」はコピペ時(フレーズを複製したいとき)に使用する(比較的使う頻度の低い)操作だと思います。
なので、「編集」に寄せることを考えると、

  • 「ノート追加」は「グリッドをダブルクリック」に割り当てない
  • 「グリッドをドラッグ」には「複数選択」ではなく「ノート追加」を割り当てる

ほうが良いかなと思います。


@Hiroshiba

そういえば、「シーケンサーをクリックしたら選択が解除できる」と、そもそも考えたことがないかもです。
もちろんファイラーとか、背景クリックに選択解除以外の意味がない場合はクリックしますが、シーケンサーではそもそもその発想が出ないなぁと。
実際Voisonaの「クリックしてノート入力」をONにして使うと、同じ気持ちになるんじゃないかなと思いました。ずっとペンカーソルなので、ペン持ってる気持ち。

私はペンカーソルだと「ノート追加」が自然に感じますが、矢印(デフォルト)カーソルだと「すべて選択解除」が自然に感じます。
また、オブジェクトを選択可能なとき、オブジェクト以外をクリックしたときは「すべて選択解除」になってほしい(他に選択解除する方法が思いつかない)です。

あ、Voisonaは何度か触った程度ですが、だいぶ使いやすく感じました。
クリックしてノート入力をONにしていて、かつ編集ツール以外どれも使わないです。
ちなみにVoisonaは、コピペ時やノート移動終了時にノート選択が自動的に解除される設計になってました。
(これはこれで、複数選択してノート移動し間違えると選び直しになるなどの課題がありそうでした。)

「すべて選択解除」が必要になるのは「コピペを行うとき」かつ「選択範囲を変えたいとき」だと思います。

たとえばVoiSonaでペンツールを使用して「ドレミ」を打ち込んだとして、「ドレミ」を選択した後に「レミ」のみコピペしたくなった時、「ド」を選択解除するには

  • 選択ツールに切り替える
  • ルーラーをクリック(再生ヘッドを移動)
  • Escキーを押す

のいずれかを行う必要があります。

個人的には一番わかりやすいのは「選択ツールに切り替えてグリッドをクリック」だと思います。

「ルーラーをクリック」で「選択解除」になることは、たぶん初心者はすぐ気づけないと思います。
(「ルーラーをクリックしたらなぜか選択が解除された」になると思います)

「Escキー」も、イディオムを知っている人(PCに慣れている人)であれば分かると思いますが、知らない人は分からないし、説明がないと気づけないと思います。
これをメインの「すべて選択解除」の方法として採用するのであれば、ヘルプテキストは必須だと思います。
ちなみに私は「Escキー」は普段あまり使用しておらず、選択解除するときは選択ツールに持ち替える派です。

「右クリック(コンテキストメニュー)」だと、これもイディオムにはなると思いますが「右クリックメニュー」は「Escキー」よりは知られていると思うので、初心者でも気づけるかもです。


「基本操作でのツール選択を最低限にする」という方針で、操作の割り当てを実際に(考えながら)行ってみました。

操作の割り当てを実際に行ってみた

編集を優先で(編集志向で)考えるなら、まずは

  • ノート追加
  • ノートリサイズ
  • ノート移動
  • ノート削除
  • ノートの歌詞編集

の5つの操作ができればひとまず問題はないかなと思います。

ひとまず

  • GUIのみで(キーボードを使用せずに)これらの操作を可能にする
    • 中ボタンなし(マウスによっては固い・滑って押しにくい)
  • ツールなし

で考えると、

  • ノート追加 → グリッドをドラッグ
  • ノートリサイズ → ノートの端をドラッグ
  • ノートの歌詞編集 → ノートをダブルクリック
  • ノート移動 → ノートをドラッグ
  • ノート削除 → ノートを右クリックしてコンテキストメニューの削除をクリック

この割り当てが無難かなと思います。(他のソフトも、ほぼほぼこの割り当てでした)
StudioOneのペンツールでは「ノート削除」が「ノートをクリック」に割り当たっていますが、この形にすると「歌詞編集」を「ノートをダブルクリック」に割り当てることができなくなります。

まだ割り当てが行えるので、コピー・ペーストを行う際に必要な操作を割り当てることを考えます。

  • ノート複数選択(矩形選択含む)
  • すべて選択解除

この2つがコピー・ペーストを行う際に必要ですが、「ノート追加」を「グリッドをドラッグ」に割り当て済みなので、「GUIのみで(キーボードを使用せずに)」かつ「ツールなし」という制限があると、「複数選択」を割り当てることはできません。

「GUIのみで(キーボードを使用せずに)」を優先する場合

「ツールなし」という制限を外して考えると(選択ツール・編集ツールの2つを切り替えて使用する形)、「複数選択」は選択ツールの「グリッドをドラッグ」に割り当てることができます。
「すべて選択解除」も、選択ツールの「グリッドをクリック」に割り当てることができます。

「ノート追加」等の使用頻度の高い操作(基本の編集操作)を編集ツールに、
「複数選択」等の使用頻度の低い操作(コピペ時の操作)を選択ツールに、という考えで、
これでひとまず「基本操作でのツール選択を最低限に」できるかなと思います。

整理すると以下のようになります。

ツール PC 割り当てた操作 空いているところの割り当て案
編集 グリッドをクリック - ノート追加
編集 グリッドをダブルクリック - なし
編集 グリッドをドラッグ ノート追加 -
編集 ノートをクリック - ノート単体選択
編集 ノートをダブルクリック ノートの歌詞編集 -
編集 ノートをドラッグ ノート移動 -
編集 ノートの端をドラッグ ノートリサイズ -
編集 ノートを右クリック(コンテキストメニュー) ノート削除 -
選択 グリッドをクリック すべて選択解除 -
選択 グリッドをダブルクリック - ノート追加
選択 グリッドをドラッグ 矩形選択 -
選択 ノートをクリック - ノート単体選択
選択 ノートをダブルクリック - ノートの歌詞編集
選択 ノートをドラッグ - ノート移動
選択 ノートの端をドラッグ - ノートリサイズ
選択 ノートを右クリック(コンテキストメニュー) - ノート削除

「ツールなし」を優先する場合

「GUIのみで(キーボードを使用せずに)」という制限を外して考えると、
「複数選択」は

  • 修飾キー + グリッドをドラッグ
  • 修飾キー + ノートをクリック

等に割り当てることができ、
「すべて選択解除」は

  • 修飾キー + グリッドをクリック
  • Escキー
  • グリッドをクリック
  • 右クリック(コンテキストメニュー)

等に割り当てることができます。
(「修飾キーを押していないときは編集ツール、修飾キーを押しているときは選択ツール」と捉えることもできるかもしれません)

ここで、「グリッドをクリック」に「ノート追加」と「すべて選択解除」のどちらを割り当てるかを考えます。

「グリッドをクリック」に「ノート追加」を割り当てる

  • メリット
    • 「ノート追加」の方法として気づきやすい(初心者に優しい)
  • デメリット
    • グリッドをクリックしただけでノートが追加されてしまう(誤入力しやすい)
    • 「すべて選択解除」の方法が分かりにくくなる
      • 「複数選択」を「修飾キー + グリッドをドラッグ」に割り当てることを考えると、
        「すべて選択解除」が「修飾キー + グリッドをクリック」なのは予想しやすいかもしれない

「グリッドをクリック」に「すべて選択解除」を割り当てる

  • メリット
    • 「すべて選択解除」の方法として気づきやすい
      • 「すべて選択解除」は「ノート追加」より使用頻度低そう
      • これがメリットになるのは「違う範囲を選択したいけど選択解除の方法が分からない」ときだけかもしれない
    • 「グリッドをクリックしただけでノートが追加される」ということがない(誤入力を防げる)
    • 「グリッド上で矢印カーソル」の場合はこちらの方が自然かも
  • デメリット
    • 「ノート追加」の方法が分かりにくくなる
      • 「ノート追加」の方法が「グリッドをドラッグ」だけになる
      • 「グリッド上で鉛筆カーソル」にできない(SynthVは鉛筆ツールでもずっと矢印カーソル)

初心者に優しいUIにするのであれば、「グリッドをクリック」に「ノート追加」を割り当てるのが良さそうです。
慣れてきた人向けの(コピペしやすい)UIにするのであれば、「グリッドをクリック」に「すべて選択解除」を割り当てても良いかもです。

選択状態で「選択解除」と「ノート追加」を切り替える形

現在のPRの形ですが、cloneして試してみたところ、「ノート追加」をしたいけど「選択解除」になってしまうことがたまに起こるように感じました。
具体的には、選択中のノートが「画面外またはユーザーの注視領域の外」にある場合に「グリッドをクリック」が「選択解除」になることをユーザーが予見できない感じです。
(選択状態に応じてカーソルアイコンを切り替えることで改善できるかもですが、試してみないと分からない)

ひとまず「グリッドをクリック」に「ノート追加」を割り当てて、
「すべて選択解除」は冗長性を持たせて

  • 修飾キー + グリッドをクリック
  • Escキー
  • グリッドを右クリック(コンテキストメニュー)

に割り当てるとして、整理すると以下のようになります。

PC 割り当てた操作 空いているところの割り当て案
グリッドをクリック ノート追加 -
修飾キー + グリッドをクリック すべて選択解除 -
グリッドをダブルクリック - なし
グリッドをドラッグ ノート追加 -
修飾キー + グリッドをドラッグ 矩形選択 -
グリッドを右クリック(コンテキストメニュー) すべて選択解除 -
ノートをクリック - ノート単体選択
修飾キー + ノートをクリック ノート複数選択 -
ノートをダブルクリック ノートの歌詞編集 -
ノートをドラッグ ノート移動 -
ノートの端をドラッグ ノートリサイズ -
ノートを右クリック(コンテキストメニュー) ノート削除、すべて選択解除 -
Escキー すべて選択解除 -

@romot-co
Copy link
Contributor Author

romot-co commented Oct 7, 2024

@sigprogramming
(取り急ぎ)
整理いただきありがとうございます!
すごく網羅的で、個人的にも各点納得できる形です…!

以下、補足ぐらいの感じです。


ツール選択について

最終的にはツール切り替えが必要になってくると思っています(たとえばハサミツール加えたい…となった時に無理がある)

  • なるべくツール切り替えで思考や作業フローを止めたくない
  • タッチデバイスでつらくなりがち

あと

  • (経験上)ツール選択を先に用意してしまうとそちらに追加して終わりになってしまうので粘りたい(けどこれは杞憂だった…)

あたりが理由なので、今後必要時点でツールパレットを用意してもいいかなと…!


いわゆるシグニファイヤについて

私はペンカーソルだと「ノート追加」が自然に感じますが、矢印(デフォルト)カーソルだと「すべて選択解除」が自然に感じます。

こちら、全般に今見えている・触れているものについて
なにができるかを明確にする・行えることへの手がかりとっかかりを用意する必要があるかと思っています…!

ex: ノート追加できる状態であれば、ペンカーソルにする

↑ おっしゃる通りこれは自然かなあと

ペンカーソルについてはどんな動作になるか試してみたのが以下にあるため、
必要であれば試していただければ幸いです!

#2039 (comment)

ノートを追加後に選択状態にする場合の試行実装:
https://github.com/romot-co/voicevox/tree/feature/2039_sequencer_click_mode_plan_a

ノートを追加後に選択状態にしない場合の試行実装:
一般的かは謎なものの、個人的にはこれが入力しやすい…
https://github.com/romot-co/voicevox/tree/feature/2039_sequencer_click_mode_plan_b


ユーザーについて

  • ユーザー

    • 初心者ユーザー
    • 既存のDAWなどに慣れてるユーザー
  • 学習

    • 最初の学習の容易さ
    • 学習後の長期効率性

あたりを考えるのが良さそうかな?と…!

@Hiroshiba
Copy link
Member

@sigprogramming

また、オブジェクトを選択可能なとき、オブジェクト以外をクリックしたときは「すべて選択解除」になってほしい(他に選択解除する方法が思いつかない)です。

なーーーーーーーるほどです!!!! ここが根幹だなと感じました!!!

「ルーラーをクリックしたらなぜか選択が解除された」になると思います

これもたしかに。まあ「そういうもんだ」となりそうですが、気づかないというのはそうかもです。

デメリット
グリッドをクリックしただけでノートが追加されてしまう(誤入力しやすい)

これはペンアイコンにしてるとかなり低減できるかもと、VoiSona見て感じました。
(VoiSonaは編集中ずっとペンマーク)

「修飾キーを押していないときは編集ツール、修飾キーを押しているときは選択ツール」と捉えることもできるかもしれません

・・・この考え方結構ありかもと感じました!!!
いろいろ詰めないとかもですが、面白いアイデアだなと!


別アイデアですが、ツールなしでも削除のように 右クリック→選択解除・範囲選択開始 とかはできなくはないかも・・・?
もちろん分かりづらいけど・・・!

@sigprogramming
Copy link
Contributor

@romot-co

ペンカーソルについてはどんな動作になるか試してみたのが以下にあるため、
必要であれば試していただければ幸いです!

ありがとうございます!
cloneして試してみました。

カーソルが変わるようになったので不自然さは減ったと思いますが、選択状態で挙動が変わる(1回目のクリックで選択解除、2回目のクリックでノート追加になる)のは、やっぱり少し複雑に(認知負荷が高いUIに)感じました。
ずっと使っていたら慣れるかもしれませんが、初心者向きではないかもです。
PCではなくタッチデバイスだと意外とこの挙動の方が使いやすいかも…?

また、以下を行うと打ち込みやすくなるかもと思いました。

  • 「移動後」や「リサイズ後」も選択状態にしないようにする
  • 「ノート選択時にドラッグ」でも「ノート追加」できるようにする

@Hiroshiba

別アイデアですが、ツールなしでも削除のように 右クリック→選択解除・範囲選択開始 とかはできなくはないかも・・・?
もちろん分かりづらいけど・・・!

右クリック時に選択開始位置が決まる形は結構特殊かもと思いました…!
試してみないと分からないですが、「右クリック」よりは「修飾キー + グリッドをドラッグ」の方が使いやすいかもです。

@Hiroshiba
Copy link
Member

@sigprogramming

「移動後」や「リサイズ後」も選択状態にしないようにする

Voisonaがこの仕様なのですが、たくさんのノートを移動して配置をミスったときまた選択し直しになるんですよね・・・。

右クリック時に選択開始位置が決まる形は結構特殊かもと思いました…!
試してみないと分からないですが、「右クリック」よりは「修飾キー + グリッドをドラッグ」の方が使いやすいかもです。

あっすみません!
右クリックメニューに選択解除や範囲選択開始メニューアイテムを追加する、という意図でした 🙇
もちろん最高のアイデアだとは思ってないのですが、この考え方もあるなくらいの気持ちです 🙏

@sigprogramming
Copy link
Contributor

sigprogramming commented Oct 8, 2024

@Hiroshiba

Voisonaがこの仕様なのですが、たくさんのノートを移動して配置をミスったときまた選択し直しになるんですよね・・・。

確かに配置をミスったときに選択し直しになってしまいますが、打ち込み時に「位置を修正したい」「リサイズしたい」というのは結構頻繁にあると思います(コピペより頻度は多いと思います)、その後ノートを打ち込もうとしたときに、plan_bブランチの挙動だと2回のクリック(選択解除→ノート追加)が必要になります。

plan_bブランチの挙動(ノート追加後に選択状態にしない)にするのであれば、移動後とリサイズ後も選択状態にしないようにするのが自然で打ち込みやすいかなと思いました!

あっすみません!
右クリックメニューに選択解除や範囲選択開始メニューアイテムを追加する、という意図でした 🙇
もちろん最高のアイデアだとは思ってないのですが、この考え方もあるなくらいの気持ちです 🙏

なるほどです!
右クリックして「範囲選択開始」をクリックすると一時的に「範囲選択(矩形選択)モード」になる形でしょうか?

@Hiroshiba
Copy link
Member

@sigprogramming

plan_bブランチの挙動だと2回のクリック

あ〜〜なるほどです。なかなかな二択ですね。。

右クリックして「範囲選択開始」をクリックすると一時的に「範囲選択(矩形選択)モード」になる形でしょうか?

右クリックメニューがあるな〜ってのが主旨だったのでちゃんと考えてなかったですが、そうなると思います!
ツール禁止縛りだとこうなりそう。


全然関係ないですが、CAD?の動画見てたとき、右方向にドラッグした場合と、左方向にドラッグした場合で意味が変わってて驚きました。
ノートを書くときにドラッグするのは必ず左右なので、もし、もし仮に左右ドラッグと上下ドラッグに別の意味をもたせる合理的な手段があれば、「上下ドラッグは範囲選択」とできる。。。。。。。かも。。。。。。。。。。。。。。。

@romot-co
Copy link
Contributor Author

romot-co commented Oct 8, 2024

いくつかの有名アプリを調べてみたのですが
おそらくすべて慣れの産物で自然というものがないかも…?です

軽く調査した限りでは連続的な追加を行いたいか否かで分かれそうです


要素の追加・編集・削除が基本操作となるアプリにおいて

追加後に要素を選択・移動やリサイズ後も選択

  • Adobe系アプリやFigmaなどグラフィック系ツール全般
  • Apple iMovie
  • Github Projects

追加後に要素を選択しない・移動やリサイズ後は選択

  • Microsoft Excel / Googleスプレッドシート
  • Appleカレンダー / Googleカレンダー ※ 追加時点で詳細を入力し、追加終了は確定の意味合いが強い
  • Trello / Asanaなどタスク管理

  • 連続的な追加を頻繁に行いたいアプリにおいてはplan_b的な動作
  • 追加がテンポラリであり追加後に編集が頻繁なアプリはplan_a的な動作

という傾向かな、と
なにを求めているか・自然かは人によって変わりそうなので

  • ツールパレットから選択式にする
  • デフォルトの操作系を変更できるようにする

のどちらかがよさそうかもです

@sigprogramming
Copy link
Contributor

sigprogramming commented Oct 9, 2024

@romot-co

いくつかの有名アプリを調べてみたのですが
おそらくすべて慣れの産物で自然というものがないかも…?です

確かに、「これが自然」というものはないかもです、ソフトごとに想定されている編集フロー(操作を行う順番、各操作の頻度など)があって、それがユーザーの編集フローをカバーしていて(もしくはユーザーが容易に学習できて)、編集が行いやすいUIになっているときにユーザーが「自然なUI」と感じるのかなと思います。
(「自然なUI」というより「使いやすいUI」かも)

軽く調査した限りでは連続的な追加を行いたいか否かで分かれそうです

midi等を読み込まずに一から打ち込んでいく場合は、連続的な追加を高頻度で行うことになると思います。


追加後に要素を選択しない形(plan_b)ですが、これは「選択状態でノート追加と選択解除が切り替わる形」にしたときにノート追加を連続で行いやすくする(1回のクリックでノート追加を行えるようにする)のが主な目的という認識です。

plan_bにすることで「追加→追加→追加…」は行いやすくなりますが、「追加→リサイズ→追加→移動→追加…」は行いにくいままになると思います。これが個人的に気になっていて、

  • 「追加、移動、リサイズ、歌詞編集、削除」の5つはどれも必須の操作
  • 「すべて選択解除」は一括編集・コピペ時(作業を効率化するため)に必要な、必須ではない操作

だと思います。
plan_bは「すべて選択解除」のために「移動後・リサイズ後の追加」がしにくくなっていて、少しちぐはぐな感じがします。

また、「選択状態でノート追加と選択解除が切り替わる形」は、「初心者ユーザー」はたぶん複雑に感じ、「既存のDAWなどに慣れてるユーザー」はplan_bの挙動だと移動後・リサイズ後の追加がしにくいので使いにくく感じる気がします。

なので、ツールなしのUIにするのであれば「選択状態でノート追加と選択解除が切り替わる形」にせずに、

  • グリッドをクリック
  • 修飾キー + グリッドをクリック

のどちらか(+Escキー)に選択解除を割り当てるのが良いかなと思います。

ツールパレットから選択式(ツールあり)にしても良いと思います。(初心者はこちらの方が使いやすい気がします)

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 9, 2024

  • ツールパレットから選択式にする
  • デフォルトの操作系を変更できるようにする

のどちらかがよさそうかもです

  • グリッドをクリック
  • 修飾キー + グリッドをクリック

のどちらか(+Escキー)に選択解除を割り当てるのが良いかなと思います。

どちらも賛成です!全部実装しちゃうのもありだともちょっと思います。
たぶん一番簡単なのは、デフォルトの操作系を変更できるようにする(=グリッドをクリックの実装)で、追加で修飾キー + グリッドをクリックも実装が簡単だからありかも?

ツールパレットから選択式にするはモードが増えるから実装が少し大変だけど、 @sigprogramming さんの仰るとおりそこそこ分かりやすい選択解除になるのと、よくよく考えるとスマホで範囲選択しようとするとこのモードが必須な気がするので、実装するのは反対じゃないです!
あと個人的には右クリックメニューにも選択解除置いとくのもそこそこ分かりやすいのではという気がしてます。

ぐるーーーーーーーーっと全部見て回って考えまくってこの結論だったら、割と自信を持てるのではと感じます!!
(実はまだ最高の答えはあるんじゃないかという若干の心残りはほんの少しだけありますが。。。。。。)

@romot-co
Copy link
Contributor Author

@sigprogramming @Hiroshiba
ありがとうございます!
詳細見きれていないのですが、とりあえずプロトタイプでありそうなの全部実装して試してみるとかもありかもと思っています…!
基本操作だけにコストかける価値あるかなーと

簡易になりそうですがやってみます…!

@sigprogramming
Copy link
Contributor

sigprogramming commented Oct 10, 2024

@Hiroshiba

あと個人的には右クリックメニューにも選択解除置いとくのもそこそこ分かりやすいのではという気がしてます。

すみません右クリックメニューを忘れていました…!!右クリックメニューも良いと思います!

グリッドをクリック右クリックメニューは同じくらいの分かりやすさだと思うので、右クリックメニューに選択解除を置くのであれば、グリッドをクリックには選択解除を割り当てなくても(グリッドをクリックはノート追加にしても)良いかもしれません。

割り当てのイメージ

#2279 (comment)「ツールなし」を優先する場合の割り当てです)

PC 操作
グリッドをクリック ノート追加
修飾キー + グリッドをクリック すべて選択解除
グリッドをダブルクリック なし
グリッドをドラッグ ノート追加
修飾キー + グリッドをドラッグ 矩形選択
グリッドを右クリック(コンテキストメニュー) すべて選択解除
ノートをクリック ノート単体選択
修飾キー + ノートをクリック ノート複数選択
ノートをダブルクリック ノートの歌詞編集
ノートをドラッグ ノート移動
ノートの端をドラッグ ノートリサイズ
ノートを右クリック(コンテキストメニュー) ノート削除、すべて選択解除
Escキー すべて選択解除

@romot-co
Copy link
Contributor Author

@Hiroshiba @sigprogramming
(わかりづらいですが)
いったん各操作選べるように実装してみました
#2039 (comment)

@romot-co
Copy link
Contributor Author

Ctrl or Command + クリックで追加もありえそうだけど後日(たぶんピッチの逆みたいな感じになる)

@romot-co
Copy link
Contributor Author

romot-co commented Dec 1, 2024

(整理)別のIssue/PRに発展したためクローズします…!

#2367

@romot-co romot-co closed this Dec 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants