top of page
BTA(Kelorin Jo)

GameMaker Studio2でキャラを動かすまでの難易度的な感想(2019/11/06追記)


仕事の時間を開けて、ゲームづくり再開です。

使いやすくて実績もあるけど情報が英語ばっかなのが難点というけど、大して困らず勉強は進みます。、

グーグル翻訳様様だぜ!

Unityとの比較をしながら語ってきますと、

グラフィックエディタが備わってて、必要な素材を即自作できるのが強いです。

いきなりスプライトのドット絵作れる。そこそこ使いやすい。

その大きな特徴は、

保存データの中身がストレートにpng画像で、各コマはもちろんレイヤーまでどストレートにpng画像という単純さ

このpngは、他ツールで読み込み編集することが可能です。ちなみに上の爆発パターンはクリスタで作ったもの

ついでにドット絵の情報集めてる過程で見つけたドット絵用の補助ツールも使うとさらに快適

PixaTool  フルカラー画像をドット絵向きに自作パレットで減色・ディザ加工できるツール

Tilesetter タイルマップを作る支援ソフト。体験版はシームレスパターンの確認と書き出しに便利 

 

前回はざっとタイトル画面とシーンチェンジの入力とボタンが作れたので、

次はゲームの根幹になる、キャラクターコントローラづくりに挑戦しました。

コーギーのサンプルに似た、横スクロールガンシューコントローラのチュートリアル動画

オープンソースや公式マケプレのテンプレートを使うつもりでしたが

なんとなく全部自力で全部作れそうな勢い。

何しろできることが少ないから迷わなくてすむ…

「えっそんな、Basicかよ」な泥縄コードでもちゃんと動いてくれる。その後の改良と修正で詰むけど

動画ではGML…コード手打ちで作ってるけど、DnDでもなんとか対処可能、Dndはif文に&&とか使えなさげと制限はあるけど、2Dゲームはそんな複雑さを要求するものではないので、困らない。

自分が、コード打つのと文字の羅列を見るのが大嫌いなんだと気付かされます。

DnDのノードだとストレスが少ない。かさばるなら畳んだりGML変換して見れるし

そしていきあたりばったりにDnDして、ジャンプと横移動、坂を登りZ方向の壁を登れる

ウルフファング的なキャラクターコントローラをつくることができました。

Unityのc#だと何度も吐き気悪寒発熱して頓挫したやつが、2-3日で…!!

そんな簡単なことで動けるのか…の連続。

かろうじてそれぽく動く程度で、スパゲティで改良もできないから、作り直すけど。

(チュートリアルの動画もステート遷移方式で動かしたほうがいいんじゃないのと思った)

 

ここまでで気がついたGameMakerとUnityとの仕様の違いを挙げます

0.始まりは頭から再生

プレイすると最初に実行されるルーム(Unityで言うシーン)は、リソースリストの一番上にあるルームです。

今エディタで開いてるルームじゃない

1.x、yは変数だけど変数じゃない

ルームに配置したオブジェクトはインスタンス変数というシステム予約変数でx,yを持ってますが、これ変数としていじるとオブジェクトの位置が即変わります。

オブジェクトのトランスフォームだのスプライトの描画だの手続きは一切なく、です。

知らないで細かい位置補正処理をx,yを直で代入して、キャラが痙攣しました

また、他オブジェクトからもローカル変数扱いじゃなく即x,yは取得できます

ちなみにliveとかスコアとかゲームらしい固有変数もあります

追記:前フレームのxyとかもありますそれ超便利じゃない

2.親子構造はない

同一レイヤーで奥手前決め打ちで表示する方法がない感じで

多関節キャラや親子構造のキャラは手動で子オブジェクトの座標計算する必要があります。

追記:[オブジェクト名またはID].[変数名]で、他のローカル変数を取得できる感じです。

手前や奥に必ず表示したいオブジェクトは、インスタンス変数でZデプスを指定する以外に、ルームのレイヤーをわけて配置するほうが楽そうです

3.奥行きはレイヤー単位

修正:ルームにはオブジェクトやタイルマップを並べるのにレイヤーがあり、Unity2Dのそれとは別物です。Zデプスを意識せずキャラの奥行きをはっきりさせられます。

4.アニメータコントローラはない

描画切り替え自体はクソ簡単だけど、スプライトのアニメ切り替えは移動ベクトルと自動で連動などないです。自力でステートマシンぽいのを作って描画スプライトを切り替えることになるでしょう。

Animation updateとかAnimation Endとかのイベントがあるのでそれが役立つかも

5.コライダーは円なし

多角形の当たり判定は作れるが、スムーズなカプセルや円のコライダーはできない。斜面があったら横移動だけでは1ドットの段差にも引っかかって動かない。手動で斜面を判定して、登らせる必要がある

6.パスがついてる

オブジェクトのアニメーション用に、パスのエディタがいてます。

ルームに配置してオブジェクトを沿って動かせます

なおタイムラインはあるけどUnityのそれとは別物ぽい

7.ローカルローカル変数

ローカル変数は基本、同一オブジェクト内でしか使えないけどオブジェクト内の全イベントでいつでも作れるというものですが、さらにイベント内でしか使えない・瞬間的にしか使わない向けの「テンポラリ」という変数もあります。

ついでに「マクロ」は、数字を単語として登録するenumとおなじようなもので、自動実行する関数とかではない、enumもそれとは別にあるのですが、DnDでenumは扱えないようです。

..

8.オブジェクトプールはない

Unityで一番頭悩ましたやつがない…いらないとばかりに

それは素敵なことだが、ほんとにいらないわけではなくて…

パーティクルマシマシとか超ボリューミーなプロジェクトだと手動で作る必要があります。(ちなみにバッチやカリングもない)

まあドット絵でメモリ節約すれば、数百個程度の弾幕なら無視できるような言い方してる気がする

9.メタファイルで気楽

全てのリソースはメタファイルで常時監視してるようで、オブジェクト名とか変数とか後から変更しても全て対応します。

DnDのノード内の記述までしっかり対応してくれます。(例外もあるようだけど)

Unityだとスクリプトをリネームや複製したら死ぬからな…

その変わり常にセーブされてる状態なので、コード改造して収集つかなくなったら死にます。アンドゥもあまり信用できません。

プロジェクトごと手動でコピペでバックアップするといいです。

Unityだとファイルロックされてコピペできなかったよね

 

Unityでも同様に勉強はしてて、キャラクターコントローラとか作り方は知ってますが、正確なコードがとにかく頭に入らないです

ほんとにね、

目当てのアクションさせるのに必要なコードを探したら、同じようなことできるコードが何個もあって

それぞれ文法も使える状況も微妙に違って。

サブクラスだのコルーチンだのほんとに…

GameMakerでゲームづくりに必要な一通りをしっかり確立できれば、Unityでも応用できる気がしてきます。

PlaymakerがGameMakerの丸パクリだったらいいのになー

閲覧数:3,051回0件のコメント

最新記事

すべて表示
bottom of page