初心者向け・学習コストの低いゲーム制作環境6選

このエントリーをはてなブックマークに追加
2014/10/17 9:59 am
Blog Category / 紹介
 

gsk1
Unityでピンボールゲーム、及びに簡単なレトロなゲームを制作している。ゲームアンドウォッチを意識したレトロ風ゲームはほとんどの処理が完成しており、現在はゲームバランスを繰り返しも調整している段階。
最近は無料で簡単にゲームを作れる環境が整っており、僕のような低スキルの人間でも軽い意識でチャレンジできる事に「なんて優しい世界なんだろう…」と感動しきりだ。解説はWEB上に、書籍だってAmazonで簡単に手に入る。こんなに道具が揃っているなら、みんな作ればいいんだ。そこで、そんな優しさにあふれるこの世界に存在する素敵なツール、フレームワークの一部を簡単に紹介したい。ちなみにワイもほぼ初心者や。
※敷居が低く、日本語の解説が豊富な物を中心に取り上げた
プログラム必要無し・本格的なゲームが作れるMMF2.5
gsk2
プログラムの知識が無くとも、ツール上で本格的なゲームの制作が可能。Clickteamというメーカーに聞き覚えのある人も多いのではないだろうか。1990年代、「マルチメディア」という言葉が一世を風靡した頃にオーサリングツールとしてメジャーな存在だった「Klik&Play」、その後継ソフト「Click&Create」の流れを組む歴史あるソフトだ。僕は当時兄弟で馬鹿みたいなゲームを作り(おならでジャンプする距離を競うゲーム)、狭い狭い内輪だけで楽しんでいた。
フランス製だが代理店によりローカライズされており、日本語パッケージ版・ダウンロード版がそれぞれ販売されている。ツール上にはストーリーボードエディタ、フレームエディタ、イベントエディタ、ピクチャ・アニメーションエディタなど、各要素に応じたツールがあり、絵、音楽、効果音などはサンプルファイルを利用すればこのソフトだけでゲーム制作が完結する仕組みになっている。
制作できるゲームはアクション、パズル、シューティングなどジャンルを問わず、2Dゲームに限れば工夫次第で可能性はいくらでも広がる。プログラムの知識が全く必要無く、間口は非常に広いものの、突き詰めてくるとツールの制約に応じた独自のテクニックが必要になってくると思われる。

■関連リンク

プログラム無しでも、有りでも作れるGameMaker Studio
gsk3
■GameMaker Studio ※無料版有り / 英語のみ
元々はMark Overmarsが大学の講義向けに制作したグラフィックツールがルーツ。現在はYOYO GAMESにより販売されている。以前日本でも一部で話題になり、僕も時々このGameMakerで簡単なゲームを作って遊んでいた。現在日本においてはメジャーとは言えない存在だが、インターフェイス、制作プロセスはシンプルで、実際に触れてもらうとこのツールの完成度の高さが理解してもらえると思う。
ツール内での操作は殆どドラッグ&ドロップで済んでしまう。ゲームオブジェクトを作り、イベントを発行して動作を登録するのだが、イベント発生の条件には衝突判定、キー・マウス操作など諸条件がアイコンで表現されており、これらをクリックすればよい。簡易的なグラフィックエディタ、マップエディタも備わっている。
続きを読む

Unity製LCD風レトロゲーム制作の進捗

このエントリーをはてなブックマークに追加
2014/10/02 12:16 am
Blog Category / ゲーム制作ログ
Tags /
 

 

lcd1

だいぶできてきた
LCD風ゲームをUnityで作りたい。と書いていたが、早速実際に制作にとりかかった。先生はWEB上の解説。なけなしの思考力を振り絞り、トライ・アンド・エラーを繰り返してもがいた結果、レトロLCDゲームっぽい雰囲気を作り出す事ができてきた。とっかかりとしてAdobe Aiでイラストを描き、妄想と願望だけが先行していたが、勢いだけでUnityに手をつけても何とかなるもんだな。
実装した要素
■ベルトコンベア上の缶の動き
■プレイヤーキャラの動き
■ベルトコンベアパーツの取得・移動
■効果音
■缶の落下処理
■スコア表示の実装
後はハイスコア表示、ミス数の表示、ゲームオーバー処理等を実装すれば動作部分は完成する。左上のインジェークターから缶が落下してくるのだが、ここでのオブジェクト生成タイミングとベルトコンベアスピードの様々なパターンを作ればゲームとして成り立つ。完成度は5割といったところ。
非効率なオブジェクト移動の実装
lcd2
プレイヤーの移動、缶、パーツの移動処理実装は、オブジェクトの座標を変更すればよいのだろうが、そうではない非効率な方法で実装した。実機LCDゲームにおいてセグメントが点灯するイメージで、上記スクリーンショットのように表示箇所それぞれにスプライトを配置。スプライトオブジェクトの表示・非表示で移動を表現した。スキルの低さ故の方法だが、こういったプログラムはアホなりに努力すればそれに応えるように動いてくれるのが楽しい。
public GameObject player1 = GameObject.Find(player1);
メンバ変数でゲームオブジェクトを定義
player1.SetActive(true);
SetActiveで表示・非表示をコントロール
スコア表示
スコアの表示には当初LCD風フリーフォントを使ってみたが、数字が切り替わるたびに表示位置が微妙にずれて雰囲気が台無しになった。対策としてスコアの変数を桁ごとに分解し、スプライト画像に置き換えるという実装方法を選択した。今思えば等幅フォントを使えば一発解決だったな。。しかし、この方法を用いればスコアの表示だけでなく、今後様々な応用がききそうなので無駄ではなかったと信じたい。
int[] score_table = new int[5];
int score_calc;
score_calc = main_script.score;
score_table[0] = (score_calc % 10); score_calc /= 10;
score_table[1] = (score_calc % 10); score_calc /= 10
score_table[2] = (score_calc % 10); score_calc /= 10;  
score_table[3] = (score_calc % 10); score_calc /= 10;  
score_table[4] = (score_calc % 10); score_calc /= 10;  
配列を定義して、スコアを代入・計算すれば桁ごとの数値を取得できる。これで5桁分取得し、スプライトに変換。
効果音の実装
LCDゲームなので、効果音はBEEP音じゃないと雰囲気が出ない。試しに缶の落下時にファミコン風の効果音を入れてみると、一気に時代が進化した感が出て雰囲気ぶち壊しだった。BEEP音はLogic9のソフトシンセで作成。
そのほか
背景は当時のLCDゲームでよく見られた擬似カラーを意識して、液晶の上に重ねられたフィルムシートから落ちる微妙な影を再現した。ここまでくると、ゲーム筐体やボタンなどもデザインしてよりレトロな雰囲気を強めたくなる。
で、目標としてあと1週間程で完成させたい。
無理かもしれないけど。

Unityで昔風のLCDゲームを作りたい

このエントリーをはてなブックマークに追加
2014/09/29 9:39 pm
Blog Category / ゲーム制作ログ
Tags /
 

lcd1
とりあえず1本仕上げたい
環境をUnityに移行しピンボールゲームの制作を再開したが、まだまだ完成までには時間が掛かる見込み。多分、真面目にやったとしても仕上がりは来年になるんじゃないだろうか。僕はロードバイクに乗るので忙しいんだ。と言い訳ばかりで何一つゲームが仕上がらないというのも情けないので、ここは1つ、簡単なゲームを短期間で仕上げようかと思う。
題材はゲーム&ウォッチ風に
単純なゲームと言えば、ファミコン発売以前に一大ブームを起こしたゲーム&ウォッチ等のLCDゲームを思い出す。当時は幼稚園児だったと思うが、旅行先の東京で祖母に買ってもらったLCDゲーム「トンデケパーマン」の存在が僕の中では大きい。パーマンバッジ型のステキな本体、手に汗握るゲーム性。かつて熱中した思い出のゲームを再現したい。しかし、そのままキャラを使う事はできないので、根源的なゲーム性を参考するにとどめ、キャラやデザインはオリジナルな素材を用いる。そもそも30年以上前の実機の記憶は当然の事ながら薄らいでおり、おぼろげに何となくで作るしかない。
lcd1
オリジナルキャラ
ゲームに用いるキャラは僕のオリジナルである会社の犬「社畜犬」だ。
LCDゲーム風のデザインを意識してキャラを描いてゆく。
ゲームのルール
トンデケパーマンは遊園地内の線路を走る列車(ブービーが乗ってる)を脱線しないようにパーマンが活躍するゲームだった。線路は4箇所が分断されており、内3箇所には線路オブジェクトが配置されているが、残り1箇所は途切れたまま。3つの線路オブジェクトのうちの1つを持ち、列車の位置に応じて線路を移動させて脱線を防ぐ。というルールだった筈。
lcd2
たしかこんなん
今になって調べてみると、このトンデケパーマンのゲームデザインはゲーム&ウォッチのマンホールをパクった多少アレンジしたデザインなのかもしれない。今回はオリジナルの「社畜犬」がメインキャラなので、遊園地と列車といった要素を用いるにはテーマが違いすぎる。社畜犬はあくまで会社の犬なんだ。虐げられ、それでも我慢し、歯車という部品と人間(犬)との間で、己の存在意義に葛藤する日々を送る存在やないと駄目なんやで。あくまでも社畜(自分)視点でデザインしてみる。
社畜なりの解釈
lcd3
社畜が考えたらこうなった
ベルトコンベア上を流れる缶詰を落とさないように、契約社員である社畜犬がワンオペで作業するゲーム。コスト節減の為、ベルトコンベアは1箇所が寸断されており、他3つある部品を移動させながら、ラインの流れを妨げないように孤独にオペレートするんだ。失敗したら、本社社員に怒られてクビになる。元ネタをリスペクトしつつ、著作権に配慮した結果こうなった。
上記の絵はまだ実際にUnityに落としこんでいない素材データ。絵だけなら誰でも描けるが、これからLCDゲーム風に動かさなければならない。ベルトコンベア上の缶詰の動きに苦慮する予感がする。

enchant.jsからUnityへ鞍替えした

このエントリーをはてなブックマークに追加
2014/09/29 9:39 pm
Blog Category / ゲーム制作ログ
Tags /
 

unity1
統合開発環境であるUnity。マルチプラットフォームに対応し、簡単にゲームが作れてしまうと評判高いが、何となく敷居の高さを感じて今まで手を出せずにいた。そこでenchant.js+box2Dでこつこつとピンボールゲームを作っていたが、制作しているうちに色々と不便な点が見えてきて、制作へのモチベーションが保てなくなっていた。
ここがあかんのや
限りなく低いスキルしか持ちあわせていない癖に何を宣っているのだと自分ながらに思うが、enchant.jsはどうしようもない問題があるんだ。それは自分にとって2点ほど存在する。
■スプライト画像が自動的にスムージングされてしまう。
例えば32×32ピクセル程度の低解像でシャープなスプライトを使いたくても、少しでも拡大しようものなら強制的にスムージングがかかり、ドット絵のエッジがぼやけてしまう。これはenchant.jsの仕様上どうしようも無いらしく、対策するには元のドット絵画像を実際の描画解像度に合わせて用意するしか無い。
■動作が遅い
enchant.jsと物理演算を組み合わせて制作するとHTML5+Javascriptの限界なのだろうか、途端に実行速度が遅くなる。ピンボールゲームは根源となる動作を作り終えていたが、その頃になると自宅のiMacではテストプレイの際に著しくフレームレートが低下していた。プログラムの組み方にもよるのかもしれないが、ここから更に数々の要素を加えていくと、動作速度の面で行き詰まるのは目に見えていた。これじゃスマートフォン上での動作は絶対に無理だ。
これじゃやる気出ねえや。
Unity2Dを試してみる
仕事の繁忙期を終え多少なり時間が取れるようになってきたので、重い腰を上げてUnityをインストール。まずは公式のチュートリアルをかじり、Unityの触りを学んだ後でenchant.jsで作っていたようなピンボールゲームの動作を検証してみた。
unity2
何やこの呆気なさは。。
enchant.jsでは矩形の物理演算オブジェクト座標を手入力で打ち込みしていたが、Unityの場合、透過pngのスプライトに当たり判定用のコンポーネントを適用してやるだけで画像のエッジを検出し、自動で当たり判定が設定されてしまった。何だろうこの呆気なさは…唖然とする。物理演算のパラメーターはGUI上で簡単に設定でき、動作速度も比べるまでもなく高速。これなら作りこんでも大丈夫かなぁと再びやる気を湧き起こさせてくれた。
Unityにおける決まり事や、僕にとってはちんぷんかんなC#でのコーディングなど苦戦する事も多いが、現在はWEB上の情報に助けられながら、以前制作途中の素材を流用し、移植作業をコツコツと進めている。

  • 人気の記事
  • アーカイブ
  • カテゴリー
  • タグクラウド