ゲーム製作記

        

スポンサーサイト

category - スポンサー広告
--/ --/ --
                 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
                         
                                  
        

ゲームを作ろう-16

category - ゲーム製作記
2014/ 07/ 08
                 
「敵キャラを描けるだけ描く の巻」


銃のグラフィックを表示できるようになり
ゲームが一段とFPSに近づきました。
次は敵キャラを追加で描く作業が待っています。

当時2種の敵がマップ上でうろついていました。
巨漢とトカゲです。
近接攻撃と遠距離攻撃で
案外バランスの取れたコンビでした。

次に来る敵は何だろうと考えた末
目に見える弾を撃ってくる敵はどうだろうということになりました。
イメージするならスペースハリアーの弾です。
アニメーションしながら近づいてきます。
そんな感じの弾を作ろうと思いました。

テストプログラムをざ大まかに組みテスト。
・・・なかなか上手く行きません
でもどうにかこうにかプログラムを完成させました。

出来たのは波動拳みたいな弾です。
とりあえずトカゲに弾を撃たせてみます。
ランダムに移動するトカゲから時折発射。
接近すると爆発してダメージ。

この弾を撃ってくる敵とはどんな奴だろうか。
・・・弾だし爆発するし・・・砲台かな?
というわけで浮遊する砲台に決めました。

そんなわけで作画が始まりました。
本当ならここで砲台キャラの作画の顛末を語るんですが、
今回は軽く済ませてキャラ紹介をしようと思います。
ゲーム製作3年目(3期)の終わりまでは敵キャラ作りが続きました。
kaihatu16wa1.jpg

○浮遊砲台
メカで出来ていて顔を逆さにしたようなコアが付いています。
このキャラから作画のときの主線処理の自動化が採用されました。
戦っていて「なんか堅いものがあった」という感じの奴です。
また、今現在唯一正式名称のあるキャラでもあります。

○巨漢2(殺し屋)
「殺し屋」というあだ名が付いているキャラです。
大きなハンドガンを持っていて時折発砲します。
連続で食らうと結構辛い。

○草
これも植物系なので「草」というあだ名が付いています。
飛び跳ねながら接近し噛み付きます。
倒したときマスコットっぽい敵なのに爆発するので倫理上どうなんだと悩んだ覚えがあります。

○カラス天狗
そのまんまカラス天狗です。弾を撃ってきます。
作るとき出来るだけ楽をして作ろうとしたのがいけなかったのか
見栄えが悪く、「ごちゃごちゃした鳥」にしか見えないという欠点があります。

○お化け
日本的な幽霊です。
もとはQ太郎みたいな幽霊だったのが悪魔のささやきでこうなりました。
いまだに幽霊とはいえ女の子に銃を向けるのはどうなんだと思ってます。

○オーク
割と人畜無害そうに見える敵です。
特徴は敵キャラ中唯一盾を持っていることです。
これが意外と手ごわい。

○カラス
簡単に済ませようとした敵キャラ第2弾。
またしてもカラスです。
荒野にはからすが似合うと思ったので作りました。
ちょっと羽の関節がおかしなことになってますが、モンスターなので特殊なのかもしれません。

○ロボ
パワードスーツなんですが、パイロットのサイズを間違えたため
ロボになってしまいました。でかくて威圧感があります。




・・・とまぁ作った敵キャラを紹介するとこんな感じです。
これまた結構時間がかかりました。
キャラ紹介は描いた順に並べてあります。
長く苦しい戦いでした。
昼はバイトでペンキ塗り、夜は夜でドット塗り状態でした。
kaihatu16wa2.jpg
夜なべをしながらコツコツと塗り進め、
どうにか数をそろえました。
ボスキャラがいないのでそこをどうするかが今後の課題です。
ひょっとしたらボスは出さないかも知れません。
そういうバランス調整も出来るんじゃないかと。

とにかく敵キャラを描いて3期が終わりました。
これから4期が始まります。
何が起こるかわかりません。
悪魔のささやきで早すぎるブログを始めてみたり
ストーリーがあいも変わらず進まなかったり

いろいろあるんでしょうが完成まであと1年くらいです。
気長に待っていてくれたらうれしいな、と思います。
では。

                  (しばらく期間をあけてからつづきます)
            
スポンサーサイト
            
                                  
        

ゲームを作ろう-15

category - ゲーム製作記
2014/ 07/ 04
                 
「銃の画像を用意しなければならない の巻」


FRにアニメーションする敵を表示することが出来ました。
しばらくは敵キャラを描く作業をしようと思ったんですが、
もうひとつやらないといけないことがあります。

それは銃を用意することです。
敵キャラと戦うときの武器が銃なのに
画面には銃が表示されていません。
それはちょっと変ではないかと。
銃の表示されていないFPS の名作もありますが
主人公が人間だということが見た目で分かるように
銃とそれを持つ手を表示したかったのです。

世の中の多くのFPSには銃と手が表示されます。
それが容易なのはポリゴンだからです。
ポリゴンならデッサンに狂いの無い銃や
複雑な曲線を持つ人の手を
正確に描画することが出来ます。
メモリもそんなに消費しません。

しかしFRというゲームは2D描画です。
つまり銃と手もふんだんにメモリを使ったアニメになります。
構えている銃はそんなに問題は無いんですが
リロードがすごく難問です。
どうやって画像を用意したらいいのだろう・・・。

・銃は描くのが難しい。
・手はポリゴンでは難しい。
なので銃をポリゴンでレンダリングし、
後から手を手描きで描くことになりました。

まずは銃のレンダリングです。
元となる銃のモデルは六角大王のライブラリから。
そのままではすごく省略された銃だったので
改造して何の銃か分かるくらいまで作りこみました。
kaihatu15wa1.jpg
六角大王のモデルは無可動モデル。
しかしリロードのアニメーションの中で銃も可動するので
スライドを動くように改造しました。
さらにマガジンを差し込むはずなので
マガジンも簡易モデルで新造しました。

それからアニメーションです。
六角大王で銃をアニメさせる際、グループ化は使えません。
たとえそれが銃の付属部品でも、全体の中にあるひとつのオブジェクトの座標になります。
どうしたもんかと考えた末、銃にボーンを仕組んだらどうかということになりました。
ただ、ボーンはポイントポイントで回転させることしか出来ないので、
銃の場合はちょっと不思議な形のボーンになります。

・・・銃にボーンを入れる方法はは成功しました。
これでアニメーションする銃をひとつのオブジェクトとして扱えます。
これで作業が楽になるはずです。

リロードですが、動きは皆さんが市販FPSで見ているような動きそのものです。
ただ、FRの場合は1フレームが即メモリに直結します。
なのでコンパクトに、速い速度のリロードになります。

枚数にして25枚。どの武器でも同じ枚数。
なのでFRでは見たこともないような電光石化のリロードが観れます。
おそらくこの世のFPSの中で最速だと思います。
(・・・あまり嬉しくありませんが。)

銃をアニメーションさせそれを画像として保存。
今度はそこに『手』を描き加えます。

手は自作アニメツールで描きました。
銃の画像を背景にしてそれを持つ手を描きます。
動きとしては銃というゲージがあるので少しだけ楽でした。
(実は手を描くのがすごい苦手です。)
手を描き終えたら銃と合成。
ゲーム上で動かして確認してみます。
第一印象は・・・
「超速えぇ」でした。
予想通りです。
予想外のことといえば銃のリロード方法の間違いに気づいて
最初から描き直したことくらいです。
kaihatu15wa2.jpg
こうして作業は淡々と進みました。
銃が5種類。
ハンドガンあり、ライフルあり、
枚数にして125枚。
毎日毎日手ばっかり。

こうして文章にするとあっという間ですが、
実際にはかなり時間を割いて描きました。
へとへとです。

電光石火のリロードもゲーム性には影響を及ぼさないくらい高速で
「リロード?したの?」と言いたくなります。
でも2D描画でリロードをガッツリ描いてるゲームなんて
そうそう無いので珍しいものを観たと納得してください・・・。
詳しくは現物で。(ちょっと先の話ですが)

銃も描いたのでそろそろ作業は敵キャラに戻らないといけません。
そんなわけで次回は残りの敵キャラの話です。

                                    (つづく)

                         
                                  
        

ゲームを作ろう-14

category - ゲーム製作記
2014/ 06/ 29
                 
「アニメパターン描画、巨漢誕生 の巻」


3D表示されたダンジョンの中を自由に動き回る敵。
グラフィックはまだテスト用のもので動きがありません。
なので最初にテスト用の画像のモンスターを
倒れさせてみることになりました。

モンスターが何らかの攻撃を受けて倒れる。
それはきっとのけぞるようなしぐさだろうと、思いました。
手に持っているハンマーを取り落とし倒れる。
ひざカックンみたいな動きに違いない。

自作のアニメツールで動きのアタリをとってみました。
最初は5枚くらいの動きだったと思います。
それが動きをチェックしてるうちに
7枚のほうが滑らかで良いということになりました。
そして塗りの作業の始まりです。
kaihatu14wa1.jpg
自作のアニメツールには当時
320x240のサイズを各機能が無く、
2倍の640x480で描いていました。
それを半分のサイズに縮小して使います。

ツールはドット打ち用とグラフィックツールの
中間形みたいな感じでした。
ドット打ちツールとしては中堅ぐらい
グラフィックツールとしては下の中くらいです。
癖が強いがアニメに強い
そんなツールに仕上がっています。

で、塗りです。
まず最初の一枚を力の限り塗ります。
細かく丁寧に。
それから部分的にページめくりをしながら塗っていきます。
それが塗り終わったら次の部分、
と、アニメをループさせてぐるぐる回しながら塗っていきます。
すべてのパーツにおいてこれが済んだら粗塗りの完成です。
最後に一枚ずつドット修正をして仕上げです。

グラフィックは用意できました。
仕上がったものをゲーム中に表示して確認します。
敵は画面中央付近に来たときにボタンを押せば
倒れるアニメを再生する仕組みになっています。

スタート。
中央にやってくる敵。
ボタンを押すと・・・・。
フニャン!

なんと言うかフニャンと倒れました。
アニメの速度はちょっと早めです。
フルアニメに近い動きをしました。
本来ならここでもうちょっと遅く再生されるように
手を加えるのですが、
思いのほか滑らかな動きにやられました。

「いい!これでほかのアニメも作ろう!!」

思えばこの瞬間が運命の分かれ道でした。
想像の中のアニメはもっとカクカク動いていたんですが、
「もっと良い物がみたい」という欲求に負けました。
そして作画作業が始まりました。

歩きモーション。下描きでざっと描いたら15枚ありました。
2本の足で歩くには中途半端な数です。
それでも歩いて見えるんだからと採用になりました。
この15枚という数字がモンスターのメモリエリアの基本となりました。

これから描く紫色のモンスターはよく見れば結構複雑です。
作画作業はすこし厄介でした。
この話をすると「ゲームを作ろう」の1話分がつぶれてしまいそうなので
いつかまたの機会に。
作画は15日ほどをかけて完成しました。
この作画作業では後に役に立つ技術がたくさん生まれたりもしました。
作業は近接攻撃も含めれば1ヵ月半ほどかかっています。
kaihatu14wa2.jpg
モンスターを動かしてチェックします。

なかなかの見栄え!

ここで動きに関していろいろ書いてしまってもいいんですが、
出来れば実物を見て判断してもらいたいと思います。
そのくらい初見はいいと思ってます。
動きは多分ゲームを宣伝してもいい時期になったら
ムービーか何かを公開すると思います。
2014/6/29現在の段階では完成までにまだ時間がかかるのでまだ内緒です。(関係ないけど作者の誕生日です。)


・・・こうしてFRというゲームにアニメする敵が現れました。
この調子で敵キャラを増やし、何種類も出せるようになると
このゲームはどんな姿を見せてくれるのだろうか?
期待は膨らむばかりでした。

                            (つづく)



                         
                                  
        

ゲームを作ろう-13

category - ゲーム製作記
2014/ 06/ 26
                 
「擬似3Dマップを移動する敵 の巻」


16エンジンは16改になり
横方向なら自由な方向を向けるようになりました。
次はモンスターです。

通常、マス目で区切られた空間を移動する場合
一コマ移動するのは簡単です。
コンピューターゲームで言うなら
シミュレーションゲームのコマ移動がそれです。

しかし今作ってるゲームでは
一瞬にして隣のコマに移動してもらうと困ります。
もうちょっと滑らかに移動して欲しいのです。

2DマップのRPGなら簡単にその処理が出来るかもしれません。
しかし今作ってるのは擬似3Dのゲームです。
同じ処理をするにも少々複雑な手続きがあります。
kaihatu13wa1.jpg
まず敵キャラは2つの座標を要求します。
今いる場所とこれから行く場所です。
48x48ブロックのマップ上でその場所を指定。
そして48x48マップから抽出された11x11マップを
3D変換する時に
一緒に2つの座標を3D変換してもらいます。
後はその2点の間のどのへんにいるかを
示す変数でモンスターの位置が決まります。
次に行く場所に到達したら
もう一度さっきの処理を最初から繰り返します。
これがモンスターの自由移動(行動)です。

文章にするとさらっとしたもんですが、
まだ何も入力していない状態から
これを実現させるのは
なかなか困難なものがありました。

まずプログラムが複雑であること。
ただでさえ複雑な16改に追加でスクリプトを書かなければなりません。
しかもエンジンの3D処理と一緒に3D処理しないといけない。
そんな感じなのでプログラムは
手探りで
一歩ずつ進みました。

真っ暗なバックに白い文字が浮かぶプログラム空間。
大量の文字を掻き分けて
新たな命令を書き込みます。
命令を書いて「出来た!」と思っては
エラー。その繰り返し。
いい加減、嫌になり始めたころに
最後に命令を打ち込むと
「よし!」
と頭の中で声がしました。

なんだろう?
良く分からないままプログラムを走らせると
敵キャラが自由移動しています。
kaihatu13wa2.jpg
うれしかったのにはうれしかったんですが
なんとも奇妙な体験でした。

モニターを眺めます。
自由行動(ランダム移動)する敵キャラ。
その動きはあたかも意志を持っているかのように見えました。
もっとこのキャラを動かしてみたい。
たとえばやられモーションなんかどうだろうと考えてみました。
それがあれば、たとえば攻撃ボタンなんかで
敵の倒れるという演出が出来ます。

枚数は4・5枚くらいで。
アニメーションする仕組みも作らないといけない。

とりあえず次の仕事はアニメを作る作業にしよう
と、そう思ったのでありました。

                    (つづく)
                         
                                  
        

ゲームを作ろう-12

category - ゲーム製作記
2014/ 06/ 21
                 
「ひずまない(?)エンジン 16改 の巻」ver1.01


FRはもう少しでエンカウントバトルのRPGになるところでした。
しかし偶然のいたずらで
リアルタイムFPS+RPGへの道を歩み始めたのでした。

マップを表示するためのプログラム「16エンジン」
このエンジンには弱点がありました。
通常は90度ごとの回転でマップを表示するのですが
これを0.1度(ラジアン角)ずつ回転させると・・・・・
kaihatu12wa1.jpg
まっすぐ伸びているはずの通路が
曲がって表示されます。

これは基の計算がでたらめなのが原因です。
16エンジンは出来るだけ処理速度を上げるために
複雑な計算をはしょっています。

またこうすることで数学が苦手な自分にも
理解できるという利点もありました。

しかしこれからすることを実現させるためには
90度ごとではなく
もっと細かい度数で
回転させなくてはなりません。
次のゲーム性にはそれが必要でした。

なので16エンジンを改良することになりました。
テーマは「回転させても通路がひずまないエンジン」です。

それを実現するにあたりある概念を導入しました。



大きな方眼紙が目の前にあると思ってください。
一番左上が座標(0,0)です。
そこからたとえば(500,300)に伸びる直線があると思ってください。
横の長さをX 縦をYとします。
x(500*0.6)y(300*0.6)の座標に点を打ってみてください。
それはきっとライン上にあるはずです。
つまり
ラインの長さをXでとらえようがYでとらえようが
60%という位置はライン上の1点をしめすのです。

このパーセントが11個ならんでいたとしたら。
やはりそれはラインを描くでしょう。

さらにそのラインが11列あったとしたら・・・。

・・・つまりこれが16改というエンジンです。
kaihatu12wa2.jpg
(図ではポイントが11個無いですけどそこは概念図ということで。)

本当は遠近感を持った奥のポイントのパーセンテージと
手前のポイントのパーセンテージは
同じじゃないのかもしれませんが、
「同じである」と仮定したものが
16改の基本概念です。
同じにすることで格子模様のラインがまっすぐになります。
間違っていても動けばいいということで。
ただ、回転の中心にあるべき点が
回転とともにローリングしたりするので
概念が間違ってるんだろうとも思います。


改造は12日で終わりました。

実際に動かして確認します。
結果としてはまずまず。
通路はひずまなくなりました。
しかし回転が45度の地点で座標がはなれます。
それこそが次の改修ポイントなんですが、
それを改修していたらまたもっと開発期間がかかってしまいます。
いまのところゲーム性には支障が無いので
FRは16改を正式に採用することとなりました。

そんなわけで
横回転なら自由にどの角度でも向けるようになりました。
次はそこにモンスターを放つ段階です。

                       (つづく)
                         
                                  
    
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。