投稿

ラベル(フリーゲーム)が付いた投稿を表示しています

『或る夏の日々』振り返り鼎談 テキスト版

イメージ
昨日、ボイスドラマ✕テキストアドベンチャー『或る夏の日々』について主人公『黎鵺れいや』役のJiRさま、ヒロイン『瑠璃るり』役のりささんと振り返る、振り返り鼎談(音声配信)をりささんのチャンネルで公開していただきました。→ 【或る夏の日々】振り返り鼎談~阮文×JiR×りさ~ こちらは収録前にチャットで進めたセリフです。実際の収録では雰囲気に合わせて変化しています。 阮文「阮文です。最近はゲーム制作を行うのが主な活動になっています。私は声の活動をしたことは無いので聞き取りづらいと思いますが、よろしくお願いします。」 JiRさま「フリーで声優をしておりますJiRと申します。朗読やナレーション、アナウンスの他、女の子からおばあちゃんまでキャラクターを演じさせていただいております。よろしくお願いいたします。」 りささん「ボイスコや声活動をしております、りさと申します。毎週ラジオ配信を行なっていたり、お芝居では少女やお姉さん、ヴィランの役柄を担当させていただく機会が多くございました。何卒よろしくお願いいたします。 阮文「さて、1月31日に『或る夏の日々』を公開し、1ヶ月半後の3月16日に制作ノートを公開しました。制作ノートは私の視点できっかけや完成までの経緯を記しました。本日は声の出演だけではなく制作に協力していただいたお二人が感じたことを聞いていきたいです。『或る夏の日々』振り返り鼎談という感じですね。 まずは依頼しても良いですかと私が連絡した時の事を振り返ってください。」 JiRさま「阮文様が私が出演するボイスドラマを聴いたことがきっかけで、音声作品が好きということを再認識して、ボイスドラマのようなゲームをつくりたいと思ってくださったということをお聞きしていたのでそのことがまずとても嬉しかったです! 好きを再認識するきっかけとなれたということがこんなにも嬉しいものなのだと、活動していてよかったな〜!と心から思いました。 そしてなんといっても或る夏の日々の主人公が以前演じさせていただいた黎鵺くんということで、また黎鵺くんに会えるんだとわくわくした気持ちでいっぱいになりました!」 りささん「阮文さんをJiRさん経由で存じており、お声がけいただくまでは、阮文さんが制作されたゲームのいちプレイヤーだったこともあり、まさか自分に依頼をくださるとは思っておりませんでした。 自分の声を聴...

『或る夏の日々』制作ノート

イメージ
◇どのようにして始まったか……  昨年、音だけの世界、ボイスドラマが好きだと気がついたことは以前記した通り。 その後すぐにボイスドラマみたいなゲームが作りたいと思った。 このふわっとしたボイスドラマみたいなゲームという思いは明確な形を何も想像していなかった。 そしてまたふと思った。文字だけのテキストアドベンチャーゲームならボイスドラマと相性が良いのではないか これも詳細なシステムをイメージしていたわけではない。ただなんとなくそう思った。 それで、なんとなく夏休みの冒険的な内容がいいかなと思った。 こうして全てがふわっとして明確ではないまま、取り敢えず目に見える具体的なイメージが無いとアイデアが浮かばないなと思い、主人公や執事をプログラム的に配置し、セリフが表示されるようにした。 後は、会話が進展するようにする為にはプログラムの構造をどうするべきか、データをどのように持たせるべきかを逐次考えながら、まったく設計のない、どうなるかわからないプログラミングを始めた。まさにこのゲームプログラミングこそがアドベンチャーであった。 ダンジョンだけは前作のロジックを流用して初期から存在した ◇次々と気づいてしまう事実…… プログラミングを進めながら、同時に登場人物の状況に応じたセリフを考え、そしてセリフを考えながらキャラクター設定を徐々に固めるという感じで、全く何も無いところに点を描き、点から点につなぐように作業は進められた。 今まで、ここまで何も決まっていないプログラミングをした事はなかった。 どこまで作れば終わるのかも見えないし、どういうゲームになるのかもわからない。 ただゲーム内の夏休みが終わればゲームも終了するという事だけは決めていた。 でも、なんのゲームシステムとしての設計もなく、プログラムの構造も決まっておらず、データ構造も都度必要にかられて設計するという状況では何もかもが手間がかかった。 ゲーム内のすべての行動は専用のプログラムが組まれており、使い回しが殆ど無い。 状況に応じて会話を変化させるために、セリフとプログラムが密接になっており、データとプログラムの境目も曖昧であった。 7月に思いつき、8月に始めたプログラミングは、当初なんとなく8月中に完成させようなんて思っていたが、8月が終わってもなんの目処も立たない状況で、これはいつ終わるのだろうかという不安に...

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

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

『Smile Reversi』−勝利よし、敗北なおよし− 制作ノート

イメージ
  『Smile Rversi』(スマイル☆リバーシ)−勝利よし、敗北なおよし−  を公開してから一ヶ月ほど経過したので制作ノートを記す。 『Smile Rversi』はCPU対戦リバーシであり、初期段階ではプログラミングの練習目的で作ったCPUが弱くてなんの面白みもないゲームであった。 なんの工夫もないのもどうかと思い、最初に行った付加要素は『不揃い処理』であった。 よく見て貰うとわかるようにマスに対して石が中央に配置されず全てが微妙にズレている。 この手のゲームではマスに対して中央に石が配置されるゲームが多いが、人間は正確に中央には配置できないので不自然に見える。 なので、自然に見えるように工夫したのがこの『不揃い処理』である。  ただ、この処理を作った時に思ったのは、自分としてはとても気に入っているけど、ほとんどの人は気づきもしないという事。  プログラミングの練習目的で作っているのだから公開しなければならないわけではないし、弱いだけのリバーシなんて公開しても誰も遊ばないことは明白で、この不揃い処理を加えたところで遊びたいと思わせる要素には全くならない。  でも、せっかく作ったのだからなんかの要素を付加して公開できないかな? と思った。  色んな可能性を考えている中で、前回の『早押し百人一首 十連‼』で音声を付与した途端、作品に色がついたような感覚を思い返していた。  CPU対戦だからキャラクターに個性を持たせて、複数人用意してそれぞれにセリフを用意したらどうだろうかと連想が始まる。  でもCPUは弱いし、リバーシにそれほど興味のない私がこれ以上強いのを作る気力はない。  複数人CPU用意したって強くもなんとも無いリバーシを遊びたいと思う人がいるだろうか?  まてよ、逆に物凄く弱くして、敗けるのが難しいようにしたらどうだろう? そう思って弱いCPUを作ってみた。  うーん、弱いCPUといっても敗けること自体は出来る。  これでいいのかなぁとまた悩んだ。  そして、たどり着いたのが戦況を9段階に分けて状況に応じたセリフを用意する。勝利を目指すのではなく、状況に応じて変化するCPUキャラの表情の変化、セリフの変化を楽しむというコンセプト。  これは勝利という目的を転換して、目的を楽しむに変えるという事になる。  よく考えてみると友達とリバーシをするというの...

早押し百人一首 十連‼ 制作ノート

イメージ
  2月に正式公開した『早押し百人一首 十連‼』について、今更ながら制作ノートを記しておく。 元々、百人一首の練習用プログラムの要望があったので『 百人一首(表示するだけ) 』(2023/05/27)を作成した。 後、ゲーム形式で練習したほうが面白いのでは? と思って作成したのが『 早押し百人一首 』(2023/06/09) シャッフルせずに順番どおりに確認することも、シャッフルすることも出来るようにした。 それからだいぶ時間が経った後、際限がないので10回で終わるようにしてほしいという要望があった。 そこで作ったのが『 早押し百人一首 十連‼ 』(2024/02/08)であった。 基本的に10回で終わるので短時間に練習できるが基本コンセプト。自動でシャッフルし、シャッフルなしのモードは削除してシンプルにした。(なお、当初の早押し百人一首でも5連モードは途中まで作っていたが完成しないまま機能は公開しなかった。内部的には存在していたので、それをちょっと作り変えたので手間はほとんどかかっていない) どうせだからと10回の平均秒数を8段階に評価し、その段階に応じて最後に笑顔の女性を表示するようにした。 これらの画像はnijijourneyによって生成しているが、この時点ではキャラクターを固定化するのはとても難しかったので、同じような印象の女性というレベルで生成しているだけで同一人物に見えるかは微妙。 Ver1.10 正式公開当初、Ver1.00の時点では以上の特徴で終わっていた。 この後、2024/02/24公開のVer1.10では声優の JiRさま に読み上げ音声を収録してもらったので、私の作った中では初めて音声の入ったウェブアプリとなった。 音声が入ってみると、それまで無音でテキストを眺めるだけだった状況から一変して命が吹き込まれたように感じた。 後からお話を聞くと、競技かるたの読み方で百人一首を読むのは初めてだったそうで苦労して練習されたとのこと。 私は競技かるたに詳しいわけではないので、専門的な立場の人は違う意見かもしれないけど、私にとっては十分すぎる音声だった。とてもありがたかった。 それと、いままで作成したウェブアプリは全て私一人で作ったもので、もちろんプログラミングの練習、復習を目的としているのだからそれで当然なのだけど、『早押し百人一首 十連‼』は...

『倉子ちゃん』制作ノート

イメージ
 プログラムばかり作っていて最近ブログを書いてないので、最近作ったプログラムについて記してみる。 昨日一般公開した『 早押し百人一首 十連‼ 』についてはおいておいて、1月末に公開した『 倉子ちゃん 』について記しておく。 倉子ちゃんはプログラムの練習用に作ったシンプルなパズルゲーム。 昨年から行っているプログラムの再学習を今年も引き続き行うという方針の元に作成している。 ゲームの内容はずばり往年の名作『倉庫番』を元にしたもので、非公開の初期版では『倉庫番』との相違点は殆どなかった。 ゲームのルールに著作権は存在しないとはいえ一般公開するにあたって『倉庫番』との差別化は必要だろうと思った。 そこで、いくつかの案を考えたのだが、基本的なゲームシステムが変わると手間がかかるので、荷物そっくりのダミー荷物を作り、ダミー荷物は触ると消えるというシステムを採用した。 これが最も手間がかからないアイデアだったし、ダミーを見極めて消してしまった後は普通の『倉庫番』と同じ感覚で遊べる。 この『倉子ちゃん』に限らないが、公開しているウェブアプリは全て素のJavascript(Vanilla JS)で作成している。 昨年の初め、ゲームを作ろうとして初めに選んだのはUnityというゲーム開発環境だった。 実に簡単にゲームを作れることがわかったが、肝心のモバイル向けウェブアプリに対応していなかったので、早々に使用をやめた。 その後は、Webアプリに特化したPlaycanvasの練習を行っていたのだが、各種チュートリアルや解説記事がPlaycanvasのバージョンによって動いたり動かなかったりして、Playcanvasのルールに振り回されるのが嫌になった。 そうして、結局Javascriptを基礎からやり直すことにして開発環境やライブラリの類は一切使わない方針へと転換した。 その後は毎週なんらかのプログラムを作り、公開する価値があるかもと思ったものは公開してきた。 『倉子ちゃん』もそうした多少は公開する価値のあるプログラムの一つで、必要以上に手間を掛けていない。 例えば右に動かした時に右向きに、左に動かした時に左向きになるとか、歩くアニメーションを実装するとか、そういう事はしていない。 そういうのはゲーム開発環境なら簡単に実装できるのだろうけど、一つずつ自分でプログラムを組むと結構時...