まっそのせかい

やった事のメモとか

これまで作ったものを振り返る -いわゆるポエム-

この記事はCCS †裏† Advent Calendar 2018の2日目の記事です。
昨日の飯テロ(実行犯:kakira)

CCS4年のまっそうめんです。
気付けばもう4年生で、もうすぐ卒業して消えゆく存在です。
卒業論文が提出できればの話
これまで自分は何をしてきたのか、何を学び、何を得る事ができたのだろうか。
年を取ったせいか、ふとそんな風に考える事があります。

そんな訳で、今回は「これまで作ったもの」をなんとなく振り返って懐かしさに浸ろうかなと思います。
少し前に某先輩が過去に作ったゲームを紹介してるのを見てやりたくなっただけ
CCSの作品集に出したり大学祭の展示に出したものを中心に、思い出せる範囲で書き連ねます。

以下、基本的に作品紹介という名のポエムで有用な情報の類は無い気がするので、興味の無い人はそっ閉じ。
むしろ興味ある人がいるのか…?

nightmare

  • 制作時期:1年夏
  • 使用言語:C

f:id:massoumen:20181114023234p:plain

大学に入ってプログラミングを始めて最初に作った記念すべき作品。
コンソール上で動くプログラムで、C言語講座発表会に出しました。
このゲーム実は必勝法があって、逆にそれ以外では勝てない(COMが絶対勝つ)ようになっています。
(暇な人は考えてみて下さい)

FullFrontal

  • 制作時期:1年秋
  • 使用言語:C(DXライブラリ)

f:id:massoumen:20181117233431p:plain

全てはここから始まった…(?)
ゲーム制作に挑戦するにあたり、まずは小規模のものを作る事が大事らしいです。
それを遵守した結果、友達がこちらを見ている間スペースキーを押して服を着るゲームが生まれました。(?)
見られてない間は全裸です。これ以降サークルでは全裸ゲーの人という扱いになった気がします。
大学祭で展示したら遊びに来たょぅι゛ょがこのゲームをプレイしてる光景を見てしまい、死にたくなりました。
(大学祭に展示するゲームの内容はよく吟味した方がいいと思いました)

エンシェントジャガイモ

  • 制作時期:1年冬
  • 使用言語:C++(DXライブラリ)

f:id:massoumen:20181117233452p:plain

C++の練習がてらシューティングゲームの制作にチャレンジしたもの。
std::vectorがやたら便利だったり、画像の読み込みミスってメモリがやばいことになったり、追尾弾の処理って面倒なんだなぁ…って思ったりいろいろあったけど、その辺も含めプログラム作るの楽しいなぁとか思いながらやっていた気がする。
ゲームを作るにあたり、素材の確保に困っていた時にエンシェントジャガイモっていう謎のスレを見つけてしまい、「そうだ、じゃがいもの画像を使えばいいんだ」って謎の思考の結果ビジュアルがこうなった。

あおてんじょう

  • 制作時期:2年春
  • 使用言語:C++(DXライブラリ)

f:id:massoumen:20181114222003p:plain

前回のシューティングのビジュアルが完全にネタなので、今度はまともなビジュアルにしようと思い引き続きシューティングゲームを制作。
プログラムは前作のものを流用し気になる箇所を直ししたりシステムを少し変えただけなので、全体像がどことなく前作と同じ。
1枚画像を用意して表示するだけだと敵がスィーと平行移動する(伝われ)何とも言えない感じになるので、2枚用意してちょっと動きを足すなどしてそれっぽさを出そうとしていた。
敵1号(名前はまだ無い)が地味にお気に入り。

f:id:massoumen:20181114220928g:plain

新歓ランチャー

  • 制作時期:2年春
  • 使用言語:C#(DXライブラリ)

f:id:massoumen:20181115011821p:plain

新歓の展示用に作った。
最初C++で作ろうとしたんだけどなんか上手くいかなくて途方に暮れていた。
先輩がC#で作れるって教えてくれて、それでなんとか新歓までに間に合ったもの。
唐突に作ってって仕事丸投げされて、作り方とかの情報とか一切無くて結構頭を抱えていたのは今となっては良い思い出(?)である。
ランチャーの作り方とかデータとか、情報の類は頑張って後輩に託そうと思った瞬間だった。
(この後C++で作った奴は以前のアドカレで一部記事にしたりした)
制作そのものは結構楽しいので、なんか作りたいけど題材がない人とかおすすめかもしれない。

FullFrontalRevolution -全裸再臨-

  • 制作時期:2年夏
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181117152340p:plain

全裸ゲー第2弾です。(爆)
今回は友達に見つからないように全裸で踊ります。
コンボが繋がるとフィーバーして友達も脱ぎます。(爆)

f:id:massoumen:20181117152400p:plain

綺麗なシーン遷移や図形の当たり判定取得などライブラリの力を存分に活用していたり、キャラ絵を描いてもらったおかげかやたらハイクオリティ(当社比)なバカゲーになってしまった。
あとゲーム内には組み込まなかったけど送られてきたキャラ絵の中にKBTITって名前のファイルが混ざってて爆笑していた。

なぜかこれまで作ったものの中でトップクラスに気に入っている。
使っていたデスクトップPCが逝ったので開発データが消滅してて、ちょっと悲しんでいる。
(完成品は別の所にもたまたま保存していて生存)

Sara Washer

  • 制作時期:2年夏
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181117154533p:plain

コミケ作品集の締め切り直前で「もう1本なんか作ろうぜ!」っていう例の勢いでプログラムを担当し、1日だか2日くらいで極力バグを出さないように勢いでコードを書きまくった気がする謎ゲー。
基本的には流れてくる皿を洗い拭き取るという労働の基本を学ぶゲームなのだが、処理が追い付かないと判断するや皿を粉砕して証拠を隠滅する狂気のムーブを行えるのが特徴。
ポエム書いてて思ったけどこいつろくなもん作ってねぇな

大学祭ランチャー

  • 制作時期:2年秋
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181117175513p:plain

大学祭が秋にあるので、安直だけど読書の秋という事で本を題材にしたデザインで作ったランチャー。
ページをめくるアニメーションを作ろうと思ったけど、手書きでそれを表現する画力はないのであれこれ考えた結果、何故かBlenderという3DCGソフトを使って本とページめくりのアニメーションを作ろうという結論に至った。(?)

f:id:massoumen:20181117174959p:plain

制作期間は1ヶ月無いくらいで、その内2,3週間はBlenderでの本とアニメーション制作に費やされている。(プログラムは約3日)
Blenderを使った事がなかったので手探り感あって楽しかったけど結構疲れた。(操作とか慣れなかったな…)

旅するナイト

  • 制作時期:2年秋
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181117180306p:plain

夏休みは競技プログラミングに時間を注ぎ、後期が始まったらランチャーを作っていたのでゲームを作る時間が無い中、何か軽く作りたくなったので短時間でサクッと作ったミニゲーム
元ネタはKnight's Tour(騎士の巡歴)と呼ばれるパズルです。
昔に比べサクッと作れる度合いの高まりを感じ、プログラミング始めた頃に比べだいぶ手馴れてきたんじゃないかとか思ったり思わなかったり。

朧火

  • 制作時期:2年冬
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181126215415p:plain

複数人で組んでローグライクゲームを作ろうと思ったが、残念ながら制作が止まってしまったもの。
チーム制作ってめっちゃ難しいんだなって思いました。(小並感)
幽霊とか妖怪とか、その手の類が出るタイプのゲームになる予定でした。
僕はプログラム担当だったんですが、ターン制でプレイヤーの動作に合わせて敵の移動方向や攻撃を決定したり、ローグライク特有の視界設定やマップ描画など、これまで作ってきたものとは段違いにプログラムの錬成が難しくてつらぽよだった(白目
敵の移動処理のために幅優先探索を用いたりと、競技プログラミングで学んだ知識が役に立って感動するなどしていた。
ローグライク系のゲーム、機会があれば再度挑戦したいと思ったり思わなかったり。

Fantasia

  • 制作時期:3年夏
  • 使用言語:C#(Unity)

f:id:massoumen:20181118001635p:plain

3Dのゲーム制作に挑戦したくてUnityの本読んでいろいろググりながら作ったアクションゲーム。
一部のエフェクトはEffekseerというエフェクト制作ツールを用いて作成してみた。
DXライブラリやSiv3Dでのゲーム制作とは結構勝手が違って慣れるまで時間がかかったけど、結構新鮮で楽しかった。
あとユニティちゃんがかわいい

この世の終わりみたいなゲーム

  • 制作時期:3年夏
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181118004713j:plain

危なさがMAXなバカゲー
ゲームシステム自体は全裸ゲーに近く、ウェイにバレないように酒を捨てるゲームという内容となっている。
オタクたちが自宅で録音した「ウェーイwwwww」や某インスタの音声に似た何か(加工済み)や当時Twitterでよく見かけたバジリスクタイム風のアニメーションなど、改めて見るといろいろ酷い。

卯月識別器

  • 制作時期:3年冬
  • 使用言語:Python(Keras)

どうも流行っているらしい(?)DeepLearningをやってみたくて、画像を入力したらそれが卯月かどうかを判定するプログラムの作成に挑戦した。
データを集めるためにアニメを再履修し、卯月を中心とする各キャラクターの顔が映ったタイミングでスクショを撮る苦痛極まりない作業が必要で、推しにかける情熱が試されているなと。
年末、弟が大量に友達を連れ込んでリビングで盛り上がってる中、僕は画面に向かって黙々と改良をしていた。
黒魔術的パラメータ調整(手動でのごり押し)、精度向上の祈りを捧げるなど数々の行いによりそれっぽい(?)結果になってとりあえず満足した。

声質変換(toみくにゃんボイス)

  • 制作時期:3年冬
  • 使用言語:Python(Keras)

f:id:massoumen:20181122175611p:plain

卯月識別器で画像を扱ったので、次は音声かなと軽い気持ちで手を出して絶望した奴。
今回用いた手法では同じ内容を喋っているデータが必要なんですが、これが何を意味するかというとみくにゃんと同じセリフを喋って録音する必要があるんですよね。
自分の事をみくにゃんだと勘違いしている精神異常者

音声処理自体もよく分からんし、かなりキツいチャレンジだなと始めて少し経って気付いてしまった。
結局クオリティも微妙で、DeepLearningが全てを解決してくれる訳じゃないんだなと思ったり思わなかったり。
(いろいろなモデルが次から次へと提案されているので、その辺試したらもう少しマシな結果になるのかもしれないが…)

卯月識別器と声質変換以外にも、画像のスタイル変換だったりGANを用いたキャラの生成や変換を試したりもした。
個人的にはスタイル変換が一番面白かった気がする。

f:id:massoumen:20181122153633p:plain

Secret Code

  • 制作時期:4年夏
  • 使用言語:C++(Siv3D)

f:id:massoumen:20181122183121p:plain

最後はまともなゲームで締めようと思い、コツコツ作っていたタワーディフェンスゲーム。
本当は夏コミの作品集に出す予定だったのだが、研究とシージに明け暮れていたせいで間に合わなかったので大学祭の展示で出す事に。
大学祭では割と好評だったらしく、作ったかいがあったなぁと。(ウレチイ・・・ウレチイ・・・)
ただ、ゲームの性質上1プレイの時間が長くなってしまい混雑に貢献していたらしく、現場の人たちへの申し訳なさで心の中で土下座してた。
少し手直しして冬コミの作品集にも出す予定。

ポエム書くために過去作品引っ張り出したりいろいろ思い出したりしてたら懐かしさやら何やらで予想以上に死んでしまった…
明日の記事の担当は…あれ、誰もいない…
とっちーさんがシージの記事を書いたようです。

yoooomaruuuu.hatenablog.com