スキップしてメイン コンテンツに移動

unity1week(お題:ぎりぎり)で「十倍返しの魔鏡(マジックミラー)」を作りました。

先週(2018/6/4~10)開催された unity1week(お題:ぎりぎり) に参加しました。

今回は締め切り4時間前にはエントリーが完了していたので、気力とか体力とかに余力があるようで、こうしてブログもすぐに書いている状態です。

せっかくなので、記憶が割と鮮明なうちに、今回のゲーム制作について書いておきます。

作ったもの 

十倍返しの魔鏡(マジックミラー)」というゲームを作りました。

百聞は一見にしかずなので、次の動画をご覧いただければ、だいたいの雰囲気は伝わると思います。


画面サイズは、なんとなく、スマートフォンへの移植を意識したような 360x640px のポートレート型です。(移植予定はありません)

ゲームの名前にハッシュタグがついてるんだけど

unityroom様の投稿ページでは「#十倍返しの魔鏡 」という感じで、 # を先頭につけました。
これは、単純にハッシュタグで検索しやすくするためです。
SSR級のごく小数のプレイヤーのツイートを無視しないように今回から取り入れてみました。
引用:https://unityroom.com/games/magicmirrorcounterx10

unityroom様のページのデザインが少しずつ改良されていて、このゲーム名のフォントもいいなぁと思いました。

作成過程を振り返る(長い……)

月曜日にお題の「ぎりぎり」をみて、「ギリジャンよこっとび」というアトランティスチックなイメージが思い浮かびました。
そのあとも、10個くらいネタだしをして、なんとなく今回はこれを作りたいなーと思ったのが、マホカ○タやリフ○ク系の魔法を跳ね返すゲームです。

ただ魔法を跳ね返すのではなく、ぎりぎりで跳ね返すほど、威力を倍増させられるところを楽しめるように作りたいと思いました。

それと同時に、
  • アクションが苦手な人は、あんまり欲張らず威力は低めでも余裕をもってバリアをはればクリアできて
  • アクションが上手な人は、ハイリスクハイリターンで高速クリアを目指せる
下手でも上手でもそれなりに楽しめることを意識しました。

火曜日あたりまでは、そんな感じで、アイデアを思い浮かべては整理していました。
本当はすぐにでもプロトタイプを作って動かしたいのだけど、頭のどこかでしっくりいっていないのか、プログラムをする気にはならなかったので、とりあえず、こんな構図でいいかなーという画面の絵の仮組みを作りました。


ツイートしたら何人かの方にいいねされてうれしかったです。
考えたら、このいいねで、やる気がでてきたのかもしれません。

水曜日に、ちょっとだけ Unity で仮組みの絵でキャラを動かしたり、暫定の弾を落としたりしてみました。

まだ、このときは、主人公は横に移動するし、ミサイルも決められた場所から一定間隔でふってくるだけでした。
このときは、なんかこれ面白くないかもという感じがありました。

木曜日はあんまりプログラミングする気力がなかったので、魔法弾(炎、氷、どくろ、雷)の4つの画像を作りました。
でも、寝る前に、「跳ね返ったときに大きさを10倍にして反対方向を向くようにする処理」だけ試してみたくて、ちょこっといれてみると、これが意外にインパクトがありました。

小さかった弾が、打ち返した瞬間に巨大になって相手に向かっていく。

仕様として文章では書いておいたのですが、これを実際にやってみると、思ったよりも楽しく感じました。
実際に動かしてみるっていうのは想像以上に大事だし、テンションをあげてくれるんだなぁと思いました。

金曜日は、テンションがあがっていっきに魔法弾の各4パターンの動きを実装しました。多少バグはあったのですが、それでもいろんなパターンの魔法攻撃が次々にくるのは、見ていて楽しかったです。

土曜日は、今までいれてなかったランキングシステム(naichiさんとニフクラさんのおかげでかなりスムーズに導入できました)やツイートシステム、ゲームクリア、ゲームオーバーなどをいっきに追加し、仮組みながらも基本機能は一応できました。

途中やる気がなくなったときは、BGMや効果音を選んでいれると、いっきにそれっぽい雰囲気がでてきて、テンションがあがりました。

魔法弾のちょっとしたバグもなんとか直せて、明日は本番用の画像を作って、タイトル画面を作るだけという段階までがんばりました。

日曜日は4時過ぎに起きられたので、早朝のうちにタイトル画面の大枠をつくりました。
その後、お昼前に巫女さんの画像もわりとすんなり作れました。

敵の悪霊の絵も描いてみたんですが、仮組みの絵を超えるやつが描けなくて、時間的にもこれでいいかなと思い、そのまま本番用にしました。
プレイヤーの方にどう映ったかはわかりませんが、4~5日も見ていたせいか、敵の絵については違和感は感じていません。

巫女さんのほうは、倒れるシーンもつくってみました。地味ですが、負けた感じを出せてると思います。
あと、敵の悪霊がやられるシーンで徐々に消滅していき、そのあと天の川が現れる演出は作ってよかったと思いました。

日曜の午後からは、本番環境でのテストということで、 WebGLをビルド・アップロードして、試しました。
いつもなら音がでないとか、何かしら問題があるのですが、今回はすんなりいけたので、そのままプレイ動画をとったり、その動画をもとに、紹介用の gif やアイコンを作って、夕方にはエントリー完了。

お題が「ぎりぎり」なのに対して、今までで一番余裕のあるエントリーになりました。

締め切り後、他の方の作品を10~15作品程度遊ばせてもらいました。
すでに170作品もエントリーがあったので、アイコンやタイトルが気になったものや、知っている人の作品を中心にプレイしました。
さまざまなアイデアや演出がありとても勉強になったし、楽しめました。

さいごに

ゲームジャムは、普段なら空中分解してしまうゲーム制作をなぜかリリースまでさせる力があると思います。

しかし、私には、そこで作ったゲームを育てるということができていません。

なんか飽きてしまうというか、もうこれは終わったものという感じで、興味がなくなってしまいます。
しかし、もっと本格的にバージョン管理をしたり、計画をたてて少しずつバージョンアップを楽しみながらすることができれば、今までよりも規模の大きいゲームが作れるのではないかと思っています。

そこらへんをできるようになれれば、もう少し多くの人に長く遊んでもらえるゲームができるのかなと思いました。

いろいろ不安定な状態ですが、できる範囲で無理せずがんばりたいと思います。

最後に、今回もゲーム制作の機会と公開の場を与えていただいた unityroom 様と、ゲームをプレイ・RT・いいねしてくれた方たちに改めて御礼を申し上げます。

次のブログが何ヵ月後になるかは私にもわかりませんが、もしよろしければまた読んでやってください。

今回のゲームは、次のリンクから PC のウェブブラウザでプレイできます。


コメント

このブログの人気の投稿

QTableView で表を表示してみる

タイトルは駄洒落を狙っているわけではありません。 こんばんわ SakuraCrowd です。 今回は今作っているソフトの経過報告です。 最近のブログのパターンは、 「XXX作ったよ。これがスクリーンショットね。あとこんなこと思ったよ。」 という流れですが、 今日はできていないソフトの部分的な話なので、 いつもよりもプログラムちっくな話になると思います。(´Ծ_Ծ´)メガネノトキハマジメブッテル QTableView は GUIライブラリ Qt のクラスです。 それを Python で使うための PySide というライブラリを使っています。 某表計算ソフト っぽい表の GUI です。 このデータの日付が 09/01 なのでおそらくその日に   QTableView 使うぞ!(`・ω・´) とサンプルデータを作ったのでしょう。 Qt Designer という GUI エディタを使うとポトペタでウィンドウを設計できます。 選択できる GUI の中に QTableView と QTableWidget があります。 どちらも上のような表の GUI です。 QTableWidget は 簡単 に値をいれたりできます。 Qt Designer 上で直接編集 することができるので、 サンプルの表を簡単に作ることができます。 それに対して、 QTableView は Qt Designer 上では値を編集できません。たぶん。 QTableView の強みは MVC の構造 を使えることです。 名前のとおり QTableView は View です。 これにデータを管理している Model オブジェクトを設定して使います。 Model クラスを作る手間がかかりますが、 GUI の細かな操作をしなくても Model に応じた表を表示してくれます。 Model は QAbstractTableModel を 継承 して作ります。 コンストラクタで基底クラスの処理を呼び出し、いくつかの純粋仮想関数をオーバーライドします。 def __init__ ( self , parent= None , *args):

LibreOffice Writer 文書の差分 (WinMerge x TortoiseGit) + 社畜PCの原因と対策

お久しぶりです。皆様におかれましてはお風邪などをひかれてはいませんでしょうか。 春と秋だけあればいいのにヽ(`Д´)ノとつい思ってしまう SakuraCrowd です。 今日はいつものような製作日記ではなく、ちょっとした役立つメモを書きました。 タイトルにもあるとおり、 TortoiseGit への WinMerge の導入の仕方です。 今まではソースコードくらいしか差分で確認しなかったので、 TortoiseGit 標準の Diff ツールで問題なかったのですが、 LibreOffice の Writer が最近自分の中で便利だと話題になっていて、それを差分表示するためにちょっと調べてみました。 #Writer は、文章書いて、ちょっと絵をいれたり表を作るのに便利だと思います。 #リッチテキストのエディタを探していて、これが一番よさそうな気がしたので使ってます。 それとブログを書くときはあまり長く書かないつもりだった、 Win7 PC が社畜PCになってしまった際の原因と対策も後半に書きました。割と有用な情報かもしれませんので、時間がありましたらご覧下さい。 まずは TortoiseGit で Writer の odt ファイルを管理して、差分も普通に表示させる方法です。 WinMerge(+plugin) 導入手順 すでに TortoiseGit はインストールしてある前提ではなします。 1.信頼と実績の窓の杜様から WinMerge 日本語版をダウンロードします。 WinMerge - 窓の杜ライブラリ 私の PC は 64 ビット版なのでそちらを選びました。 2.WinMerge をインストールします。 フォルダを指定し普通にインストールできます。 インストール直前の設定で TortoiseGit をチェックしておくと自動的に TortoiseGit の利用する Diff ツールの設定を置き換えてくれるようです。 これの設定は TortoiseGit の設定の Diff ツールの項目で確認できます。 3.LibreOffice Writer のファイルを読むためのプラグインをダウンロードします。 ぐぐって出てくる英語版のDLサイトは応答がなかったりしましたが、日本語版は大

QWidget の選択時のデザインを CSS で変える方法

ひさびさに書きやすいネタができたので、1ヶ月ぶりくらいに書きます。 ここ1ヶ月の作業内容 タイトルのとおりなのですが、 テーマがいきなりマニアックでとまどったり、 デスチェリー農場の続編はどうしたんだよおおおお! とか新作を楽しみにしている生命が宇宙のどこかにいるかもしれないので あらかじめ書いておくと、 ここ1ヶ月は日記ソフトを作ろうと python + pyside + sqlite の勉強をしていました。 勉強というか、ウィンドウ起動から初めて、 GUI をせっせと作ったり、ファイル保存と復元を作ったりしてます。 Copy & Paste や Redo/Undo など未実装の処理も多くあります。 今回は、タブ遷移とかクリックで選択されたウィジェットの、 背景色が変わるとか、 枠線が出るとか そんな設定を CSS で実現します。 PySide と CSS について PySide は前も Raspberry Pi 2 で使う mount コマンドの GUI ツールで使いました。 Python の GUI フレームワークです。 さすがに HSP ほど簡単にウィンドウを出すことはできませんが、 かなり楽だし、 GUI の種類や機能もかなり充実しています。 ある程度 GUI を作っていて、 こんな露骨なウィンドウだと受けが悪いんじゃないかな と思いました。 なんか今っぽいおしゃれなデザインにしたい。 そんな誘惑にかられて調べていると、 CSS でお手軽にデザインを変更 できることがわかりました。 QWidget 派生のオブジェクトを作る際に、 setStyleSheet(str_css)で css を読み込ませることで簡単に実現できます。 次の例では file.css というファイルに書いた css を QWidget 派生クラスのオブジェクトに読み込ませます。 # css の読み込み with open("file.css","r") as f:     self.setStyleSheet("".join(f.readlines())) いろいろな G