2014年9月
1 2

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上の情報に助けられながら、以前制作途中の素材を流用し、移植作業をコツコツと進めている。

ロードバイク購入から1週間のログ

このエントリーをはてなブックマークに追加
2014/09/18 1:58 pm
Blog Category / 日記
Tags /
 

rb7
ロードバイクブログになりつつある今日此頃
GIANT TCR0を購入してから1週間が経った。中小企業に籍を置く社畜という身分上休日にしか時間を確保できなかったが、それでもこの期間に累計188kmの距離を走る事ができた。
購入後は試走で8km。その後勤務後に夜練として近所を8km走ったが、住んでいる場所が田舎なだけに街灯がほぼ存在しない。暗闇の中を貧弱なライトとLED尾灯を付けて走ったが、路面状況が全く分からない、部活帰りの中学生が無灯火・逆走で走ってくる等、環境的に危険がつきまとい、気持よく走るどころの話ではなかったので夜練はそれ以来止めた。
100kmのロングライド
 正確には98.2kmだが、一応当初の目標である100kmロングライドを達成。獲得高度4000mというルートの性質上、運動強度は通常の100km走行とは段違いな筈なので、残り1.8kmは誤差の範囲内とした。このライドで坂道における自分の貧弱な脚力を痛感し、まだまだ練習が必要だとの意識を持った。
海沿いの平地を75km
山はまだ無茶だという事で次に選択したのは平地中心のルート。海沿いの国道を往復75km走った。
獲得高度は600m程度とほぼ平地で、前回の山ルートに比べれば随分と気楽に走る事ができたのだが、それでも時折現れる坂を登るとすぐに足の筋肉が悲鳴を上げる始末。加えてこのライドの3日前に走った山ライドの際のケツ痛が残っており、終始痛みと闘いながらの走りとなった。姿勢やポジションが駄目なのだろうか。
妖怪ペダル回しに遭遇
折り返し地点近くで海を眺めつつ上ハンを握り、のほほんと漕いでいると、後方から車の走行音では無い異様な音が聞こえてきた。その直後、チームジャージを着た集団のローディに物凄い速度差で抜かれた。50km/h位で巡航していたんじゃないかな。抜かれた後はあっという間に僕の視界から消え去っていき、「なんだあれは、にんげんじゃない」と唖然とさせられつつ、間もなく到達する折り返し地点を目指した。
その後折り返し地点にある道の駅に着くと彼らが休憩していたのだが、尋常になく鍛えられた脚の筋肉、メンバーの年齢差、そして平日に集団走行という要素を見るに、彼らはひょっとすると高知競輪のプロ選手なのだろうか。との予想をひとり立てていた。
折り返し地点で休憩後、帰りのルートを走っていると再度ぶち抜かれたのだが、彼らはきつめの勾配の坂を全くスピードを落とさず、シッティングのまま30km/h以上のスピードで駆け上がっていった。妖怪ペダル回しかよ(褒め言葉)
今後の課題
■巡航速度30km/h、アベレージスピードを25km/h程度まで上げたい
  •  今の脚力では平地の巡航速度が25km/hを保つのがやっとなので、それを底上げしたい。
■筋持久力、耐乳酸力を上げたい
  • もう筋肉の無さは明らかなので、暫くロングライドはやめて、40km以内の短距離、中〜高強度でのトレーニングに移行したい。心拍計が無く、運動強度が感覚でしか測れないので早く心拍センサーを用意したい。

ロードバイクで100km(山)

このエントリーをはてなブックマークに追加
2014/09/15 1:22 pm
Blog Category / 日記
Tags /
 

c1
平地なんてないさ
ロードバイクを買った後は「まずは100kmを走る」との目標を掲げていたのだが、それを完遂すべく早速実行に移した。出発の直前まで山を登るか、平地を走るかで悩んでいたが、トチ狂った選択肢を選んでしまい、延々上りの続くルートに決定。自宅から県境近くのべふ峡温泉まで往復100kmの道を走る。
これを書いている今になって思うが、ロードバイク購入後はたった16kmしか走ってしかいなかったので、少々無茶なコース取りだったのかもしれない。
c2
大きめのサドルバッグを付けたらダサい
今まで使っていた携帯ポンプがツールボトルに入らない。携帯ポンプと携帯食の収納場所も確保すべく、大きめのサドルバッグを装着した。準備を終え、家を出発したのは午前8時30分。遅くとも4時までには帰宅したいところ。
緩い勾配の道路を快調に走る
100kmとは言っても行程の殆どが延々と坂を登るコースなので、巡航速度は20km/h程度とペースを抑え気味に走った。最終的にアベレージスピードが20km/h前後になればいいな。との思惑だったのだが、後にそれは見通しを誤った甘い考えだということを痛感する事に。
smap1
写真を撮る余裕が無かったのでgoogleストリートマップから。香北町付近。
自宅から17km、ここまで緩い勾配の上りが延々と続いたが脚はまだまだ快調で、巡航速度は20kmをキープ。少しの坂道なのに随分と楽に走れるものだな、ロードバイク。以前この近辺までBD-1で走った事はあったが、こんなに楽には走ることはできなかった。
途中1台、2台のローディーとすれ違いざまにに会釈。随分と早朝からべふ峡まで走ってきたのだろうか。
続きを読む

  • 最近の投稿
  • 最近の特集
  • 人気の記事
  • アーカイブ
  • カテゴリー
  • タグクラウド