【ゲーム個人開発】ソロでゲームを作るよ#2GDevelopで台詞を作ろう
普通、個人開発関連のブログやnoteを書く時って大概の人はツールやエンジンの導入方法から書いていると思います。
ただそういう記事っていうのはすでに充実しているため、私は迷える子羊のために書いていきます。
そこで今回はGDevelop、通称デべちゃんの「台詞イベント」の作り方を解説しつていこうかなと思いまーす。意外な落とし穴もあったのでこの記事がいいかなと思いました。よしなに。
ちなみに「こういうときどうすればいいのかわかんない!」とか「この機能ってなんなの?」といった疑問があればぜひ教えてください。
私もデベちゃん初心者なのでまったく頼りになりませんがいっしょに頭を抱えるくらいはできますし、たまーに的を射た答えがひりだせるかもしれません。気張ります。(よくそれで実技の記事を書こうと思ったよね)
それと、こんな機能があるよって方は教えていただけるとありがたい!
そんなわけで台詞イベントの作り方、いってみよぉ~!
台詞はイベントで作る!
いきなり本題ですが、GDevelopでは台詞をイベントで作ります。もしかしたらビヘイビア等で簡単に作れる場合もあるかもしれませんが、ざっと見た限りだと見つからなかったのでイベントで作ることにしました。
作りました!(デデン!はやい!)
というかいまさらですが私はいま2Dトップダウン型RPGを作成中でございます。
そのうちキャラチップでおすすめのツールや素材サイトもご紹介いたします。キャラはいいにしても素材に関しては六百円くらいだしてアセットを買う方が早いと思います。統一感がでるので。
で、台詞なんですけども。
こちらはイベントで実行しておりまして、クリックを押すと文字を送るようになってます。
どうやって文字を送るのかというと、変数を使うわけですねぇ~。
変数というのはつまり条件付けのトリガーの意味をもっています。
「〇〇〇という変数が1のとき(変数〇〇〇=1)にこのイベントを実行する」という命令ができるわけですね。
ではさっそく材料を集めましょう。
台詞イベントに必要な材料は下記の通り。
1、テキストオブジェクト
2、メッセージウィンドウ(オブジェクト)
3、変数の設定(数値がおすすめですが文字列でもできます)
4、イベントの構築
オープニングテキストと書かれているのはメッセージウィンドウなしで(テキストのみで)書いているものです。
この書き方が基本となっており、さらにこの書き方に条件を付け足すことで様々な状況で台詞を発生させることができます。
それではまず基礎のモノローグからなんですが、モノローグを書きたいところにテキストオブジェクトを配置してください。
↑の画像でいうところの赤文字のところですね。モノローグ用のテキストウィンドウを配置したらイベントを組みます。
組み方はこう!
見づらいかたは拡大してください。今回、オープニングテキストの変数はマウスクリックを設定しています。
一番上の条件は単に「マウスを離した直後」
重要なのはその子条件になります。すべて変数が加算されていますね。
次の台詞を開くたびに親条件のところで変数をプラス1ずつしているので、単にマウスをクリックしているだけで常に条件が変わるという仕組みになっています。
ここで落とし穴がありました……
よーくみると子条件の一番上の条件となっているマウスクリックの変数が「2」になっていると思います。
これは間違いではなく、本当に「2」が正解なのです。
通常、なにもさわっていない変数は「0」です。デフォルトで0になっています。(変数を作成するときにデフォルトの数値を設定すると思いますが、なにも触らなければ0のままです)
なので一見すると最初のクリックで「1を加算」すると「0+1=1」となるので、次の条件は「変数マウスクリック=1」で子条件を満たすと思いますよね?
でもなぜか「2」なんです。なぜか子条件の一番上は「2」になります。謎だ……。
まぁわかんないことをいつまでも考えていては始まりません。兎に角、これを基本にして、たとえばあるキャラクターに話しかけるイベントを作成してみましょう。
それがこちらぁ!
「こんにちは」のあとに「いい天気ですね」と話すだけのイベントです。
前述した基本的な台詞送りとの違いがわかるでしょうか。そうです、子条件の一番最後にメッセージウィンドウとテキストの非表示が追加されています。
さらに「テキストの変数」に「0」を代入しています。
これによって台詞が終わったら画面上からメッセージウィンドウとテキストが消えます。
さらに変数を0にリセットしているので、もういちど相手の目の前でクリックすることで同じ台詞を話し始めます。
目の前で話すときの条件は「〇〇から××の距離が△△ピクセル」の条件を使いましょう。オブジェクトのサイズによって適正ピクセルが違うので注意です。
そして、この最後の子条件に「指定のシーンへ変更する」やオブジェクトの座標を変更することで会話終了後に移動(退場)させることも可能です。
そしてあいからわず子条件の一番上のトリガーとなる変数は「2」です!
ほんとになんでなんだろ……。その下に続く子条件は全部プラス1ずつされているんですけどね……?
ちなみにテキストとメッセージウィンドウを表示するときにどちらも座標を指定してあげることで常に同じ位置に表示されるようにすることも可能です。
また常に特定の座標に呼び出すようにすれば普段はテキストもメッセージウィンドウも作業画面外に配置することができるので、画面をいじくりまわすときに邪魔になりません。
イベントによる台詞の作成は以上になります。
いかがだったでしょうか。かなり駆け足の説明になってしまったかもしれません。
いやーそれにしてもハマりました。子条件の一番上がなぜか「2」でなければ発動しなかったのでほんと意味わかんなかったです。
こんどはダメージ計算とかで詰まりそうな気がします。たぶん、関数とかつかうんだろうなぁって思ってます。
イベントについては、基本的に特定のオブジェクトとか機能を呼び出して命令(メソッド?)を与えてあげれば動くんだと理解していただければいいと思います。
unityでいうところのクラスとメソッドみたいな感じじゃないでしょうか。ちょっと違いますね。あっちは機能が入った箱を呼び出して、箱の中身を変更する命令を与えるってイメージかもしれません。
アルファベットで直打ちではなく一覧の中から変更したい機能の箱を探せるのはとても楽ちんで、ツールならではの作り心地かと思います。
それでは、よしなに。
この記事が気に入ったらサポートをしてみませんか?