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

キャラクター選択ボタンでプロジェクト内のキャラクターを優先表示する #1535

Open
thiramisu opened this issue Sep 4, 2023 · 5 comments

Comments

@thiramisu
Copy link
Contributor

thiramisu commented Sep 4, 2023

内容

(モチベは共通なので#1334 から引用します)
キャラクターが多くなってきて全部表示してしまうと逆に使いにくいようになってきました。
この解決としてキャラクターの非表示機能などがありますが、非表示にしてしまうと偶然の出会いがなくなってしまうのでなるべく避けたい思いがあります。
(引用ここまで)

ちなみに、これまでに提案されてきた解決策としては以下があります。

この解決策の1つとして、キャラクター選択ボタンのドロップダウン内でプロジェクト内のキャラクターを優先表示してはどうかという提案です。
(以下、「プロジェクト内で利用していなかったキャラクターの選択」を「キャラ追加」、「プロジェクト内で過去に使ったキャラクターの選択」を「キャラ再利用」とします)

Pros 良くなる点

  • キャラクターがどれだけ増えてもキャラ追加時に探すだけで済むようになる
    • プロジェクト全体の操作量としては、ほぼO(Characters・TextCells)からO(Characters)になる
  • ウィンドウのheightが小さい場合の使い勝手が少し良くなる
  • 今のキャラクター並び替え機能を使わずとも自動で良い感じに並び替えてくれる
    • この意味では「並び替えの自動化」とも言えるかも

Cons 悪くなる点・注意点

  • 大多数が使う機能で、慣れている人も多いはずなので、変更を慎重に行う必要がある
  • 再利用キャラが5人や10人の状態でキャラ追加をする場合、スクロールする必要が出てくる
    • ただ、基本的に キャラ追加回数<<キャラ再利用回数 のはずで、恩恵に比べればこのデメリットは小さそうではある
  • 実装方法によってはエンジン側からの情報が必要

実現方法

以下のいずれもで議論が必要そうな点

  • モーフィング機能のボタンはどうするか?
    • 現状のままが使いやすそう
      (正直自分はモーフィング機能を使わないのでどちらが良いか分かりませんが…)

単純な実装

ソート順を変更する。
具体的には、上から 選択中>プロジェクト内のキャラクター>ユーザー指定 の順で表示。

大規模な実装

キャラクター選択ボタンクリック時に、ドロップダウンメニューではなく「選択画面」を開く。
(これの方が良さそうなら「キャラクター選択UIの改善」的なもうちょっと広いissueを別で立てようかと思います)
選択画面はキャラ視聴画面のいくつかのコンポーネントを流用した新規画面で、以下の機能を持つ。

  • 音声サンプルの視聴
  • ユーザーが入力した文章をキャラごとに聴き比べできる機能
    • キャラごとにワンクリックで再生できる
    • テキスト欄が1つでキャラ選択が大部分
      • テキスト欄のデフォルト値として選択中だったテキスト欄の内容を採用
  • キャラクターのフィルタや検索機能
    • キャラクターのグループ化機能を作る #1334 をフィルタ機能の1つとして実装できるかも?
    • 平仮名やタグごとにも検索できると便利かもだが、そもそもエンジン側からの情報には含まれてないので、後回しが良さそう。

(メモ:この場合、OKとキャンセルのUIをどうすべきか検討が必要そう)

今までの実装 + 大規模な実装

今までのドロップダウンの内容を「選択中>[キャラクター追加]>再利用キャラ」にして、数十人全員は表示しない。
キャラクター追加を選ぶと「選択画面」が開く。
再利用キャラが1人(===["四国めたん"])の時のドロップダウンには再利用キャラの代わりに新キャラをランダム順で表示する。

  • 初心者に対しての候補の提示と上級者のキャラとの出会いを両立できそう
    • 新しいキャラは下の方に表示されるが、それを改善できる
    • プラスで一番知名度がありそう?なずんだもんも表示しておくと初心者的にはとっつきやすいかも?
  • 新キャラをどう取得するか?
    • エディタの新キャラクターはキャラクター表示順序に含まれていなければ新規キャラとみなすという実装らしいので、結構改修に手間がかかりそう
      • 場合によりエンジンからAPIを生やす必要までありそう
    • そこまで厳密でなくても最後から3人とかの適当な感じで良いかも
  • マルチエンジンの場合は数が増えるが大丈夫か?
    • マルチエンジン機能の利用者は慣れてきた人のはずなので選択肢が増えても問題なさそう

VOICEVOXのバージョン

999.999.999

その他

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 5, 2023

issue作成ありがとうございます!!
提案機能は結構便利なのかなと感じています!

設定からon/offできると親切かも

ここ結構難しいんですよね。
やっぱり一旦実装してみて、必要そうだったらオンオフ機能を作ることになるのかな~と。

今のキャラクター並び替え機能を使わずとも自動で良い感じに並び替えてくれる
「プロジェクト内のキャラクター」を「ユーザー指定」のほうにも重複させて表示するかは議論の余地がありそう

重複して表示が無難そうに感じました。
やっぱり、あるはずのところにないのは予想外な気がするので・・・。
実装してみて邪魔そうであれば、重複しなくても良いかも・・・?

モーフィング機能のボタンはどうするか?

ちょっとわかんないんですけど、どちらでも良いかもしれません。
実装が共通化されているので、とりあえず仕様を共通化しても良さそうかも。


大規模な実装
キャラクター選択ボタンクリック時に、ドロップダウンメニューではなく「選択画面」を開く。

さすがにキャラ変更するたびにダイアログや画面が開いて意識が持ってかれるのは避けたい感じがしました!
サンプル聞けたりするのは良いアイデアに思いました。(↓で追加のコメントしています)

今までの実装 + 大規模な実装

めちゃくちゃ良さそうに感じました!!
あとはユーザーが今興味ないキャラクターも表示する(偶然の出会い)部分さえ良い案が浮かべばとても良い気がしています。
(ランダム表示もありだと思うのですが、さらに良い案があれば、みたいな・・・!!)

ただまあ提案いただいてるタイトルと結構話が異なるので、もし可能だったら別にissueを分けていただけると話しやすいかもです!!(お手数おかけします🙇)

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 5, 2023

悪くはなさそうっぽいので、別でissueを立てようかと思います。が、ちょっとその前に一点お聞きしたいです。
「今までの実装 + 大規模な実装」の前にまずは「単純な実装」をした方が良さそうでしょうか?
それとも一気に大規模な実装までしてしまうのが良いでしょうか?
2段階に分ける場合、知見は得られそうですが、将来的に使わなくなる実装・不要になる設計もかなりある気がするんですよね…ただ逆に一気に実装する場合は機能が実装されるまでの期間が少し長くなりそうではあります。
個人的には一気に実装する方がUIさえ考えれば他の設計は楽そうではあるかなあとは思っています。(ここら辺は#1537とも少し関係あるかもです)

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 5, 2023

@thiramisu
ちょっと認識ずれてるかもなので確認すると、一番課題なのはあとはユーザーが今興味ないキャラクターも表示する(偶然の出会い)部分さえ良い案が浮かべばなのかなと思っていて、この案が思い浮かばなかった場合は実装が難しいかなと思います。


「今までの実装 + 大規模な実装」の前にまずは「単純な実装」をした方が良さそうでしょうか?

「単純な実装」はプロジェクト内のキャラクターの優先表示、「大規模な実装」はキャラクター追加ボタン(キャラ選択UI)、「今までの実装 + 大規模な実装」はこれら2つ、という認識であってそうでしょうか 👀
であれば、プロジェクト内のキャラクターの優先表示と、キャラ選択UIはお互いに独立していると思うので無駄にならない気がします。
(ちょっと独自用語が多めで、どれがどれを指しているのか勘違いしちゃってとんちんかんなこと言ってるかもしれません 🙇 )

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 6, 2023

「大規模な実装」はキャラクター選択ボタンを押したら有無を言わせず(ドロップダウンは廃止して)「選択画面」を表示する実装を指して言ってました。
まあ、この実装はやめた方が良いというのは一致してそうなので、候補からは外そうと思います。

その他も微妙な認識のずれがあると分かったんですが、どの程度まで実装すればひとまず完成と言っていいのかとかも認識ずれていそうなので、とりあえずissue立てました!

そのうえで(上記のissueで提案した通りの実装をした場合に)、ドロップダウンに全キャラクターを表示するのをやめるなら、その時点で既にプロジェクト内のキャラクターが表示される状態にしておかないとかなり不便そうなので、あんまり独立していないのでは、という感じでした。

  • 表示しないと他に表示するものが無くなる=表示した方が絶対に良い
    • 設定からoffにする必要がない
    • セパレーターを表示する必要がない

逆に選択画面側でどう表示するかは考える必要は出てきますが、UIが違うので結構無駄な部分が出てくる気がします。

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 6, 2023

なるほどです、多段階あって全部達成で完成みたいな感じだったんですね!

正直なところプルリクエストは1つ1つ分けていただけると非常に助かります 🙇
以前もVueのコードをすべてscript setupというものに変更する計画があったのですが、プルリクエストを多段階に小分けにしていただいたりしました。
#1065 (comment)

ただまあ、後のプルリクエストで消されるような機能はつけなくてもいいかなと思います。
それこそ書いてくださってる設定でオンオフを切り替える機能とか、セパレーターとか。
一気に実装した方が早いというのは絶対そうなのですが、多分1000行前後くらいの変更量になるので、コードの品質を高めたり、全員の工数を下げたりを考えると、可能なら小分けをお願いしたいというところに帰着するんだろうなと思います。

(今回はプロジェクト内のキャラクターを優先表示するだけで有用なこと、また分離しやすいこともあってのお願いだったりします。どうしても分離が難しかったら1つのプルリクエストでということになっていたかもです。)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants