見出し画像

ティラノスクリプトでゲームを作ろう!特定テーマ⑦キャラメイクの作り方

おはこんにちばんは! ここではお久しぶりの富井サカナです!
今日も元気にゲームを作りましょう!

今回は自作の大きなウリであるキャラメイクの作り方のご紹介です。
とはいえ、スクリプト的には大したことをやっているわけではないです。

はじめに

「キャラクターメイキング」はネット向けのRPGなんかではもはやないと論外!といった基本的なシステムだと思われます。FCやSFCのゲームではほとんど見たことがないような気がしますが、せっかくなので自作ゲームに取り入れてみることにしました。

2021年に公開し、先日のPLiCyゲームコンテストのシナリオ部門で金賞を受賞した『修学旅行』にて本作を初めて導入しました。素人なりにスクリプトに慣れてきた頃だったので、割と順調に実装できました(という記憶になっているだけで実際そうだったかはもはや覚えていない)。

先にこんなことを言うのは身も蓋もないのですが、キャラメイクで大変なのはスクリプトではなく素材の準備で間違いないですね!スクリプト側としては大したことはやっていませんがここで中身をご紹介します!

と、その前に今回引用する2つのゲーム。
以下に並べますので未プレイの方はまず遊んでやってください!


キャラメイクの考え方の整理

修学旅行』冒頭のキャラメイクシーン


タイマン学園』冒頭のキャラメイクシーン


変わり映えしないようにも見えますが、
◆パーツがメチャクチャ増えた
◆服装の色違いを選べるようになった
ということで内部的には地味にアップグレードしてたりします。


ちなみに、

ストーリー

★キャラメイク

ストーリー

という流れにおける★キャラメイク部分の超雑なスクリプトのイメージで言うと以下のようになります。

①初期状態のキャラクターを表示
②各パーツの変数フラグはとりあえず1としておく
③*chara_make(名称任意)でパーツの変数フラグの数だけbuttonを配置する
 (決定して先のストーリーに進むbuttonも配置する)
④各buttonからの飛び先を変数フラグの数だけ準備する
⑤飛んだ先では以下の処理を行う
 ・該当するパーツの変数フラグを変える
 ・表示中の該当するパーツの表示を消す
 ・変更後の変数フラグに応じた該当するパーツを表示
 ・*chara_makeにjumpして戻る

ざっくりでこんな感じです。
なお、補足としては以下です。

・1度に全パーツ変えられるのではなく、
 1パーツ毎に決めていく形にした方が慣れないうちは簡単かも

・自作のように各パーツを順送りも逆送りもするようにしたい場合は、
 変数フラグの+1処理とー1処理を行うbuttonを別途用意する

・消してから表示する場合一瞬画像が消えるのが気になる場合は、
 先に変更後の画像を表示させてから元の画像を消すようにする。
 (nameを用いて特定するようにしておけば簡単)

いかがでしょうか。
次の項目ではスクリプトの実例を引っ張ってきます。
こちらが今回のキモになりますのでそれではどうぞ。


「目」を例にスクリプトを打ってみる

メイキング可能なパーツを増やしたいのであれば、単純にスクリプトを追加していくだけですので、ここでは目を変えたい場合のスクリプトに着目して上から順に貼り付けていきます。前項で記載した考え方に沿って具体的なスクリプトを置いたものです。見比べると何がしたいかはご理解いただけるかと思います。

①初期状態のキャラクターを表示
[image storage="../fgimage/chara/parts/eye/eye_01.png" layer=2 time=10 left=250 top=190 name=eye zindex=75]

②各パーツの変数フラグはデフォルト値とする
[eval exp="tf.eye = 1"]

③*chara_make(名称任意)でパーツの変数フラグの数だけbuttonを配置する

[image storage="arrow_r_08.gif" height="30" width="20" x="620" y="200" layer=4]
[image storage="arrow_08.gif" height="30" width="20" x="690" y="200" layer=4]

[button graphic="transparent.png" enterimg="arrow_02.png" height="30" width="20" x="620" y="200" layer=4 clickse="pi.ogg" target=*eye_minus name=select,eye_minus]
[button graphic="transparent.png" enterimg="arrow_01.png" height="30" width="20" x="690" y="200" layer=4 clickse="pi.ogg" target=*eye_plus name=select,eye_plus]

👆先に選択肢の画像を表示しておいて、
  その後に透明画像のbuttonを配置するいつものパターン

④各buttonからの飛び先を変数フラグの数だけ準備する

*eye_minus
[cm]
[eval exp="tf.eye = tf.eye - 1"]
[jump target=*choice_eye]

*eye_plus
[cm]
[eval exp="tf.eye = tf.eye + 1"]
[jump target=*choice_eye]

👆今回は「目」のみなので抜粋するが実際は同様のものを並べて準備
👆増減加減どちらも設定すると一旦こんなtargetを挟むことになる

⑤飛んだ先では以下の処理を行う

 ・該当するパーツの変数フラグを変える(※前項で実施済)
 ・表示中の該当するパーツの表示を消す
 ・変更後の変数フラグに応じた該当するパーツを表示
 ・*chara_makeにjumpして戻る

*choice_eye
[eval exp="tf.eye = tf.eye - 40" cond="tf.eye > 40"]
[eval exp="tf.eye = tf.eye + 40" cond="tf.eye < 1"]
👆パーツ数が40個の場合はフラグの数字は1~40となるようにする

[free layer=2 name=eye]

[image storage="../fgimage/chara/parts/eye/eye_01.png" layer=2 time=10 left=250 top=190 cond="tf.eye == 1" name=eye zindex=75]
[image storage="../fgimage/chara/parts/eye/eye_02.png" layer=2 time=10 left=250 top=190 cond="tf.eye == 2" name=eye zindex=75]
[image storage="../fgimage/chara/parts/eye/eye_03.png" layer=2 time=10 left=250 top=190 cond="tf.eye == 3" name=eye zindex=75]
[image storage="../fgimage/chara/parts/eye/eye_04.png" layer=2 time=10 left=250 top=190 cond="tf.eye == 4" name=eye zindex=75]
[image storage="../fgimage/chara/parts/eye/eye_05.png" layer=2 time=10 left=250 top=190 cond="tf.eye == 5" name=eye zindex=75]
👆実際はこれが40まで存在する

[jump target=*choice_again]
👆パーツを更新したところでbuttonの直前のところまで戻るイメージ

今回は「目」の一部に関してスクリプトを記載しましたが、これをパーツの種類と数の分だけ用意すれば良いので簡単ですね!
重ねましてですがぶっちゃけ全く大したことしてません。

なお、特定フラグがオンの時だけ選択できるパーツを作りたい!
という場合はフラグの増減の時に条件分岐をかませるだけなので簡単!
条件分岐については記事を作成したつもりでしたが未作成だということにたった今気が付いたので、今後恐らく作成いたします。


応用の可能性について

こちら、自作では小さめのキャラの顔面や服装などでキャラメイクできるようにしておりますが、これらを応用すれば着せ替えゲーだろうが部屋の模様替えだろうが簡単に設定可能です。buttonで飛ばして、変数変えて、表示を消して、異なるものを再表示。これだけ守っておけば見た目を変えるカスタマイズをしてもらうのは簡単に設定できます。


おわりに

と言うわけでいかがでしたでしょうか。
既にこなれている方からすればしょうもない話ですが、触りたてで予備知識がない初心者の方には参考になるかもしれないと思われます。

次回は
・こうやって作ったキャラクターをどう表示させるか
・モブおやモブこ、ランダムキャラ生成はどうやっているか
なんかをご紹介したいと思います!

結局細かく*で区切って、buttonに応じて飛ぶようにすれば選択待ちで何か動作するという動きは大体なんとかなります。自分で実現したい演出を考えて、手順を分解して、スクリプト打ってみて上手くいかなければ試行錯誤して、ということを繰り返せば少なくとも修学旅行~タイマン学園くらいのものであれば正直誰でも組めちゃったりします。それがティラノスクリプトの凄いところです!

以上、富井サカナでした。
みなさまもよき制作ライフを。


↓↓ティラノスクリプトでゲームを作ろう!記事一覧はこちら↓↓


👇自作ゲームの制作進捗状況は以下からどうぞ!👇


この記事が気に入ったらサポートをしてみませんか?