SRC意見交換掲示板Mk2
(現在 過去ログ16 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■1827 / inTopicNo.1)  条件付き会話表示
  
□投稿者/ ワヅキ -(2003/04/23(Wed) 23:28:31)
    こんばんわ、ワヅキです。

    Talk文の機能拡張としてオプションで条件を満たした場合のみに
    表示されるというものをリクエストしたいと思っています。

    例えば説得したパイロットをエピローグなどで喋らせる・喋らせないと言った設定は
    一旦、何かの変数に保存しておいて

    If 説得フラグ[説得したパイロット] = 1 Then
    会話内容
    EndIf

    などとしておかなければいけませんが、これだと文章がかさ張る上に、ファイルの容量
    が増えたりするので、積極的に説得したパイロットを喋らせることができません。

    今回リクエストするのは

    Talk 説得したパイロット (説得フラグ[説得したパイロット] = 1)
    会話内容

    などとした時に、()内の条件を満たした時のみにその会話内容が表示されるという機能
    を追加してもらおうというものです。(条件を満たさなかった場合、その会話内容はすぐ下のイベントコマンドに飛ばされます)
    これなら普通のTalk文と大差がないし、複数人同じような感じのパイロットがいても
    柔軟に対応ができると思うのですが…

    ご意見やら何やらを募集しています。
引用返信/返信 削除キー/
■1828 / inTopicNo.2)  Re[1]: 条件付き会話表示
□投稿者/ 幻魔の公子 -(2003/04/24(Thu) 00:16:42)
     幻魔の公子です。

     ええと、結局は説得した場合と説得しなかった場合のパターンを作らなければいけないことに変わりはないのでは。
     セリフが一個あるかないかの差が、なにひとつ影響がないような会話ってかなり限定されるように思います。(ついでに言えば、そんなどうでもいい扱いのセリフなら喋らせてないのとほとんど変わりやしないのではないかなと)

     となると、条件式をTalk文にいちいち書かなければいけないよりも、スパッとIf文で分岐させてしまったほうがスマートではないかと。

     それでは。

引用返信/返信 削除キー/
■1829 / inTopicNo.3)  Re[1]: 条件付き会話表示
□投稿者/ 玖琺祐一郎 -(2003/04/24(Thu) 00:20:12)
    どうも、玖琺祐一郎です。

    Talk文の拡張機能。あれば便利な機能だと思うのですが、説得したキャラが大して重要でないような事を喋る事が前提とされた機能ですよね。これって。

    自分の所では説得したキャラは以外にいいポジションにいたりする(どうでもいいポジションも当然いますが)ので、台詞を飛ばされるくらいなら以下みたいにしてみます。

    LIndexで前者が説得無しの場合、後者が説得ありの場合
    ザク男仲間フラグは0が未説得で仲間にいない時、1が説得して仲間になった場合をさします。

    Talk LIndex("クリスチーナマッケンジー バーナード=ワイズマン",(ザク男仲間フラグ + 1))
    $(LIndex("ザクですか?別に戦力にならないからバラしてもいいと思いますよ。 ザク、バラすんですか?ちょっとそれは……。",(ザク男仲間フラグ))
    Talk ブライト=ノア
    まぁ、ザクをばらしてパーツにするのはすでに決定済みだから参考意見なんだけどね。
    End

    これからの開発版は上でどういう風に実行されるかかわるかもしれませんが、現在の所、安定版、開発版共にこれでも動きます。
    多少、入力する文字列が多いですが、このくらいなら手間のうちに入らないです。(将来的に対応しなくなってもIf文に変えれば問題なくなります)

    とばされてもいいような台詞なら最初から喋らせる必要も無いでしょうし(出番は減るかもしれませんが)、If文で判定して少し行を増やす手間も問題ないと思います。

    最後になりましたが、この機能があったとしてもこの機能を有効に使ってできる事はシナリオライターの手間を減らす事だけで、シナリオ作りで特に今までと変わった事が出来るわけではないので、申し訳ないですが自分的には反対です。
引用返信/返信 削除キー/
■1830 / inTopicNo.4)  (追記)適当に組んでみました
□投稿者/ ざーう゛ぃす -(2003/04/24(Thu) 00:23:48)
    うーん、サブルーチンを作って対応できそうですけれど…

    ExTalk:
       Local Expression = Args(1)
       Local Teller = Args(2)
       Local Text = Args(3)
       Local IsSus = Args(4)
       Local Result
       
       If Expression Then
          If IsSus Then
             Talk Teller
             $(Text)
             Suspend
          Else
             Talk Teller
             $(Text)
             End
          EndIf
       Else
          Result = 1
       EndIf
       
    Return Result

    こんな感じで。

    Expression(一つ目の引数) = 1の際に、Teller(2つ目の引数)が、
    Text(3つ目の引数)の内容をしゃべります。
    IsSus(4つ目の引数)が1の場合は、Talkの最後がSuspendになります。

    不備な点があったらレスお願いいたします。それでは。

    追記:会話が実行されなかった場合は1を返すようにしました。
解決済み!
引用返信/返信 削除キー/
■1831 / inTopicNo.5)  反対します。
□投稿者/ 香名月 -(2003/04/24(Thu) 00:31:51)
    はじめまして、香名月です。
    えーと今回のリクエストですが、私は反対させていただきます。
    そもそもIf自体それほど複雑ではなく、
    またワヅキさんのリクエスト案と比べてファイル容量が大きくかさ張る訳でもない上、
    この案では「Ifよりも遥かに分かりにくく、しかも手間が余計にかかってしまう」からです。
    試しにhelpのIfコマンド説明に使われているEveをワヅキさんの書式に直してみましょうか。
    helpにあるものと見比べてみてください。

    ############
    #ネリィが生き残っている場合
    Talk レイ (フラグ =ネリィ)
    どういうことだ、ネリィ! これでは時間稼ぎにもならんぞ!
    Talk ネリィ (フラグ = ネリィ)
    気安く言ってくれるね! 後からやって来てほざくんじゃないよ!!
    End
    #ネリィが既に倒されている場合
    Talk レイ(フラグ = 0)
    どうやら遅すぎたようだな…… ここは計画を変更するか
    End
    Escape レイ
    ############
    どうでしょうか。
    このEveには#で注釈を書いてあるのでまだ分かりやすいですが、
    それでもHelpのものの方がより理解もチェックもしやすいのではないでしょうか。

    あとこれですと複数のTalkに跨るイベントを設定する場合、非常に面倒くさい上
    (フラグの為にいちいち辞書登録をするのも大変ですしね)
    複数のフラグを条件とする場合、手間は二倍三倍します(そして、そういうケースはざらにあります)。
    (helpのものも実際はその類ですし)

    ということで、以上をもって私はこの意見には反対です。
    少し長い文章になってしまいましたが、再考していただければ幸いです。それでは。
引用返信/返信 削除キー/
■1840 / inTopicNo.6)  リクエストを取り下げます;
□投稿者/ ワヅキ -(2003/04/24(Thu) 21:19:14)
    えーと、ざーう゛ぃす氏の組んでくれたインクルで充分対応できました。(爆)
    そういうことで、リクエストを取り下げます。意見をどうもありがとうございました。

    今回は完璧に自分に落ち度がありましたね。^^;
    玖琺祐一郎氏が言う通り、シナリオ書く際に楽したかっただけです。(マテ
    元々、そういう楽するためだけのリクエストをするのなんて言語道断みたいですし、
    本当、申し訳ありませんでした。

    って、今さらながらレス位置間違えてることに気付きました。
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -