provisional: PHY Editorの所感(作り直し1回目)を追記する
作り直したモックを触った所感を、見出しごとに整理して残す。 選択枠の重なり順、キー追加の位置、長押しの方式比較、原点表示、 switchOffsetの入力欄、スイッチ・スタビライザー位置のオーバーレイなど。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
This commit is contained in:
@@ -1,39 +1,105 @@
|
|||||||
# PHY Editor モックの所感(画面仕様の入力)
|
# PHY Editor モックの所感(画面仕様の入力)
|
||||||
|
|
||||||
|
## 作り直し1回目(T-29)を触った所感
|
||||||
|
|
||||||
|
**仕様ではない。** 括弧内の「モックでは」はコードで確かめた現状。
|
||||||
|
|
||||||
|
### 選択の表示
|
||||||
|
|
||||||
|
- 選択枠が細くて見づらい。もっと太くする。
|
||||||
|
- 選択枠が、後から描かれた隣のキーの下に隠れる。選択枠は他のキーより手前に描く。
|
||||||
|
|
||||||
|
### キャンバス操作
|
||||||
|
|
||||||
|
- キーをドラッグして画面の端まで持っていっても、キャンバスがスクロールしない。
|
||||||
|
|
||||||
|
### キーの追加
|
||||||
|
|
||||||
|
- 追加したキーが既存のキーに重なる(モックでは、最後に選んだキーの右隣、同じ親の中に置く)。
|
||||||
|
- 案: IDXで出た行の判定規則を流用し、選択中のキーの行の右端に追加する。
|
||||||
|
- ロウスタッガードでもカラムスタッガードでも同じ規則を使う。カラムスタッガードでは、追加したキーが
|
||||||
|
想定の縦ずれと違う位置に出ることがあるが、利用者が直せばよい。
|
||||||
|
|
||||||
|
### クラスターの表示
|
||||||
|
|
||||||
|
- クラスター名だけでなく原点も表示したい。原点に丸などを出す。
|
||||||
|
- 選択中のクラスターだけに出す。選択していないクラスターにも出すと、画面がごちゃごちゃする。
|
||||||
|
|
||||||
|
### 長押しでの選択の切り替え
|
||||||
|
|
||||||
|
- 切り替えが思ったより早い。もう少し余裕を持たせる(モックでは、押してから500msで始まり、450msごとに次へ進む)。
|
||||||
|
- 今の見た目では分かりづらい。案:
|
||||||
|
- カーソルの周りに円形のインジケータを出し、次に切り替わるタイミングを見せる。
|
||||||
|
- 押している場所にある選択先の一覧と、今どれが選ばれているかをリストで見せる。
|
||||||
|
- リストを出すなら、ループで待つより、長押しでリストを出して自分で選ぶほうが速いかもしれない。
|
||||||
|
- 作り直しでは、ループ方式(円形インジケータとリスト付き)と、長押しでリストを出して選ぶ方式の両方を入れ、切り替えて比べる。
|
||||||
|
|
||||||
|
### バリアント
|
||||||
|
|
||||||
|
- 切り替えのポップオーバーで、どちらを表示していても Option A に印が付いている
|
||||||
|
(モックでは、印は既定のバリアントを示す。初版「バリアントの切り替え」のとおり)。
|
||||||
|
- 既定の印のままでよい。既定の印だと分かる見た目にする(「既定」と書くなど)。
|
||||||
|
- バッジの外にバリアント名がはみ出しているように見える(モックでは、バッジの枠は26px四方で、
|
||||||
|
その中に表示中のバリアント名を書いている。名前が長いと枠からはみ出す)。
|
||||||
|
- 案: 名前を書かずバッジだけにする、またはバッジの中に名前を収める。
|
||||||
|
- クラスター内のキーを選んでバリアントグループを作ると、クラスターの外に作られる。クラスターの中に作るほうがよい。
|
||||||
|
|
||||||
|
### パネル
|
||||||
|
|
||||||
|
- 「階層」ボタンで階層パネルを閉じると、キャンバスが階層パネルの幅に、プロパティ欄がキャンバスの幅に詰まり、右側に隙間が空く。
|
||||||
|
- 閉じたときは、キャンバスが広がって空いた幅を埋める。
|
||||||
|
|
||||||
|
### 表示の補助
|
||||||
|
|
||||||
|
- スイッチ位置・スタビライザー位置の想定をオーバーレイ表示したい。
|
||||||
|
- 普段は非表示にし、どこかにトグルを置く。
|
||||||
|
- 色違いの十字で示す。
|
||||||
|
- スタビライザー位置はキーの幅から推定して表示だけする(データは変えない)。
|
||||||
|
- スイッチ位置のオフセット(`switchOffset`)はPHYのデータにあるが、モックのプロパティ欄では入力できない。
|
||||||
|
スタビライザー位置はPHYのデータに無い。
|
||||||
|
- スイッチの中心がずれるキーが何種類かあるので、プロパティ欄に `switchOffset` の入力欄を置く。
|
||||||
|
ボタンやキー操作で変える手段は要らない。
|
||||||
|
|
||||||
|
### 後回し
|
||||||
|
|
||||||
|
- アイコンが分かりづらい。後で作り直す。モックの間はこのままでよい。
|
||||||
|
|
||||||
|
## 以下初版
|
||||||
|
|
||||||
モックを触った所感と、それを受けた議論の整理。**仕様ではない。**
|
モックを触った所感と、それを受けた議論の整理。**仕様ではない。**
|
||||||
画面仕様を一から作るときの入力にし、仕様へ反映したら消す。
|
画面仕様を一から作るときの入力にし、仕様へ反映したら消す。
|
||||||
|
|
||||||
## 方向が合意できたもの
|
### 方向が合意できたもの
|
||||||
|
|
||||||
### 選択
|
#### 選択
|
||||||
|
|
||||||
- 何を選択しているかが一目で分かること(モックは選択枠がほぼ見えない。下記「モックの実装上の問題」)。
|
- 何を選択しているかが一目で分かること(モックは選択枠がほぼ見えない。下記「モックの実装上の問題」)。
|
||||||
- クリックでの追加選択は1件ずつのトグルのみ(連続選択の「順番」は作らない)。
|
- クリックでの追加選択は1件ずつのトグルのみ(連続選択の「順番」は作らない)。
|
||||||
- 複数選択はキャンバス上のドラッグ(範囲選択)でもできる。
|
- 複数選択はキャンバス上のドラッグ(範囲選択)でもできる。
|
||||||
- キャンバスでクリックすると、それまでの選択によらずキーが選ばれる。
|
- キャンバスでクリックすると、それまでの選択によらずキーが選ばれる。
|
||||||
- クラスターは長押しで選ぶ。押している間、一定間隔で選択先が直近の親から順に上がり、
|
- クラスターは長押しで選ぶ。押している間、一定間隔で選択先が直近の親から順に上がり、
|
||||||
一番上の親の次はキーに戻ってループする。離したときの状態で選択が確定する。途中の選択先はインジケータで示す。
|
一番上の親の次はキーに戻ってループする。離したときの状態で選択が確定する。途中の選択先はインジケータで示す。
|
||||||
- Shift+長押しで、クラスターを選択に足せる。
|
- Shift+長押しで、クラスターを選択に足せる。
|
||||||
- 親とその配下は同時に選択しない(変換が二重にかかるだけで、使い道がない)。
|
- 親とその配下は同時に選択しない(変換が二重にかかるだけで、使い道がない)。
|
||||||
- クラスターは長押しのほか、階層パネルとキー操作(親へ上がる・子へ降りる)でも選べる。長押しはヘルプで案内する。
|
- クラスターは長押しのほか、階層パネルとキー操作(親へ上がる・子へ降りる)でも選べる。長押しはヘルプで案内する。
|
||||||
- タッチ操作(長押しが標準のメニューと重なる)は当面考えない。
|
- タッチ操作(長押しが標準のメニューと重なる)は当面考えない。
|
||||||
- 何もない場所のクリック・Escで選択を外せる。クラスターの矩形の内側でもキーのない隙間は何もない場所として扱い、
|
- 何もない場所のクリック・Escで選択を外せる。クラスターの矩形の内側でもキーのない隙間は何もない場所として扱い、
|
||||||
クリックで選択を外し、ドラッグで範囲選択にする。
|
クリックで選択を外し、ドラッグで範囲選択にする。
|
||||||
|
|
||||||
### クラスター
|
#### クラスター
|
||||||
|
|
||||||
- クラスターの当たり判定・選択表示は子を囲む矩形。クラスターのローカル座標で取る(回転に追従するOBB)。
|
- クラスターの当たり判定・選択表示は子を囲む矩形。クラスターのローカル座標で取る(回転に追従するOBB)。
|
||||||
- 階層(ツリー)パネルはクラスター・VariantGroupの選択と構造の確認に必要。キーの一覧としては不要なので、キーは畳むなど目立たせない。
|
- 階層(ツリー)パネルはクラスター・VariantGroupの選択と構造の確認に必要。キーの一覧としては不要なので、キーは畳むなど目立たせない。
|
||||||
- VariantGroupはクラスターの一種という認識。移動・回転の「親」にVariantGroupも含む。
|
- VariantGroupはクラスターの一種という認識。移動・回転の「親」にVariantGroupも含む。
|
||||||
|
|
||||||
### フォーカスモード
|
#### フォーカスモード
|
||||||
|
|
||||||
- 特定のクラスター内だけを編集対象にし、他を薄く表示するモードを作る。
|
- 特定のクラスター内だけを編集対象にし、他を薄く表示するモードを作る。
|
||||||
- 入る: クラスターを選んだ状態でダブルクリック。ダブルクリックを始めた時点で選ばれていたクラスターに入る
|
- 入る: クラスターを選んだ状態でダブルクリック。ダブルクリックを始めた時点で選ばれていたクラスターに入る
|
||||||
(1回目のクリックで選択がキーに移っても、入る先は変わらない)。キーボードではEnter。
|
(1回目のクリックで選択がキーに移っても、入る先は変わらない)。キーボードではEnter。
|
||||||
- 出る: Esc。選択があるときのEscはまず選択を外し、選択がない状態のEscでフォーカスを抜ける。
|
- 出る: Esc。選択があるときのEscはまず選択を外し、選択がない状態のEscでフォーカスを抜ける。
|
||||||
|
|
||||||
### 移動・回転・サイズ
|
#### 移動・回転・サイズ
|
||||||
|
|
||||||
- 移動・サイズ変更・削除をキーボードで操作できる。削除は参照の確認(T-15)を省かない。確認は操作した場所の近くに出す。
|
- 移動・サイズ変更・削除をキーボードで操作できる。削除は参照の確認(T-15)を省かない。確認は操作した場所の近くに出す。
|
||||||
- 矢印キーでの移動方向は、直近の親(クラスター・VariantGroup)の軸方向。ドラッグと同じ。
|
- 矢印キーでの移動方向は、直近の親(クラスター・VariantGroup)の軸方向。ドラッグと同じ。
|
||||||
@@ -41,44 +107,44 @@
|
|||||||
- 複数選択に対して回転以外の操作(移動など)もできる。
|
- 複数選択に対して回転以外の操作(移動など)もできる。
|
||||||
- 複数キーを共通の中心で回したいなら、それはクラスターをなす。選択ノードを個別に回転する操作はそれとして残す。
|
- 複数キーを共通の中心で回したいなら、それはクラスターをなす。選択ノードを個別に回転する操作はそれとして残す。
|
||||||
|
|
||||||
### 表示
|
#### 表示
|
||||||
|
|
||||||
- キャンバスは画面サイズに追従する(モックは1152×896px固定)。
|
- キャンバスは画面サイズに追従する(モックは1152×896px固定)。
|
||||||
- 読み込み時は全体が収まり中央に来るようにズームする。同じ操作をボタン・キーでも呼べる(全体表示)。
|
- 読み込み時は全体が収まり中央に来るようにズームする。同じ操作をボタン・キーでも呼べる(全体表示)。
|
||||||
- ボタンはアイコン化したい。ツールチップを付ける。
|
- ボタンはアイコン化したい。ツールチップを付ける。
|
||||||
|
|
||||||
### 呼び方と見出し
|
#### 呼び方と見出し
|
||||||
|
|
||||||
- PHYの要素は、キー・クラスター・部品・バリアントグループ・バリアントと呼ぶ(仕様書の呼び方に揃える)。
|
- PHYの要素は、キー・クラスター・部品・バリアントグループ・バリアントと呼ぶ(仕様書の呼び方に揃える)。
|
||||||
「レイアウト」は配置全体を指す語(QMKの `LAYOUT_*`、KLE)とぶつかるので、バリアントの呼び名に使わない。
|
「レイアウト」は配置全体を指す語(QMKの `LAYOUT_*`、KLE)とぶつかるので、バリアントの呼び名に使わない。
|
||||||
- 階層の最上位は root と呼ぶ(フォーカス中のパンくずなど)。
|
- 階層の最上位は root と呼ぶ(フォーカス中のパンくずなど)。
|
||||||
- 別の親へ移す操作(reparent)は「移し先…」とし、行き先は候補の一覧(root・クラスター・バリアント)で見せる。
|
- 別の親へ移す操作(reparent)は「移し先…」とし、行き先は候補の一覧(root・クラスター・バリアント)で見せる。
|
||||||
「移動」は座標の移動と紛れるので使わない。
|
「移動」は座標の移動と紛れるので使わない。
|
||||||
- 見出しを付けすぎない。操作ボタンはキャンバスの上に置き、階層パネルは木だけにして見出しを付けない
|
- 見出しを付けすぎない。操作ボタンはキャンバスの上に置き、階層パネルは木だけにして見出しを付けない
|
||||||
(開閉ボタンのツールチップは「階層」)。キャンバスにも見出しを付けない。
|
(開閉ボタンのツールチップは「階層」)。キャンバスにも見出しを付けない。
|
||||||
- プロパティ欄の項目名はモックのままでよい。
|
- プロパティ欄の項目名はモックのままでよい。
|
||||||
|
|
||||||
### バリアントの切り替え
|
#### バリアントの切り替え
|
||||||
|
|
||||||
- キャンバス上で、バリアントグループの右上に小さなバッジを常に出し、クリックで開くポップオーバーからバリアントを選ぶ。
|
- キャンバス上で、バリアントグループの右上に小さなバッジを常に出し、クリックで開くポップオーバーからバリアントを選ぶ。
|
||||||
バリアントがどこにあるかを一目で分かるようにするため、選択中だけにしない。
|
バリアントがどこにあるかを一目で分かるようにするため、選択中だけにしない。
|
||||||
- バッジはグループの座標系(OBB)の右上に置く。文字は正立させ、大きさは画面上で固定する。フォーカス外では薄く表示する。
|
- バッジはグループの座標系(OBB)の右上に置く。文字は正立させ、大きさは画面上で固定する。フォーカス外では薄く表示する。
|
||||||
- キーでは V / Shift+V で次・前のバリアントへ送る。バリアントグループを1つ選んでいるときだけ効く。
|
- キーでは V / Shift+V で次・前のバリアントへ送る。バリアントグループを1つ選んでいるときだけ効く。
|
||||||
- 切り替えで隠れたノードの選択は、そのバリアントグループに移す。
|
- 切り替えで隠れたノードの選択は、そのバリアントグループに移す。
|
||||||
- ポップオーバーでは既定のバリアントを印で示すだけにする。既定の変更とバリアントの追加・削除はデータを変えるので、
|
- ポップオーバーでは既定のバリアントを印で示すだけにする。既定の変更とバリアントの追加・削除はデータを変えるので、
|
||||||
表示の切り替えと分けてプロパティ欄や操作ボタンで行う。
|
表示の切り替えと分けてプロパティ欄や操作ボタンで行う。
|
||||||
|
|
||||||
### コピー&ペースト
|
#### コピー&ペースト
|
||||||
|
|
||||||
- IDと参照の扱いは [仮決定 T-11](decisions.md#t-11-id)。
|
- IDと参照の扱いは [仮決定 T-11](decisions.md#t-11-id)。
|
||||||
- 貼り付け・複製したノードは、選択中のノードと同じ親に、元の位置からグリッド1刻みずらして置く。
|
- 貼り付け・複製したノードは、選択中のノードと同じ親に、元の位置からグリッド1刻みずらして置く。
|
||||||
選択がなければフォーカス先(フォーカス中でなければ root)の直下に置く。
|
選択がなければフォーカス先(フォーカス中でなければ root)の直下に置く。
|
||||||
- コピーした内容はアプリ内に持つ。システムのクリップボードからはKLE JSONだけを読む(別のプロジェクトへの貼り付けは当面作らない)。
|
- コピーした内容はアプリ内に持つ。システムのクリップボードからはKLE JSONだけを読む(別のプロジェクトへの貼り付けは当面作らない)。
|
||||||
- クリップボードのKLE JSONを貼り付けで取り込める。幾何だけを読み、新しいIDを振る(KLE取り込みと同じ経路で、手元のデータとは照合しない)。
|
- クリップボードのKLE JSONを貼り付けで取り込める。幾何だけを読み、新しいIDを振る(KLE取り込みと同じ経路で、手元のデータとは照合しない)。
|
||||||
|
|
||||||
## 要検討
|
### 要検討
|
||||||
|
|
||||||
### モックで試して決める
|
#### モックで試して決める
|
||||||
|
|
||||||
触って比べないと決まらないもの。
|
触って比べないと決まらないもの。
|
||||||
|
|
||||||
@@ -90,15 +156,15 @@
|
|||||||
- ホイールでのカーソル中心ズーム、ホバー時の強調(モックに無い。未議論)。
|
- ホイールでのカーソル中心ズーム、ホバー時の強調(モックに無い。未議論)。
|
||||||
- バリアントのバッジが隣のバッジやキーと重ならないか。V をグループ内のキーを選んでいるときにも(いちばん近いグループに)効かせるか。
|
- バリアントのバッジが隣のバッジやキーと重ならないか。V をグループ内のキーを選んでいるときにも(いちばん近いグループに)効かせるか。
|
||||||
|
|
||||||
### 画面仕様までに決める
|
#### 画面仕様までに決める
|
||||||
|
|
||||||
試さなくても決められる、または試す前に決めておく必要があるもの。
|
試さなくても決められる、または試す前に決めておく必要があるもの。
|
||||||
|
|
||||||
- タブ名と検証結果欄の呼び方。PHY・ELCなどのレイヤー名は設計上の仮称で、画面に出すかどうかは別途決める。
|
- タブ名と検証結果欄の呼び方。PHY・ELCなどのレイヤー名は設計上の仮称で、画面に出すかどうかは別途決める。
|
||||||
全エディタに共通するので、PHY Editorとは別に扱う。
|
全エディタに共通するので、PHY Editorとは別に扱う。
|
||||||
- 別のプロジェクトへ貼り付けられるようにする場合、貼り先に同じIDのProfileがない、またはIDが同じで中身が違うときの扱い。
|
- 別のプロジェクトへ貼り付けられるようにする場合、貼り先に同じIDのProfileがない、またはIDが同じで中身が違うときの扱い。
|
||||||
|
|
||||||
## モックの実装上の問題
|
### モックの実装上の問題
|
||||||
|
|
||||||
作り直しで解消する前提で、原因の記録だけ残す。
|
作り直しで解消する前提で、原因の記録だけ残す。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user