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

生存報告2018春。ブログさぼってた半年間、ゲームジャムに参加して3D/2Dアクションゲームとか作ったりいろいろしてたよ。

半年くらい間があいてしまいましたが、その間のことをずらーっと書きつつ、リリースしたゲームとかを紹介していきたいと思います。

寛容な人たちに支えられアプリ内課金の記事を連載できた!

あれから5ヶ月以上、何もこちらには投稿していませんでしたが、実は裏ではがんばってブログ以上の文章を書かせていただいていました。

いますぐ始めるアプリ内課金 カテゴリーの記事一覧 - itemstore BLOG

ペンネーム(SakuraCrowd)も出してるし、ポートフォリオとして使っても良いよということでしたので、少し感想というか報告をさせてください。

前述のとおり、ペンネームを公開させてもらいうれしかったのですが、その反面プレッシャーがあったり、他にもしんどいこともありました。
だけど、クライアントの方や itemstore のサポートチームの方、家族のサポートのおかげでなんとか連載を達成できました。

記事の内容としては、サンプルのゲームアプリ(ブロック崩し)をつくり、itemstore のアプリ内課金を導入し、課金の動作確認を行うまでの工程を、ブログとQiitaとgithubを連動して紹介しています。

初心者や課金の実装に苦手意識を持っている方たちが、課金アプリが簡単に作れると思っていただけると幸いです。

もし良かったら、読んでみてください。

あと、課金のないブロック崩しは android アプリとして公開されているので、もしよかったら、遊んでみてください。

ブロック崩し(教材) - Google Play のアプリ




2Dアクション、「ドラゴン遺跡のディガー」リリース

あと、今年2月に行われた Unity1週間ゲームジャム(テーマ:当てる) では「ドラゴン遺跡のディガー」という2Dアクションをリリースしました。
これは、はじめて unity1week の1週間をフル活用した作品になります。
というのも、今までは、作りたいゲームのイメージが固まるまで3~4日かかることもあり、実装は2~3日ということがほとんどでした。

それが、今回は、テーマ発表日のうちに作りたいものが明確になり、実装にとりかかることができました。
思い浮かんだジャンルが、自分の好きな2D探索アクションだったから仕様を決めやすかったのかもしれません。

結局、最初に思い浮かんだ10分の1程度のものしか実装はできませんでしたが、それでも、こんなところを楽しんで欲しいという部分はひととおり公開できたと思っています。

そこらへんの葛藤なども含め、Unity1weekに参加してみた体験レポートを書かせていただきましたので、よろしければご覧ください。

【自作ゲーム】Unity 1週間ゲームジャムに参加しました! - itemstore BLOG

手書きの未実装のステージの図案とか、妥協した点などを、 unity1weekの素晴らしさや感想と共に書かせていただいています。

ゲームは unityroom 様のほうでウェブブラウザからプレイできます。
ドラゴン遺跡のディガー~Digger in Dragon Ruins~ | 無料ゲーム投稿サイト unityroom


Unity(ProBuilder)製、3Dアクション「とりでの中のp.b.j.a.m」リリース


そして、前述の記事の連載が無事おわり、なんか抜け殻状態になっていたころに、 ProBuilderゲームジャム(#pbjam)というイベントがあることを知り、5月6日から ProBuilder をインポートして勉強しながら、丸4日をかけてつくったのが「とりでの中のp.b.j.a.m」です。


前回の「ドラゴン遺跡のディガー」では、ぎりぎりでジャンプしない限りゴールまでたどりつけない部分がありましたが、そこであきらめて楽しく終われないこともあることがわかりました。
その反省を活かし、今回は難しいコースと、簡単(だけど時間がかかる)コースを用意して、なるべく多くの人に、クリアして達成感を感じてもらえるように作りました。

2Dのゲームを作ることが多い筆者にとっては、例えば、カメラとプレイアブルキャラとの間で壁が邪魔をして画面に壁しか映らなかったり、 マップエディットも2次元ではなく3次元ならではの難しさがありました。

3Dというと Blender で過去数回挫折を繰り返しているのですが、今回のゲームジャムの条件にもなっている ProBuilder は、直感的でこだわりすぎなければ、3Dの地形やちょっとした建物が簡単に作れました。
簡単とはいっても、2日間は3Dモデリングに費やしたのですが、4日間で3Dアクションゲームができたのは自信になったと同時に、 ProBuilder すげーと思います。

昨年に作った「DangerousSpaceTransporter~危険な宇宙の運び屋」も3Dの作品で、苦労したことは苦労したんですが、今回のような建物の 3D モデリングなどはなく、宇宙空間にフリーのアセットの小惑星の障害物置いていくことでマップを作っていたので、今回のほうより高度なことをやった気分になっています。

あと、3Dなので、プレイヤーの向きを意識してフィールドを作りました。

このゲームはフィールドの p, b, j, a, m の文字をとると、扉が開いたりして次に進むことができるシステムです。

例えば p という文字に触れると、砦の扉が開くアニメーションがあるのですが、pをとった瞬間はだいたいその扉のほうを見ていて欲しいと開発してたら思うでしょう。
実際、 p に触れて目の前の扉がすーっとあいていく部分は、自分でテストプレイしながら、これは良い演出!と勝手に盛り上がっています。

b をとると目の前に階段が現れるのも、そちらの向きを向いた状態で b をとりやすいマップにしました。
できたら、階段はもっと上から下に垂れ下がってくるとかやってみたかったんですが、今回は不慣れな3Dだし、あんまり細部にこだわると間に合わないと思っていたので、非表示から表示に切り替えるだけにしました。

他にも j をとった瞬間にエレベータが作動して、そのままエレベータにのれる感じのタイミング、あれははっきりいって偶然なのですが、配置うめー!と勝手に盛り上がっています。

a はなんか、まぁ、あれですね。天空への階段をふさいでいる柵がすーっと上にあがるんですけど、カメラアクションとかつけないと気づかれないプレイヤーさんも多いかなと思う地味演出になってしまいました。

m の文字をとるとゴール(というか全部そろう)なんですが、あそこはあせると落ちます。そんな意地悪なつくりではないんですが、あせって一回作者は落ちました。
もうちょっと、ゴールのあとはカメラワークで砦をうつしたり、したかったんですが、そういうのはまた今度の課題にしようと思います。

そんなこんなで、妥協もしつつ、こだわるところは少しこだわりつつ、3Dアクションがうまい人にはより高度なプレイ、苦手な人でも地道にやればクリアできることを意識したフィールドを作りました。

あと、ボールのジャンプ力とか、移動のブレーキの係り具合などは、プログラムのほうで、自分でもよくわからない感じのロジックで、少し調整しています。

今回のゲーム制作を通じて、3Dをもう一回勉強してみようかな、3Dゲームも意外と面白いなと思うようになりました。

そんな手作り感満載の3Dフィールドをかけぬける「とりでの中のp.b.j.a.m」も unityroom様のほうでプレイできます。よろしければやってみてください。

とりでの中のp.b.j.a.m | 無料ゲーム投稿サイト unityroom




ちょっとしたスクリプトの公開

pbjam に向けて作っていたときに、カメラとプレイアブルキャラクターの間の壁が邪魔で表示がうまくできないと話したのですが、そのときに作ったスクリプトを Qiita と github で公開しました。
ライセンスは NYSL なのでご自由にお使いください。

カメラと対象の間に入った遮蔽物を一時的に Renderer.enabled = false で描画させなくするだけのスクリプトです。

3D初心者なので、見当違いかもしれませんが、ちゃんと動作したし、1つのファイルでアップしやすかったので公開してみました。
もしよかったら使ってみてください。

Unity でカメラと被写体の間の遮蔽物を非表示にするスクリプトを作ってみた - Qiita
github の gist

おわりに

ここ数年、30作品近くミニゲームを公開してきて、毎回毎回世の中にはすごい人や作品がたくさん存在することを改めて知り、これからどうしようかなという、途方にくれた感じもあります。

リリース直後はなぜか死ぬほど落ち込むことも多いのに、なぜかまた作りたくなります。下手の横好きかもしれませんが、それが活力になっていると感じます。

今も、まだゲーム制作のアイデアが浮かんできたり、ゲームを作りたいという気持ちはあります。

反面、このままではどうにもならないなというあせりもあります。

ゲーム制作をしつつ、他のフィールドにも機会があればチャレンジしていって、それでも結局どこにもたどり着けなかったら、そこでゲームオーバーになるのかなという感じで、びくびくしつつ開き直り、元気のあるときは挑戦していこうと思っています。

ひさびさのブログでいつもより長く、そして、変なテンションで書いてしまいました。
読んでくださってありがとうございます。

次のunity1weekもできたら参加したいと思っています。
そのときに、ブログを書くかはわかりませんが、もしよかったら読んでやってください。

コメント

このブログの人気の投稿

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