投稿

ラベル(javascript)が付いた投稿を表示しています

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

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

ベトナム語文法変換11〜15

イメージ
 さて、プログラムの改善をしつつ、ベトナム語文法変換は追加し続けており既に15まで公開している。 ブログに記していない11〜15について記しておくことにする。 ベトナム語 文法変換11・ Mặc dù Mặc dù  + 主語 + 動詞 + 目的語 +  nhưng  +主語 + 動詞 + 目的語 .〜にかかわらずも、〜だけれども 当初は似た感じの表現 Bất cứを含んだ形でスクリプト化していた。そのため、「〜だけれども」のところも選択式になっていた。 項目が多いと操作に戸惑う人が多いので選択項目は5つくらいの方が良いと感じる 生成イラストは背景を白にすることで不自然な背景に悩まされることをなくし、短時間に終わらせた。ちょっと不自然な指は直す作業せずに吹き出しで隠した。 ベトナム語 文法変換12・疑問詞 (ra) sao?/thì sao? ~ (ra) sao? 〜はどう?  (ra) sao rồi? 〜はどうだった? ~thì sao?  〜のほうはどう?  ~thì sao rồi?  〜のほうはどうだった? これは昨年8月の初めてのBeba先生とのレッスン時に教えてもらった文法、〜のほうはどう? をスクリプトにしてみた。 教えてもらったのに使いこなせていない文法が多いので、最近習った文法と並行して過去に教えてもらった文法をどんどんスクリプト化していく方針。 選択項目は最少の3、しかもデフォルトの文は1つ目を「無し」にしているので2項目しか選択していない。 これは〜のほうはどう? の〜の部分が多岐にわたっており、「あなたの母の病気」や「そのマウンテンバイク」といった構造の違う文を複数項目を組み合わせて表現しようとすると項目数がとても多くなってしまい、08の時みたいに項目が多すぎてどう操作していいかわからないという苦情を受けそうに思えたので、まとめて一つにしてしまったのである。 結果として利用者が工夫する部分が殆どない、面白くないスクリプトになってしまったかもしれない。 やはり変な組み合わせをする事が出来て、失敗を体験できる方が面白い。 かといってこのスクリプトを再度細分化して作り直すかと言うと、そこまではしたいと思っていない。 ベトナム語 文法変換13・ thì 〜のほうは〜です...

学習用ベトナム語文法変換スクリプト 04〜08

 毎週Beba先生から教えてもらう文法を忘れないために教えてもらった文法を一つずつシンプルなスクリプトを作成。 ベトナム語文法変換04▪否定の文末詞"đâu" 主語 + không + 動詞 + 目的語 + đâu.~ではないよ!/~じゃないよ! ベトナム語文法変換05▪文末詞"rồi mà" 主語+動詞+目的語+ rồi mà! 〜したじゃん!〜したのに!〜したってば! 百人一首 表示するだけ ベトナム語文法変換06▪về (1)主語+動詞+về + 名詞. ~について、関して、 (2)主語+動詞+目的語+ về+名詞 ~へ(戻るイメージ) ベトナム語文法変換07▪hầu hết/như (肯定) Hầu hết/như  +主語 + ( đều )+動詞+目的語.ほとんどの~  共に (否定)主語 +  hầu như không  +動詞+目的語.ほとんど~ない 早押し百人一首 作成中 ベトナム語 文法変換08▪文末詞" ha/nha " ~  ha!  ~ね!~だね! 共感してほしいときに使う ~  nha!  ~ね! (相手に言っておこう、相手に認識させとこう) 特に説明するまでもないかな。 百人一首関連はプログラムの練習として作っているもの。 ベトナム語変換スクリプトもプログラムの練習を兼ねつつベトナム語の構造を理解するという趣旨。 最近習った文法から作っていて、番号は作った順で習った順じゃないので、これから過去に習った文法を作っていく予定。 Javascriptを練習中という事で、特別な事は何一つしていないのでプログラムの説明をする必要はないと思う。 基本的に実用性は無く、あくまで学習用で文法を確認するプログラムとなっている。 08 文末詞 ha! / nha! については様々な場面で使われるのでデフォルトを全て「無し」として自由に文末詞と組み合わせることが出来るようにした。 興味があったら自由に使っていただきたい。

学習用ベトナム語文法変換スクリプト02,03 hay không? /hay chưa? để làm gì?

イメージ
 前回、試しに日本語からベトナム語に変換する単純なプログラムを作ってみた。 ほとんど反応はなかったが、 Beba先生 は評価してくれたので気を良くしてさらに2つ作ってみた。 ベトナム語文法変換02 hay không? / hay chưa? 〜しますか? / 〜もうしましたか? ベトナム語文法変換03 主語+動詞+目的語+ để làm gì? 何のために(何をするために)〜? どちらも前回同様に一つの文法にしか対応していない。 また、組み合わせを間違えると変なベトナム語が生成される。(ワイン、遊ぶ とか、テレビゲーム、食べる など) あくまでベトナム語文法学習用プログラムなので実用性を求めてはいない。 ベトナム語文法変換02 hay không? / hay chưa? 〜しますか? / 〜もうしましたか? Beba先生に教えてもらった文法の通りに 「〜しますか/それともしませんか hay không?」と「もう〜しましたか?/それともまだですか? hay chưa」の文に対応している。 二重動詞の望むを選ぶとmuốnが追加されて「〜したいですか/それともしたくないですか?」に変化する。 望むを選んだ状態で「もう〜しましたか」 のhay chưaを選んでしまうと変な感じになる。 ベトナム語文法変換03 主語+動詞+目的語+ để làm gì? 何のために(何をするために)〜? これは〜何のために để làm gì の質問と、それに対する返答を両方選択して質問と返答を自動生成する様に作ってみた。 目的語と動詞の組み合わせが変だと当然変なベトナム語が生成されるし、質問と返答の内容がバラバラだと変な会話になる。 「石鹸」「取る」 「顔」「洗う」 なら hỏi Bạn lấy xà bông để làm gì? trả lời Mình lấy xà bông để rửa mặt. となる。 ちなみに 「イタリア」「来る」 「お金」「洗う」 だと hỏi Bạn đến Ý để làm gì? trả lời Mình đến Ý để rửa tiền. と、rửa tiền は資金洗浄なのでちょっと物騒な感じになる。 まとめ 前回同様、教えてもらった文法を頭に叩き込むために文法の仕組みをスクリプトで作ってみた。 Javascriptの練習でもあるの...

日本語からベトナム語に変換する【なんてことない】プログラムを作ってみた

イメージ
ちょっと前にJavascriptの再学習を始めて、学習のための練習用に干支を表示するプログラムを作った。始めはただ日本語で干支を表示していたが、そのままでは面白くないので日本とベトナムの干支を同時表示するように変更した。 日本とベトナムの干支は異なるので両方を同時に表示することで違いがはっきりわかるようにした。 それがこれ→    日越干支確認 Xác nhận can chi Việt và Nhật    15年以上前、数値を入力すると自動的にベトナム語の読みを表示する関数を作ったことがあった。 当時、ベトナム語の数字の読みを練習していて自動で表示されたら便利じゃないかと思って作ったのだが、動作するようになった頃には仕組みを理解していて関数を使わなくとも読めるようになっていた。 これに気を良くした私は普通の文法もプログラムで組めないかと考えたが、数値ほど単純ではなく、作ることは出来なかった。 そして今、毎週Beba先生から教えてもらう新しい構文を一つずつ日本語からベトナム語に変換するプログラムを作ったらどうだろうと思った。 手始めに作ったのがこれ →  ベトナム語 文法変換01 主語、動詞、目的語などを選ぶとそれに合わせたベトナム語を表示するように組んでみた。 ポイントは一つの文法にしか対応していないこと。 だから状況判断的な部分はほとんどなくてシンプルにその文法を勉強するだけの内容になっている。 このようにして、一つの文法を一つずつプログラムを組めば頭の中に日本語とベトナム語の文法が叩き込まれていくのじゃないかということを期待している。 つまりこのプログラムは文法の違いを確認するためのものというよりは、作っている過程で作った私が文法を理解するためのものであり、出来上がった時点で目的は達成されている(はず) なので、プログラム自体には大した意味はない気もする。 けど、せっかく作ったので公開しておこうと思う。 興味があれば自由に使っていただきたい。