なんか作って載せます

今月(10月)は、思いつきシリーズでいきます。第1弾。

キャラクターの名前を変更したい【EV】



 キャラクター名の変更方法について。


 名前を変更するためには、まず、その文字列がどこに格納されるのかを知る必要があります。

 キャラクター名は、可変DBタイプ0「主人公ステータス」の項目0「キャラ名」に格納されています。
可変DBタイプ0項目0

 これだけ知っておけば充分です。

 次に、名前変更の簡易イベントを作ります。
簡易名前変更イベント

 こんな感じです。

 まず、文字列変数S0に「ゆーひ」という文字列を入れます。
 次に、そのS0を、さっき調べたキャラクターの名前が格納されている場所に書き込みます。
 それだけです。

 最後の1行で、S0を初期化しています。
 DBへの書き込みの前に初期化してしまうと、名前が空欄になってしまうので注意。

 では、テストプレイしてみましょう。
変更前

 まだ「ウルファール」ですね。

 イベントを起動させると、名前が変わります。
変更後

 はい、この通り。


 これを応用すれば、いろんな方法でキャラクターの名前を変更できるはずです。
 例えば、キーボードで入力させたり、用意した選択肢の中から選ばせたり。

 ただ、どの方法を用いるにしろ、処理内容は同じです。
 変更後の名前を文字列変数に代入し、それを可変DBのキャラ名のところに書き込む(上書きする)。
 この流れだけ覚えておけば、困ることはないでしょう。


 ただし、ただ名前を変えただけでは駄目です。
 例えば、変更前のキャラ名を含むメッセージなどがあった場合、そのままでは変更後のキャラ名が反映されず、おかしなことになります。

 では、どうするか。

 こうします。
特殊文字で可変DB呼び出し

 特殊文字を用いて、可変DBのキャラ名を呼び出すようにすればいいんです。
 こうすれば、変更前は変更前、変更後は変更後の名前で表示されるようになります。

 これを長ったらしいなと感じたら、これなんかいかがでしょう。
特殊文字で文字列変数呼び出し

 たぶん、こうするのが正規の方法なんでしょうね。

 キャラ名の項目に、最初から文字列変数を呼び出す特殊文字を入れておいて、ゲーム中で対応する文字列変数の中身を書き換えれば、常に変更した名前が反映されるようになります。

 メッセージなどの中にも、「\s[0]」と入れておけば、名前が表示されます。

 可変DBの内容の変更は、セーブデータにも反映されるので、ゲームを始めるごとにいちいち名前を入れなくても大丈夫です。


 今回はこれで終わります。


2012/10/06/Sat 更新
2013/09/21/Sat 内容修正

inserted by FC2 system