トップページgamedev
996コメント482KB

【2D】ゲーム作成ツールGameMaker part3【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/05/11(日) 01:41:47ID:PRhlwPyW
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
 ttp://gamemaker.main.jp/
●初心者向けチュートリアル
 ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1


前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0002名前は開発中のものです。2008/05/11(日) 01:43:10ID:PRhlwPyW
《Game Makerの特徴》
@ コリジョン(当たり判定)/スプライト/マップ/サウンド再生など、2Dゲーム作成にかかせない機能が充実
@ なにかと便利なイメージエディタを内蔵
@ プログラミングの知識はあってもなくてもよい
@ *.exe(単体実行可能)形式でゲームを出力できる
@ 作ったゲームは自己責任の元で自由に配布できる(作ったゲームを売る場合のライセンス料さえ不要!)
@ キーボード、マウス、ジョイスティックからのキー・ボタン入力をサポート
@ イベントドリブン型なのでスマートにゲームを構築できる
@ 組み込みスクリプト言語"GML"により、さらに細かい処理が可能
@ エンジンはDirect X

※有料登録(15ユーロ)するとゲーム起動時のロゴ表示が消えて3Dやエフェクト機能などが追加されますが、基本的に無料で充分使えます。

《Game Makerの欠点》
@ 英語ソフトなので、英語が読めないととっつきにくい
@ ツクール類とは違い、ゲームの"動き"から設計しなければならない(それがまた長所でもある)
0003名前は開発中のものです。2008/05/11(日) 01:43:51ID:PRhlwPyW
《豆知識》
Game Makerの作者であるMark H. Overmars氏はオランダの超名門大学"Utrecht"大学の教授で、主にゲームデザインについて研究されています。
参考: ttp://www.cs.uu.nl/people/markov/

《このスレの掟》
・Game Makerの略称はGMとする
・いきなり、「こんな素材ありませんか?」系の書き込みは避ける → 素材スレに行きましょう
・質問する場合には、「Game Makerのバージョン」「GMLを使えるか否か」をなるべく記す。
 (必要に応じて、「ビデオメモリ容量」や「DirectXのバージョン」などを書くとなおよい)

現在主に使われてるGame Makerのバージョンには5.3Aと6.xがありますが、
5.3AはGame Maker 5.x系列の最終安定リリース版で、Game Maker 6.xは今のところ開発段階にあります。

●Game Maker 5.3A ダウンロード先:
 ttp://www.gamemaker.nl/old.html
●Game Maker 6 ダウンロード先:
 ttp://www.gamemaker.nl/download.html

5.3Aと6.xの詳しい相違点については以下を参照のこと:
ttp://gamemaker.main.jp/modules/smartfaq/faq.php?faqid=1
0004名前は開発中のものです。2008/05/11(日) 01:49:44ID:PRhlwPyW
【Gamemaker 6 日本語ヘルプファイル】

ttp://www.geocities.jp/hogehige2005/
0005名前は開発中のものです。2008/05/11(日) 01:51:35ID:PRhlwPyW
ごめん、前スレがそのままだった


前スレ:【2D】ゲーム作成ツールGameMaker part2【マンセー】
http://pc11.2ch.net/test/read.cgi/gamedev/1121126627/

前前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0006名前は開発中のものです。2008/05/11(日) 01:57:21ID:ngsHwQAh
>>1-3
乙っす、自分もスレ立てしようとか思ってて追加情報とか書いてたら立ってたようなので・・・
んで、なんというか・・ちょこっと追加

初代スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
前スレ:【2D】ゲーム作成ツールGameMaker part2【マンセー】
http://pc11.2ch.net/test/read.cgi/gamedev/1121126627/

●Game Maker まとめWiki
(過去ログから質問をジャンル別にまとめてあったり、関数ヘルプなど)
 ttp://www.wikihouse.com/GameMaker/index.php
0007名前は開発中のものです。2008/05/11(日) 01:59:26ID:ngsHwQAh
>>5
あうあうでしゃばってすません
0008名前は開発中のものです。2008/05/11(日) 02:10:15ID:ngsHwQAh
とかいいつつもう一つ追加

○現在主に使われてるGame Makerのバージョンには5.3Aと6.1A及び7.xのいずれか

現状の最新バージョンは7.0です。
●Game Maker 7 ダウンロード先:
 http://www.yoyogames.com/gamemaker/try
 ダウンロードにはサイト登録が必要
0009名前は開発中のものです。2008/05/11(日) 15:38:01ID:cmOvm32X
前スレ終わりました。
なので、ここで続きの質問をさせていただきます。
ゲームオプションでマウスを消すとはどういう風にすればいいのでしょうか
なお、7を使ってるので英語で読めません。。
Global Game settingsって奴の中にあるのでしょうか?
具体的にご教授お願いします。
0010名前は開発中のものです。2008/05/11(日) 16:01:38ID:/qP9TRX5
Global Game Setting > Graphicsタブ の Display cursor のチェックボタンをはずす。
0011名前は開発中のものです。2008/05/11(日) 18:11:22ID:cmOvm32X
>>10
了解です。ありがとうございます。
0012名前は開発中のものです。2008/05/11(日) 18:39:07ID:cmOvm32X
マウスの方は上手くいきました。
しかし、マウスカーソルの位置に向かって銃を構えた画像に変更するのが、
上手くいきません。。
レジストしてない場合、コードを書く必要があるけど
向きごとに別々にスプライトがあるのかそれともフレームが分かれてるのか、
全部で何方向あるのかとかで対応が違う。
まあ、何方向でも構わないからなるべくスムーズにしたいというのなら
>1. スプライトエディタで Animation > Rotation Sequenceの機能を使って
>360°分回転させたイメージを作る(36フレームくらいがおすすめ)
>2. StepイベントでVARアクションを使って次の変数を設定
>image_single = direction / 360 * image_number
これをすると一度はその方向を向きますが、後はまったく反応してくれません
0013名前は開発中のものです。2008/05/11(日) 19:26:43ID:cmOvm32X
追記
一応自分なりにこれなら出来るんじゃないだろうかっと思う程度まで考えて、
その銃を構えるキャラクターのSpriteを45度の角度づつ計8個(1.270°2.235°3.180°4.135°5.90°〜方向に銃を構える)
マウスポインタの位置がキャラクターに対してどの角度内にいるかでSpriteを変更したいと思います。
あと、Test Expressionで一文ぐらいなら出来ると思います。。
よろしくお願いします。
0014名前は開発中のものです。2008/05/11(日) 22:15:44ID:cmOvm32X
Step Event:
if at position (1 <= x <= 333,-3 <= y <= -999) there is object obj_p001
set the sprite to spr_k001_08 with subimage 0 and speed 1
else
if at position (0,-1 <= y <= -999) there is object obj_p001
set the sprite to spr_k001_01 with subimage 0 and speed 1
else
if at position (-1 <= x <= -333,-3 <= y <= -999) there is object obj_p001
set the sprite to spr_k001_02 with subimage 0 and speed 1
else
if at position (-333 <= x <= -1,0) there is object obj_p001
set the sprite to spr_k001_03 with subimage 0 and speed 1
else
if at position (-333 <= x <= -1,1 <= y <= 999) there is object obj_p001
set the sprite to spr_k001_04 with subimage 0 and speed 1
else
if at position (0,1 <= y <= 999) there is object obj_p001
set the sprite to spr_k001_05 with subimage 0 and speed 1
else
if at position (1 <= x <= 333,3 <= y <= 999) there is object obj_p001
set the sprite to spr_k001_06 with subimage 0 and speed 1
else
if at position (1 <= x <= 333,0) there is object obj_p001
set the sprite to spr_k001_07 with subimage 0 and speed 1

この形に組みました。
(GMLでなく普通にです)
何となく、自分のしたいことは表せたのですが、一切反応してくれませんでした。。
間違っている所やこうしたらいいと言う意見をお待ちしております。。。
何度も何度も度々すみません。。
0015名前は開発中のものです。2008/05/11(日) 23:56:50ID:AX4c16UA
スプライト8枚じゃなくて、1枚のスプライトでサブイメージ8枚にする
(1番目が右向き、2番目が右上、3番目が上、……と0°から反時計回りに並べる)
で、Stepイベントで
image_singe = point_direction(x, y, mouse_x, mouse_y) / 45
と設定すればいけるはずだけど。
(厳密に言えば、image_singleはGM6以降では廃止されているので、
image_indexを設定してimage_speedを0にするのが正しい)

ちなみにどうしてもスプライト別々でやりたいなら、
変数を一つ設定しておいて
set the variable direction to point_direction(x, y, mouse_x, mouse_y)
if expression (direction < 22.5 || direction >= 337.5) is true // 8角形に「?」のアイコンを使う
set the sprite (右向きのスプライト)
if expression (direction >= 22.5 && direction < 67.5) is true
set the sprite (右上のスプライト)
if expression (direction >= 67.5 && direction < 112.5) is true
set the sprite (上向きのスプライト)
……(中略)
if expression (direction >= 292.5 && direction < 337.5) is true
set the sprite (右下のスプライト)

みたいな感じに判定していく。ここまでくるとGML書いてるのとあまり変わらんけど、
アクションだと複数条件の組み合わせはうまく表現できないからね。
0016名前は開発中のものです。2008/05/12(月) 00:15:01ID:Nz3aygB6
条件文が意味不明だ。なぜ、Check Object を使うのか。
条件にあるxとyの値が決め打ちなのも意味不明。

君がやりたいことは、
・マウスの方向によって画像を変更する
なのだろう?
なら、「マウスの方向」が条件になるはずではないか。マウスの座標は mouse_x mouse_y で知ることができる。
そして、自キャラから見たマウスの方向は、point_direction() という関数で知ることができる。
アイコンによる設定の説明は面倒なので、コードだけ書いとく。(Varアクションと TestExpression でできるけど)
ステップイベントにExecute Code アクションを追加して、中身を下のやつをコピペしてみ。
spr_k001_xx は向きにあわせたものに直してくれ。

direction = floor(point_direction(x,y,mouse_x,mouse_y)+22.5);
if (direction>=0 && direction <45) { //右向き
sprite_index = spr_k001_xx;
} else if (direction>=45 && direction <90) { //右上
sprite_index = spr_k001_xx;
} else if (direction>=90 && direction <135) { //上
sprite_index = spr_k001_xx;
} else if (direction>=135 && direction <180) { //左上
sprite_index = spr_k001_xx;
} else if (direction>=180 && direction <225) { //左
sprite_index = spr_k001_xx;
} else if (direction>=225 && direction <270) { //左下
sprite_index = spr_k001_xx;
} else if (direction>=270 && direction <315) { //下
sprite_index = spr_k001_xx;
} else if (direction>=315 && direction <360) { //右下
sprite_index = spr_k001_xx;
}
0017名前は開発中のものです。2008/05/12(月) 00:15:38ID:Nz3aygB6
おわ、リロードすればヨカタ.... orzorz
0018名前は開発中のものです。2008/05/12(月) 01:16:43ID:ikz1QGUi
>>15 >>16
返答ありがとうございます。
おお、出来ました
お二人ともありがとうございました。
ではまたいじってきます^^
0019名前は開発中のものです。2008/05/12(月) 01:30:34ID:RmZAj2l+
プリミティブでテクスチャを綺麗に台形に表示するってのはできないのかね……

三角形単位だとやっぱ辛いか
0020名前は開発中のものです。2008/05/12(月) 02:07:25ID:TpSXp6LY
>>19
三角形単位だと歪むね・・・。
64x64で、上辺32、下辺64、高さ64の等脚台形で、力技でこんなのやってみた。
比較的ゆがまないが、多数表示するのには向いていないだろうね

draw_primitive_begin_texture(pr_linelist,texid);
for (i=0;i<64;i+=1) {
draw_vertex_texture(16-i*16/63,i,0,i/63);
draw_vertex_texture(47+i*16/63,i,1,i/63);
}
draw_primitive_end();
0021名前は開発中のものです。2008/05/12(月) 02:38:35ID:ikz1QGUi
>>16さんの文章を応用して、弾もマウスの方向によって変えたいのですが、
どう書き換えたらいいでしょうか。。書き換えていただけませんか?
0022名前は開発中のものです。2008/05/12(月) 02:41:29ID:ikz1QGUi
あ、あとしっかりとマウスの方向に向かって回るようにしたら中心を動かすことになったので
動かしたのですが、そしたら弾の出る場所がおかしくなりました。。
どうしたら前のように銃口の座標から撃てるでしょうか
0023名前は開発中のものです。2008/05/12(月) 03:03:27ID:4cPaCS6e
>>ID:ikz1QGUi
いいかげんにしろ。
「書き換えていただけませんか?」とか、失礼すぎ。人をツールのように扱うなよ。
あと、基本的なことが理解できてないようだから、
>>1の非公式サイトを読みながら、最低一ヶ月試行錯誤しろ。
今までの質問を解決する材料は、全て書いてあるし。
■ このスレッドは過去ログ倉庫に格納されています