WSN追加案: メッセージ選択肢の列の追加

Issue #363 resolved
Num_400 created an issue

ご無沙汰しております。

メモ: WSN(XML)シナリオへの仕様追加案(一覧)に既にある内容なのですが
メッセージ選択肢の列の追加をお願いできないでしょうか?
NEXTシナの中でもわりと使われていて、プレイヤーとしても見やすい良い機能だと思っています。
β版が出る直前でどうしようかな、と思っていたんですが
今回を逃すと次が長そうなのと、愛護や表に出る機会になりそうなので
もっと普及して欲しいという意図もあり、Pyでも使いたくて提案させて頂きました。

<以下は軽く調べた仕様です>
設定方法:メッセージコンテントとセリフコンテントから列の数を設定できます。

動作仕様:
選択肢は列が1~4個まで分割できます。
行は無制限のようです。
(無制限なのはASK仕様も同じだからここはソース流用?)
表示上は8個まで選択可能なので、現実的には合計32個の選択肢が作れます。

操作:十字キーにも対応していて、上左キーで左に行き、下右キーで右へ行きます。

Comments (10)

  1. k4nagatsuki repo owner

    ご提案ありがとうございます。#277のリストにIssue情報を追加しました。

    すでに実装したエンジンが存在する機能なので、仕様は衝突も含めてほぼ問題ないと思いますが、キー操作だけは違和感がありますね。どうも縦に並んでいる時と同じ挙動をしているように思えます。それよりは、横を押した時は横に、縦を押した時には縦にカーソルが動いてほしいです。

    それから、カーソルが下端にある時にもう一度下を押すと上へ戻るような場合、次の列へ移動するべきか、というような事もあります。つまり、1列目の最後のアイテムの所で下を押すと、2列目の最初のアイテムが選択されるような挙動です。こうした動きをすると、1つのキーを押し続けるだけで全てのアイテムをなめる事ができるので、私はこれが好みです。特にマウスホイール操作は、横向きの動きがないためそうした方がいいでしょう。

  2. k4nagatsuki repo owner

    仕様について。選択肢が消える場合(後続文字列が無いとかフラグ判定条件を満たさないなど)は、予想通り単純にその選択肢が無いものとして配置されるようです。

    また、メッセージログをどうするかについて。高さを圧縮していない場合は、従来通り全ての選択肢を表示し、選択されたものを反転でよいかと思います。しかし圧縮している場合はどうするか考えなくてはなりません。個人的には、選択された選択肢と同じ行にある選択肢を全て出して、選択されたものを反転表示にするような形でよいのではないかと思います。

  3. k4nagatsuki repo owner

    メッセージの内容が無い場合は、予想通り「どれか一つを選択してください。」と共に指定列数の選択肢が出るようです。

  4. k4nagatsuki repo owner

    実装上の詳細についてもう少し。CWのメッセージウィンドウは横470ピクセルです。選択肢の幅の合計はこれとぴったり一致しなくてはいけませんが、この値は3でも4でも割りきれません。従って、列数が3か4の場合、1つないし2つの列を1ピクセルほど太らせなければなりません。

    調べてみたところ、列数3の時は最後の列が、4の時は1と4番目の列が1ピクセル広がるようです。この実装には汎用性がなさそうなので、CWPyでは、割り算で余りが出た場合は前詰めで1ピクセルずつ割り振っていく形にしたいと考えています。その辺りの食い違いを気にする人はいないと思います(いないといいな)。

  5. k4nagatsuki repo owner

    pull request #1406

    簡単な機能なのでcwxeditorのコンパイラのアップデートのついでに仮実装を作成してみました。対応するエディタはcwxeditorの20160409版以降です。

  6. Num_400 reporter

    実装ありがとうございます。 軽く触ってみましたが、期待通りの動作になっていました。 バグは今のところ見つかっていません

  7. k4nagatsuki repo owner

    ご確認ありがとうございます。

    特に懸念する事もなさそうですので、これで完了にしてよさそうですね。という事で完了にします。問題がありましたら後からでもお知らせください。

  8. Log in to comment