自作ゲームの大福島

プログラムの使えない素人がCF2.5を使ってゲームを作ってみるブログです

スポンサードリンク

レビュー: CF2.5(インディゲームクリエーター)は本当に簡単にゲームが作れるのか!?

ここ数記事、動作の実装方法ばかり更新してきて、ほんのり疲れてきましたので、今回は雑記です。

*まだまだお伝え出来る物はあるのですが、そろそろ長大なイベント構造になってきているので、作るのに気合が必要…

 

このブログも途中長いブランクがあったものの、そろそろ100記事に到達出来そうなので、今回は改めて、CF2.5(インディゲームクリエーター)を触ってみての感想を書いてみたいと思います。

 

まず、今現在CF2.5を購入しようか迷っていて、ネット検索してこの記事に辿り着いた方の為に、管理人がどの程度このツールを触っているのかを書いておきます。

 

ツール使用期間(ブランクを除く)

→前作(MMF2)を含めて1年半程度

プログラミングの知識

→完全未経験素人

作成出来たもの

①触りだけですがフリーム!に投稿済み

②個人的に数秒程度のアニメーションを作成してイベントで放送

作った(作れた)ゲームのタイプ

→2D横スクロールアクション(ステージクリア制)バグ多(泣)

現時点の、CF2.5作成技術、知識

→初心者から中級者への過渡期…くらい?

 FCレベルの簡単なゲームならギリギリ自分で作れそうと錯覚出来るレベル

 

とまあ、こんなスペックの人間の感想である事を前提にしてください。

こんなブログを読んで下さる時点でCF2.5の最低限の事はご存知だと思うので、そのあたりの説明は省きます。

それでは以下本文です

 

本当に何の知識もなくてもゲームを作れるのか?

結論から言います。

同梱のチュートリアル(簡易ブロック崩し)と同じゲームなら簡単に作れます。

多分、今貴方が頭に思い描いているゲームはそう簡単には作れません。

はい、本当にこれに尽きると思います。

 

ではそれぞれの理由ですが、

何故チュートリアルなら「簡単に」作れるというのか、というと

CF2.5がGUI(グラフィックユーザインターフェース)を採用しており、

何をしようとしているか、何を計算しようとしているのか?が分かりやすい事が挙げられます。

f:id:vobo:20170730222356g:plain

 これはプレーヤーが発射した弾が敵(トマトみたいなアイコン)に当たったら弾を消して、敵に1ダメージを与える。

2行目で敵のライフが0になったら消滅する、という私の作ったプログラムです。

読むだけで何となくやってる事が分かると思います。

これを元々備わっている定型文 の組み合わせで作ってやるので、プログラミングのように、スペルミスでエラー、という事もありません。

変数名にも自由に日本語で名前をつけられますので、可読性も比較的高いですね。

 

これが「簡単に」作れるといった理由です。要は、

「こうゆうプログラムをすればこんな動作をして、こんなゲームを作れますよ!」

と、答えが分かっていてやる分には非常に簡単にゲームを作れる

という事です。

プログラミングのように、その言語特有の記述方法などを一から学ぶ必要はありません。

 

逆に言えば、答えが分からない状況で一から作ろうとするなら

プログラミング程では無いにせよ、難易度は劇的に上昇します。

 

上に貼った画像で分かるように、このツールには、「攻撃力」のようなステータスや、敵に弾が当たったら設定した数字分のHPが減る、というような、所謂テンプレート的な物はほぼ有りません。

つまり、そのレベルで一から全部自作する事が必要という事です。

 

 「いや、それくらい説明書とか、ネットで拾ったりして調べりゃいいんじゃね?」

 

と思う方も多いと思いますが、ここに落とし穴が有ります。

そう、

情報が余りにも少ないのです

 

リテラシー能力が…などという以前に、そもそも検索にヒットしません。

ツール自体にチュートリアルやヘルプも付いてはいますが、出てくる言葉の概念自体を理解していないと、ハッキリ言ってヘルプは余り役には立ちません。

チュートリアルをやって理解出来るのは『ブロック崩し』の作り方だけです。

 

多分、このツールを買おうか迷っている方の大半は、

「2Dアクション」「アクションRPG」「シューティング」などの、比較的自由度の高い(テンプレの少ない)ジャンルのゲームを作りたい方だと思います。

が、

作る為の教材、素材は雀の涙程しか世にありません

*ですが、現在ネット上にある教材はいずれも非常に質の良い物ばかりだとは思います。単純にユーザー数が少ないのか、種類と数が追いついておらんのです…

 

そうなんです。

これが、このツールを買ってすぐに「俺の考えた最強のゲーム」が作れない、という一番の理由です。

そして、このツールを1年程使って、未だに実感している短所です。

 

またまた長くなってしまったので、2回に分けたいと思います。

次回は、じゃあ一体どうやって凝った物を作ればいいのか?を中心に考えを述べたいと思います。 

色々な円運動②sin波 cos波

 今回は少しでも記事から動きをイメージしやすくする為、

初めてGIF動画を取り入れてみました。

重くて見れねーよ!とか、

動作してねーよ!タコが!

とかありましたらコメントで教えて頂きたいです…

 

というわけで、今回も円動作の応用編です。

早速ですが先ずは↓↓↓のGIF動画をご覧下さい。

 

f:id:vobo:20170728014639g:plain

「あっ、よくある動く床的な奴やん」

と思ってくれたら幸いです。

そう、この動きも三角関数を使って、円動作の応用で作られています。

 それでは具体的なイベント内容です。

f:id:vobo:20170728015440p:plain

はい、これだけです。

 

 

もう気づかれた方もいらっしゃると思いますが、これって正円を描く動作から、X軸方向の移動(cos)に関するイベントを除いただけなんですね。

f:id:vobo:20170728015909p:plain

↑↑↑が正円を描くイベントでした。

そう、円動作から、「X軸」が関わるイベントを取り除くと、動画のような、上下に滑らかに動く動作に変換できるんですね。

 

理屈を説明しますと、

f:id:vobo:20170728020549g:plain

例えば半径が100ピクセルの円を描くイベントを想定した場合、中心座標が0だとすると、「Y座標」の値は、角度が0°から360°に動くに伴って、最大100、最小ー100の間を推移しますよね。

 

この、角度がθとした時、「Y座標」のとる値(=sinθ)だけで構成した動作を『sin波』と呼ぶようですね。

 

難しそうに見えて、実は円を描くより簡単にイベントを作れるってあたりが素敵ですね。

 

で、同じ考え方で、今度は左右に滑らかに動く『cos波』というものがあるのですが、これはもうお察しの通り、円動作から「Y軸」のイベントを削除して、「X座標」の推移のみに絞った物になります。

f:id:vobo:20170728021222p:plain

 これはイベントのみ載せておきます。

 

この動きは結構色々と使えそうです♪

例えば、sin波の動作に、

『条件:常に実行

 動作:オブジェクトのX座標を「オブジェクトのX座標」マイナス1に変更』

という条件文を足してみるとこんな動きに

f:id:vobo:20170728022743g:plain

 おじさん世代垂涎のあのゲーム風の動きですね。

(これで分かってもらえるととても喜びます)

それでは今回はこの辺で。 

色々な円運動① 楕円形動作

折角三角関数も覚えた事なので、この機に今まで避けていたプチ物理動作を学んでおり、肝心の製作は全く進んでいない私です。

 

今回は、以前ご紹介した円運動イベントの進化版です。

以前の記事を読まれておらず、CF2.5で作る円運動に関して良く分かっていない、という方は円運動の基礎講座から読まれる事をお勧めします

 

vobo.hatenadiary.jp

半径自動計算+楕円作成+回転方向変換機能付きイベント

まずイベント構成がこれで

f:id:vobo:20170725013609j:plain

変数構成がこんな感じです

f:id:vobo:20170725014135j:plain

 これでどんな機能を実装しているかというと、

f:id:vobo:20170725014504g:plain

①ドラッグ&ドロップで適当に配置した回転オブジェクトと中心点の距離を自動で計算して、それを半径とした円運動を実現。

(要は視覚的に円の大きさを設定出来るというメリットがあります

これは前回の円動作講座④で解説したのと同じものです。)

 

vobo.hatenadiary.jp

②変数(回転方向)に「1」又は「-1」を代入してやる事で、右回り、左回りを自動で切り替えできます。

(1の場合は右回り、-1の場合は左回りに回転します)

 

③変数「左右伸び率」、「上下伸び率」に任意の数字を代入する事で、X軸方向、又はY軸方向の半径のみを拡張した、楕円運動を実現する事が出来ます。

 

ここからは具体的な解説です。

円運動自体の解説はリンクしてある以前の記事をご参照頂き、ここでは追加部分のみの説明となります。

 

まずは上記②回転方向を変数で選択してやる、というものですが、

sin、cosを求める為の変数(角度θ)に、回転速度を加算する事で右回り、減算する事で左回りに運動する、という事を利用したものです。

回転速度に1を乗する事で正の数を、-1を乗する事で負の数を加算(マイナスする)する事が出来るわけですね。

 

…もうお気づきの方もいらっしゃると思いますが、正直こんな変数使わなくても、

変数(回転速度)にマイナスの数字を代入してやるだけで実現出来るんですけどね。

でもまあ、触りたての時って、慣れれば当たり前の事も思いつかなかったりするわけで、あくまで誰でも使える汎用的なイベントの為に作った変数です、というわけでご理解を。

 

 

続いて③、楕円形運動の部分です。

ここの計算部分を拡大してみます。

f:id:vobo:20170725021625j:plain

変数(左右伸び率)で横方向の移動量(コサイン)を、変数(上下伸び率)で縦方向の移動量(サイン)をそれぞれ変化させる式である事が分かると思います。

 

そう、楕円形円動作のポイントは、サインとコサイン、

どちらかだけの数字を変化させる

事で実現する事が出来ます。

 

例えば、左右伸び率に2を代入、上下伸び率を1のままにして実行するとどうなるかというと、どちらも1を代入した真円に比べて、

f:id:vobo:20170725023146g:plain

*今回は軌道を分かりやすくする為、残像を付けてみました 

f:id:vobo:20170725023329g:plain

少し分かりにくいですが、軌道が横長に変形します。

では、左右伸び率に0.5を代入するとどうなるか?

代入前よりコサインの数字が小さくなるわけですから、

f:id:vobo:20170725024221g:plain

こんな感じに、縦方向の長さは変わらず、左右の長さが短くなり、結果的に縦長の楕円を描く動きに変わります。

変数(上下伸び率)も、全く同じように、任意の数字を代入する事で、こちらは上下の長さを変更する事で楕円の軌道を描く事が出来ます。

 

以上で解説は終わりです。

あらゆる円動作の雛形として、一家に一台いかがでしょうか?

シューティングゲームで、自機の周囲を回転しているオプションの軌道を任意で変形させる、なんて動作に使える!かもしれません。

それでは今回はこのへんで。