![eyecatch](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_sgWUePN5mpzJkig0QCXPSyP7Cc8zthxxMRCoh6lPxN6te0Lui01JYw6CqVLbfTIK14DlZLUqbTU4rxFyxj6ZEcAQbQGPYCJ0e9coV_fxTmNZff281WdxGozsweSw1AR96cjIuVBqSjJXgH2Ojz02bn2kAn-MSRRTxfdd5g6tuhBQyF1DITQ7EDti/s1600-rw/1622674289_0.jpg)
ドラクエの名前付けは、無難に自分のファーストネームだった、弓削田です。
ゲーム開発はもう終盤なのに、肝心な機能をつけ忘れていることに気が付きました。
ゲームで自分が操作するキャラクターの名前をつける機能です。
この機能により、キャラクターに感情移入がしやすくなるということはもちろん、
発言するセリフに名前でタグをつけることができ、少し複雑な会話をする時の目印にもなるはずです。
あとは、こうしたRPGのお決まりという事もあるかもですね。
あ、でもFFは違うか!
名前機能をつける点で苦労した点
まず、この名前機能をつけるという事で、悩ましかったのは、どのタイミングで名前をセットするかということですが、
基本的にゲーム中に1回だけしか使わない機能なので、初回のゲーム立ち上げタイミングで入力してもらうのがいいと考えました。
実は、このゲームというのは、webブラウザにこだわって作っているという点は、表示するデバイスの問題だけでなく、
それを処理するサーバー側も柔軟に複数箇所にモテるように考えていたり、
いろいろなサイトにガジェットのように表示させることを、裏の目的で持っていました。
ということで、このゲームに関わる処理は、全てゲーム画面(エレメント内)にて行うようにしなければいけないという縛りがあるんですね。
まあ、勝手に作り手がこだわっているだけの事ですが、こうした機能が後々生きてくるはずと信じて、その仕様で進めてみたいと思います。
ということで、ページロードしてスタートをクリックした段階で、入力ダイアログを表示してみました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi193Qx1MNJp-qjB5KB0fPpmNivQhOlbTRXWcqN-aQCEoqW6g5ixdx3RU-9udSUBEZ34fgv2QBMrO6VZYrX3Ww7uGqSep_-ltr_9P-d2tUeMZ5kcRFVX9fPPIipH98eQ-ZM5jAhAUuhInrBUIAxy8PmqGTfoQOZ4n1AaX_zgztcmBSzagLEsn_B9r93hCE/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%285%29.jpeg)
名前の入力と同時に、規約のチェックもこのタイミングでしてもらうことにしました。
とりあえず、サービス公開には、プライバシーポリシーなどは必要ですからね。
ゲーム初回に1回だけということで、多くのゲームがこのフローになっていることもうなずけます。
ゲームに搭載された複数の仕様
実はこの処理を作っていて、ハマった点がありまして・・・
このゲームには、ゲーム立ち上げの際に2つのモードを用意していて、タイトル画面を表示するスタートと、タイトル画面を表示しないスタートという2つのモードです。
100日後に完成するゲームシステム 8日目「タイトル画面の追加」
過去に書いたブログの、この時に作った機能ですね。
ここの記事では、タイトル画面が表示されているだけなんですが、フラグを付与すると、タイトル画面をすっ飛ばして、ゲーム画面がそのまま表示されます。
でも、audio-APIの関係で、必ず画面クリックをしてもらわないといけないので、クリックを促す表示はされますけどね。
この2つの機能は大きく処理が異なっているため、同じように画面をクリックするという処理でも、全然違ったフローをたどるため、
この整合性を保ちながら、「同一処理で入力ダイアログを表示して、データを保存しつつ、もとのフローに戻す」という流れで、
しばらくの間は、どちらかの処理を完成すれば、もう片方が不具合を起こすというジレンマに陥っていました。
大きなプログラムコードでは、よくありがちな落とし穴ですが、きちんと設計をしていない場合、このトラブルになりがちだと改めて思いました。
でも、無事に元プログラムのリファクタリングも兼ねて、機能搭載に成功したので、ご安心ください。
会話にも表示できるようになりました
そして、想定通り、会話に名前を表示させるようになりましたとさ。
下記のサンプル画像は「ほげみ」という名前で登録してみました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCMiuAwXIgH-6pj8nGxJKru2KjPewmOLgwohyphenhyphenBFBGxC9yGmyN5sjgaXf4NfCd_9Z4O1yKxWEpTQORlXEMnRKRyv-zTffe9HjEQoegmGzl32cdmlwv9xb-SRmrB9GYIY2mk7jiWlINx0d4kaoWonAJpUF7KmC4ZKj0AtfnEaaZRgi8rdfmXFa-60Ltj8wc/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%286%29.jpeg)
よく考えたら、ゲームの最初しか名前が決められないので、一度付けた名前でゲームを進めていくことになります。
「あああ」とかやりがちですが、自分のペットに名前をつける感覚で入力してもらいたいですね。
とりあえず、また一歩前進・・・と、
0 件のコメント:
コメントを投稿