投稿

7月, 2024の投稿を表示しています

気づいてしまった、私の『好き』

 ここ最近の自作ゲームでは声優のJiRさまにご出演いただいており、自分が作った他愛もないセリフにJiRさまのお声が入ると突然いきいきとしてくるのだから不思議だなと思っていた。 それで、ふと気になって JiRさまが出演しているボイスドラマ をいくつか聴いてみた。 作品の内容についてはここでは触れないけど、聴いていると儚さや切なさといった感情がこみ上げてくる。音声だけの世界で映像がなく、具体性に欠ける中で印象という翼が広がっていくように感じる。 それで、私はある事実に気づいてしまった。 私は昔から声だけのドラマが好きだったのだ。 あまり意識していなかったし、積極的に聴いてこなかったのだけど、多分、きっと、恐らく、大好き。 考えてみれば私は寝る前に『JET STREAM』を聴くのが好きだった時期があり、ほぼほとんどのCDを購入している。 『JET STREAM』ってBGM的な曲の合間合間にちょっとした朗読が入るのだけど、それがたまらなく好きだった。 もっと昔に遡っても自分の好きな小説がラジオドラマになるとなるべく聴くようにしていた事を思い出す。(といっても聴き逃す事も多かった印象だけど) 好きだったのに向かい合ってこなかった。 よくわからないけど意識しようとしなかった気がする。 多分、ゲームとか本とか、漫画とか音楽とかいろんな好きがあって、優先度的に前面に出ることがなかったのだろう。( ※ ) でも、あらためて聴いてみると、もっと聴いてみたいと思う。 今まで向かい合ってこなかった、自分の『好き』を再認識した。 全然気にしてこなかったから知らなかったけど、音声を配信するサービスというのは結構いろいろあるようだ。 hear.jp  というものがあるのも最近初めて知った。他にも無料で聴けるPodcastやYouTubeでの音声のみもたくさんあるようだ。 HEARシナリオ部 というのがあって、ここでたくさんボイスドラマを公開しているようなのでとりあえずいろいろ聴いてみようと思う。 なんだかちょっとワクワクしている。 ※正確な記憶ではないけど、ドラマCDって1回か2回しか聴かないのに音楽CD並みに高くて費用対効果が悪いと感じていたかも

D&B Part1『脱出』制作ノート

イメージ
 D&B(ダンジョンズ&ボヨヨンズ)Part1『脱出』は他の作品と同様にプログラミングの練習目的で作ったゲーム 単純な迷路脱出ゲーム  →今すぐプレイ コンセプト プログラミングの練習が主目的なので公開しなくても良いのだけど、この作品は公開するという方向で考えていた気がする。 ただ、当初はもっとオリジナリティのあるルールに変更しなければ公開する価値は無いだろうと考えていたが、何度も動作検証をしているうちにシンプルなタイムアタックのゲーム性で公開したいと思うようになっていった。 当初は自由に敵の数を変更したりマップの広さやマップの複雑さを自分で指定できたりとかなり自由度の高い仕組みとなっていた。しかし、ゲーム性の中心をタイムアタックにしようと思った段階で自由にマップの広さを変えられたらタイムアタックにならないのでマップの広さはフロアーごとに固定し、複数のフロアーを用意してそれぞれに異なる広さや敵の数を設定するという仕組みとなった。 いつの段階だったかははっきりしないが、タイムアタックをゲーム性の中心にもってきた段階で、タイムスコアを集計してランキングを表示すればタイムアタックは盛り上がるのではないかと考えた。記録の残らないタイム表示ではスクリーンショットを撮って共有するといった方法でしか競う事が出来ないので、ランキングを表示する仕組みが必要な事は明白だった。 スコアを集計表示するためには各プレイヤーの結果を送信する必要が出てくる。 また、結果を蓄積した上で、集計し、上位ランキングをソートして表示する必要がある。 これらはユーザーのブラウザで動作するJavascriptだけでは実装不可能なのでサーバーサイドの仕組みが必要となる。今回はまともなサーバー構築は一切行わず、Googleスプレッドシートにデータを蓄積し、Googleスプレッドシートの関数で集計し、その結果を受診するというシンプルな仕組みを構築している。詳しくは D&B Part1『脱出』技術的なメモ に記す。 D&B Part1と、一作目から二作目を作るかのようなタイトルにしたのには一応理由があって、シンプルなタイムアタックで公開すると決める前にあった各種アイデアを実現した続編を作る前提で、今はとりあえずシンプルなタイムアタックの迷路脱出ゲームにすると自分に言い聞かせる必要があったからで

D&B Part1『脱出』技術的なメモ

制作ノートでは軽く触れただけのデータ送受信について、忘れないように記録を残しておく。 → 制作ノート   データ送受信 今までの作品はJavascriptのみで作られていた。つまりクライアント側のみで動作するプログラムであり、サーバーにデータを送信したり、サーバーからデータを受信したりする処理は無かった。 今回、タイムアタックをゲーム性のメインに持ってきたかったので、タイムスコアをサーバーに送信して蓄積し、ランキングを受信して表示する事が必要になった。 真面目にサーバー環境を構築するという選択肢もあったのだが、試しにGoogleスプレッドシートにデータを送信して蓄積し、Googleスプレッドシート側でランキング集計用シートを作成し、受診時はシートの内容を取得するだけというシンプルな構成を作ってみた。 GoogleスプレッドシートにはQUERY関数というデータベースを操作するSQLのSELECT文のような関数が存在するので、集計用のシートを作成してランキングデータを表示するのは実に簡単だった。 データ蓄積用のシートをQUERY関数で参照するだけでランキング集計済みのシートが出来上がるのでApps Scriptでシートを取得して戻せばJavascript側で簡単に表示できる。 しかし、実は実装に苦労した。 Javascriptはブラウザのコンソールを見ていればエラーの原因がわかるのだけど、Apps Scirpt側でのエラーはコンソール上ではわからないのでブラックボックスのようになってしまう。 まぁこれはPostmanを利用することでAPI(Apps Scirpt)側のエラーがわかるようになって解決したのだけど、気づくまではけっこう大変だった。 (ブラウザのコンソールではApps Scirpt側のエラーは全てCORSエラーとして表示される。しかし、実際は返答がないだけでCORSエラーではない。ChatGPTやGeminiにエラーを分析させてもてんで見当違いな改善策が提示されるが、それはCORSエラーを改善しようとする内容だからであり、実際にはCORSエラーではないのだから解決しないのは当然であった) それと、今回タイムスコアの送信とランキングの受信のみなので大きな問題は発生していないけども、Apps Scirptからスプレッドシートへのアクセスにはタイムラグが結構ある。