feature image

2021年12月21日 | 作品紹介

2021ハッカソン 11班「Drawing Inc.」

チーム紹介

メンバー

・Facish(18B)  通信関連・VRoid・AI

・Hinaruhi(18B) ゲームシステム全般

・Uzaki(21B) デザイン・アイデア

制作物「Drawing Inc.」

概要

簡単な概形しか認識できないポンコツAIになんとかしてお絵描きでお題を伝えよう!

会社に散らばる様々なモノから、「あまい」や「しょっぱい」といった「コトバ」を抜き出して、

描いた絵に「コトバ」と「イロ」で、特徴を付与して、AIが理解しやすいようにしてあげよう!というゲームです。

開発環境

Unity 2020.3.23f1

開発の流れ

チーム決定後

テーマが「Draw」ということで、なんとなく全員でお絵描きゲームをつくることまでは共通認識があったもののそこからアイデアが思うように伸びず、苦戦しました。

議論は難航し、

お絵描きするだけじゃつまらなくない?

→お絵描きのために必要な素材を集める探索パートを増やす

できた絵を誰がどうやって評価する?

→AIにやってもらえれば客観的にゲームのテンポを損なわず判定できる

絵を判定する機械学習AIつくるのめんどくない?

→簡単な形だけ判定できればもういい気がする

簡単な絵じゃ区別できなそう

→探索パートで区別するための修飾語を探す!

という流れの末、現在のルールとシステムが完成しました。

おおまかなゲームシステムが完成したのをいいことに、「マルチプレイ」「VRoidを使う」「描いた絵を最後に美術館で鑑賞する」など思い付きでアイデアを膨らませた結果、この後開発は地獄と化すこととなりました。ごめんなさい。

マルチプレイの実装

マルチプレイの実装にはPhotonを用いました。

部屋の作成や位置同期, 画像の送信など, 過去に作成した制作物を参考に色々と作成を行いました。

VRoidの導入

VRoidSDKを使って選択したモデルで遊びたい!として, 初めてのVRoidを使っての開発となりました。

プレイヤーの選択するモデルが分からないため, マルチプレイの実装やアニメーションの適用など大変でした.

描いた絵の概形を把握するAI

AIはTextureに描いた画像に対してOpenCVにて概形推定を行い, 最も類似した形状を選択する仕組みになっています。

頭の悪いAIを作ろう!というテーマのもと, 非常にあっさりとした仕組みでの推定となりました。

Textureへの描画についてはUnity分からん!と言いながら色々と Hinaruhi に助けてもらいながら開発を行いました。 (この場を借りて感謝します)

ゲームシステム全般

マルチプレイ周りの実装としては、上記に記載した通りです。

通信以外のゲーム本編部分のプレイヤー移動等については主にUniRx,Zenjectを用いて、簡易的なStateのシステムを作成することでプレイヤーの移動↔スケッチの切り替えや、カウントダウンや初期化時の処理の制御を容易にしました。

ただし、これらUniRx,Zenjectについて把握しているのが僕(Hinaruhi)だけだったり、そもそも組んだプログラムの構造の依存性関係まだよくない部分があったために、オフラインでプレイヤー移動の確認するためのシーンを作っても、プレイヤーオブジェクトを持ってくるだけではプレイヤー移動のテストができない等、特に他メンバーが利用するという観点では考えの甘い部分が多いのが課題でした。

「コトバ」を管理するエディタ拡張

各モノの名前や、モノが持つ「コトバ」のEnum配列をスクリプタブルオブジェクトにして、各モノのオブジェクトにもたせる、という仕組みを取りました。

ただ「モノ」全体の仕様変更に柔軟に対応するため(例えば今回だと調べられる「モノ」がほかのオブジェクトと判別できるようにするため、パーティクルを飛ばすことにしました)、そして今回「モノ」に使うための3Dモデルのアセットのプレファブを使いたかったので、それを「モノ」プレファブのバリアントに変換するためのエディタ拡張を作りました。

デザイン

UI、マップ制作、「コトバ」と「イロ」と「概形」でお題を推測するための辞書作りなど、見た目とレベルデザインに関わることを行いました。

マップは複数のAssetを組み合わせ制作、UIはAssetのスクリプトやデモシーンを参考にしつつ、大体Figmaで作成しました。

辞書作りに関しては完全に鵜崎の独断と偏見で作成しました。

感想

Facish

ハッカソンでがっつり開発を行うのは久しぶりでしたが, 今回は非常に内容の濃い開発でした。

PhotonやOpenCV, VRoidSDK を使用しながらの開発となり, 大変な部分もありましたが, 楽しいものとなりました。

Unityが分からず色々と迷惑をかけた部分もありましたが, 制作として形になるものが出来て良かったです。メンバーに感謝します。お疲れさまでした。

Hinaruhi

ここ最近ハッカソンでがっつりプログラムに専念することがなかったので、なるべくどうすれば各々の依存性を切り離し、テストなどの観点からオブジェクトを扱いやすくできるかを考えつつ、しかしながらメンバーにアーキテクチャの押し付けを行ったりして、そこでUnity依存のバグを生み出しまくってしまって申し訳ない部分が多く、反省点が多いともにそのあたりを考え直す良い機会となりました。

後、今回はゲームの完成に対してFacishの通信周り、絵画パート周りといい、Uzakiのゲーム性の追求力とデザイン力にかなり助けられました。

ありがとうございました!

Uzaki

1週間とは思えないほど濃い開発期間でした。

自分のよわよわ実装力のせいで、アイデアは出す癖に、ほとんどプログラムに参加できず、先輩お二人にただただ大変な実装を押し付けまくるというカスムーブを行ってしまいました。

にもかかわらず、終始優しく自分に接していただいたお二人には本当に頭が上がりません。ありがとうございました。そして、本当にすいませんでした。

バグやプラットフォーム、自分のプレゼン不足のせいで、まだまだこの作品を遊んでもらっていないので、なんとか改善していつかどこかで発表しなおしたいです。お疲れさまでした。

Uzaki icon
この記事を書いた人
Uzaki

たすけてください。

Facish icon
この記事を書いた人
Facish

ゲーム制作を中心に活動しています。

Hinaruhi icon
この記事を書いた人
Hinaruhi

どうでもいいけどTwitterでは特に進捗報告してません。DDR好きな人は一応よろしく。

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月21日
School Breakin' Tag -新感覚おにごっこ-
s9 icon s9
2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2021年3月19日
traPグラフィック班の活動紹介
NABE icon NABE
2023年7月15日
2023 春ハッカソン 06班 stamProlog
H1rono_K icon H1rono_K
2024年1月16日
2023年冬ハッカソン参加記 チーム2 20%電電 "Orbit"
onkyi icon onkyi
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記