【UE5】DataTable+会話シーンを連動させてみよう!【基礎編】【VOICEVOX 春日部つむぎ】

Поделиться
HTML-код
  • Опубликовано: 8 янв 2025

Комментарии • 25

  • @せどたそ
    @せどたそ 2 года назад

    めちゃくちゃ勉強になりました!
    テキストが一文字ずつ表示される方法も動画化してもらえると有り難いです!

    • @ue5wancoro
      @ue5wancoro  2 года назад +3

      お久しぶりです!またコメントありがとうございます!
      文字送りの機能は標準で入ってなさそうだったので、今後の作成予定一覧に入っております!
      内容がまとまったらアップロードさせて頂きます!

  • @一郎-b1l
    @一郎-b1l Год назад

    memo
    textの改行がなぜかできなかったけどShift + Enterで出来た
    テキストを変数化してgetからピンを伸ばしたがset text(text)ノードがなぜか出てこなかったが、状況に合わせた表示をオフにして追加してそのまま繋げたら問題なく動作した
    Data Tableの行エディタに入力する際に改行ができない(解決)

    • @ue5wancoro
      @ue5wancoro  Год назад

      コメントありがとうございます!
      説明の至らない点がありご迷惑をお掛け致しました。
      大変申し訳ございません。
      > textの改行がなぜかできなかったけどShift + Enterで出来た
      > テキストを変数化してgetからピンを伸ばしたがset text(text)ノードがなぜか出てこなかったが、状況に合わせた表示をオフにして追加してそのまま繋げたら問題なく動作した
      解決策もコメントで示してくださり本当にありがとうございます。
      解決出来て何よりです。
      > Data Tableの行エディタに入力する際に改行ができない(未解決)
      動画の 6:20 辺りで「F_TalkInfo」という構造体を作成し、Text型の変数 TalkMessage を作成している箇所がございます(会話の本文を記載するための変数です)
      この変数名の左側にある三角アイコンをクリックして展開し、「複数行テキスト」にチェックを入れることで改善が見込めないか確認頂けますでしょうか。
      またお気づきの点などございましたらコメントなどお寄せ下さい。

    • @一郎-b1l
      @一郎-b1l Год назад

      @@ue5wancoro ありがとうございます!
      めっちゃ見逃してました…

    • @ue5wancoro
      @ue5wancoro  Год назад

      @@一郎-b1l
      いえいえ、こちらこそありがとうございました!

  • @Mike-kq3xg
    @Mike-kq3xg 2 года назад

    とっても参考になりました!ありがとうございます!
    細かく操作を見せていただけるので初心者でもついていけて本当にありがたいです…
    会話に選択肢を作って、会話分岐するのを今自分なりに試行錯誤してやっているのですが、わんころさんならどのように実装されるのかなと気になりました!
    もしよければ解説していただけると嬉しいです🙏

    • @ue5wancoro
      @ue5wancoro  2 года назад +2

      いらっしゃいませ!
      コメントありがとうございます!
      > 細かく操作を見せていただけるので初心者でもついていけて本当にありがたいです…
      そう言って頂けると本当に励みになります!
      > 会話に選択肢を作って...
      概念的なお話で宜しければ、パッと思いつく方法だと
      DataTable にラベルのようなものを作っておいて
      分岐が来たらそのラベルに対応した会話を表示するような仕組みにするか、
      もしくは分岐時に別の DataTable に切替えるという方法をベースに考えるかなと思いました!
      > もしよければ解説していただけると嬉しいです🙏
      自分で実装が出来た上で動画にまとまりそうであれば...!

  • @おおみみず
    @おおみみず 2 года назад +1

    お世話になります。
    動画内容を見て思ったのですが、複数体会話できるキャラがいる場合、一つのデータテーブルで番号のみで管理すべきなのか、会話できるキャラ分だけ用意した方が良いのか悩みました。
    実際の所こういう方法がベター、などはあるのでしょうか?

    • @ue5wancoro
      @ue5wancoro  2 года назад +1

      コメントありがとうございます!
      > 複数体会話できるキャラがいる場合
      素人目線ですが、ある街の NPC が100人いて
      個々に Data Table を割り当てると100個も...と考えた時
      作成する上でそれでもいい、それがやりやすいなら全然ありだと思います。
      今回の例では、Data Table の上から順番に表示するだけしか行ってないので番号で管理してますが
      例えば Data Table を「DT_TownA_NPC」のようなものを1つ用意しておき
      構造体にどの NPC か識別するためのタグのようなものを用意しておくと、
      会話時にそのタグが記載された会話文だけ表示する...など1つでまとめる方法もありだと思います。
      > 実際の所こういう方法がベター、などはあるのでしょうか?
      ゲーム制作を行う上でこうした方が便利などはあると思うのですが
      これも素人目線で書かせて頂くと制作するプロジェクトの規模や、
      プロジェクトルールによるのではないかなと思ってます。
      先に仕様をがっつり決めておくとそれを目安に作成すれば早そうですし
      手当たり次第で必要なものを作成するなら多少柔軟にしておこうなど
      作成する手法でも変わってきそうだと感じます。
      必要な仕様に合わせて作成していくんじゃないかなと思います!

    • @おおみみず
      @おおみみず 2 года назад

      @@ue5wancoro
      回答ありがとうございます。
      100人いるなら100個データテーブルを用意するのもアリなんですね。
      いまいちデータテーブルの使用方法が馴染まなくてとてもタメになりました。
      >NPC か識別するためのタグのようなものを用意しておくと
      なるほど、動画内では構造体にTalkerとTalkMessageのみ追加されていますが、別の変数を更に追加する事で識別させる事ができるんですね。
      >制作するプロジェクトの規模や、プロジェクトルールによるのではないかなと思ってます。
      千差万別なんですね。手探り状態なので、できるだけ柔軟な形にしていきたいと思いました。

    • @ue5wancoro
      @ue5wancoro  2 года назад +2

      私は UE5 始めて半年なのでまだまだ初歩的な部分を覚えないといけないんですが、勉強した内容は動画にしようと思ってます!
      少しでもお役に立てば幸いです!
      また遊びに来てくださいませ~!

  • @physical2086
    @physical2086 2 года назад +1

    素晴らしい動画をありがとうございます。
    NPCの前でのみ会話が発生するようにするにはどのような操作が必要でしょうか。試行錯誤したのですが、解決には至らず...
    お時間あるときで構いませんのでお返事いただけると幸いです

    • @ue5wancoro
      @ue5wancoro  2 года назад

      いらっしゃいませ!
      コメントありがとうございます!
      > NPCの前でのみ会話が発生するようにするにはどのような操作が必要でしょうか。
      > 試行錯誤したのですが、解決には至らず...
      NPC が普通の ActorBP という前提でお話をさせて頂きますと、
      その NPC の BP を開き、コンポーネントに「Sphere Collision」や「Box Collision」などを追加します。
      このコンポーネントが NPC の近くにいるかどうかを判断する当たり判定となります。
      必要に応じて当たり判定のサイズを調整します。
      追加後、このコンポーネント上で右クリック>「イベントを追加」などから
      「On Component Begin Overlap」「On Component End Overlap」を表示させます。
      「On Component Begin Overlap」は Actor と Overlap したかを判定するイベントです。
      ボタンを押して会話を開始する場合は、
      必要に応じて「Enable Input」などを使ってキー入力を有効にしたり、
      NPC と会話したい Actor かどうかを判定します(例えば操作中のキャラクターかどうかなどを判定)
      Overlap したのが指定の Actor であれば会話を表示するという処理に繋げていきます。
      「On Component End Overlap」は当たり判定の範囲外に出たかを判定するイベントです。
      必要に応じて「Disable Input」などを使ってキー入力を無効にしたり、
      NPC の会話が最初から表示されるようにしたい場合は適切なリセット処理に繋げていきます。
      どのあたりで躓いたのか分からなかったので
      ご質問の意図が汲み取れておりませんでしたら申し訳ございません。
      参考になりましたら幸いです。

    • @physical2086
      @physical2086 2 года назад

      @@ue5wancoro なるほど!!
      Overlapの使い方があまり分かってなかったので、めちゃくちゃわかりやすい解説ありがたいです!
      やってみた所実装出来ました~!🤩🤩

    • @ue5wancoro
      @ue5wancoro  2 года назад

      おめでとうございます~~!

  • @鈴黄鈴貨
    @鈴黄鈴貨 Год назад

    こんにちは。とても素晴らしい動画をありがとうございます。勉強になりました。
    質問なのですが、ActorのBP内部にあるオブジェクトをクリックしたらメッセージが表示されて、Enterで次のページを表示させるにはどうすればよいでしょうか。
    今のところ、On Clickedでメッセージを表示して、Flip Flopで分岐することで、イベントを実装しているのですが、EnterにShow next pageを繋いでも反応してくれません。
    また、同じBP内に複数のクリックイベントを実装するにはどのような方法がありますでしょうか

    • @ue5wancoro
      @ue5wancoro  Год назад

      コメントありがとうございます!
      > EnterにShow next pageを繋いでも反応してくれません。
      Enter Key 自体が反応していないのか、「ShowNextPage」が正しく機能していないのかわからないため、まずは Enter Key から「Print String」など繋いでキーが反応しているのかをチェックしてみて下さい。
      Enter Key が反応している場合は「ShowNextPage」関数内の処理が正しいかなどもう一度ご確認下さい(14:35)
      > 同じBP内に複数のクリックイベントを実装
      複数のクリックイベントというのは、どういう挙動を想定されておりますでしょうか。
      例えばダブルクリックやクリック長押しのことなのか、
      On Clicked のイベントが発生した時に、○○の場合この処理に、△△の場合は別の処理にといった処理を分岐させるような方法なのかなどが分かりませんでした。

    • @鈴黄鈴貨
      @鈴黄鈴貨 Год назад

      @@ue5wancoro どうやら、詳細パネルのAuto Receive InputがDisabledになっていた為、Enterキーが反応しなかったようです。初歩的な事で申し訳ございません。イベントの処理は、On ClickedとOn Component Begin Overlapなど、別々に分けて実装することで解決しました。お手数おかけしました。

    • @ue5wancoro
      @ue5wancoro  Год назад

      @@鈴黄鈴貨
      いえいえ、解決出来たようで何よりです!

    • @鈴黄鈴貨
      @鈴黄鈴貨 Год назад

      @@ue5wancoro 何度もすみません、複数個会話イベントを実装したのですが、片方の会話イベントが終了していないうちにもう片方の会話イベントが開始されたときに重複してしまいます。これを改善する方法を教えていただきたいです…

    • @ue5wancoro
      @ue5wancoro  Год назад +1

      お疲れ様です。
      > もう片方の会話イベントが開始されたときに重複してしまいます
      重複というのは何がどう重複されていますでしょうか。
      もう少し詳細に教えて頂けると助かります。
      一応勝手な想像で書いてみますが、例えば会話用に作成した Widget を複製、もしくは変数や関数等で2つ以上の場所に実体がある場合、2つ目の Widget が上にかぶって表示されている場合は、最初に描画した Widget を「Remove from Parent」などを使って対処します。
      また、2個目以降の会話データを用意したのにまた1個目の会話データが表示されている場合、指定している DataTable が正しいものかをご確認下さい。