トップページgamedev
1001コメント465KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/07/12(火) 09:03:47ID:DK0oUKwt
無料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/
0136名前は開発中のものです。2006/02/14(火) 19:00:34ID:OGIWffPi
>>135
ヒミツ


マヌアルに目を通してみようよ
0137名前は開発中のものです。2006/02/15(水) 20:04:58ID:6LM6alMi
いっそ同人ゲー板のほうに立てるか類似スレ立てたほうが人集まるんじゃね?
01381252006/02/16(木) 19:54:41ID:+HYBFe6p
さっぱりわからんです……
ダッシュと組み合わせようとするとなおさらさっぱり。
0139名前は開発中のものです。2006/02/17(金) 04:01:55ID:dYDNpFED
>>138
タメジャンプじゃなくて、マリオみたいにジャンプ後に制御したいのかな?

変数を一つ用意して、ジャンプした時に変数を1にする。
一定時間経過するか、ボタンを離したら変数を0に戻す。
で、変数が1の間は重力の効きを弱くする、というのではどうでしょう。
0140名前は開発中のものです。2006/02/17(金) 21:27:27ID:EyjSGAvO
139じゃないけど139をヒントに作ってみた
ttp://gamdev.org/up/img/4690.zip
こんな感じ?
0141名前は開発中のものです。2006/02/17(金) 23:48:09ID:7zEm/w8C
うぉ いつのまにかレスが
>>139
その通り、マリオ(もっというとロックマン)みたいなジャンプを再現したかったのです。言葉足りなくてスマソ
とりあえずその方法を試して見ます。
>>140
感じとしてはそんな感じです、わざわざすみません。
0142名前は開発中のものです。2006/02/19(日) 14:11:12ID:CCeheyjZ
同意できるのに>>134がスルーされている件について
ヘルプ読んでも、わかんねえ…。
0143名前は開発中のものです。2006/02/19(日) 14:15:33ID:hVYPSpvh
引用: Save the game(ゲーム状況を保存)
現在のゲーム状況をセーブします。
つ「ttp://gamemaker.main.jp/」
0144名前は開発中のものです。2006/02/20(月) 01:52:21ID:Ngv0PK/O
ヘルプにあるぞ。
Finishing the Game -> Global game settings -> Various other options
Let <F5> save the game and <F6> load a game
デフォルトでこの機能は有効になっている。

変数などの状態は保存できるので、機能的には通常、これで十分かと思われる。
しかし、どこでもセーブ可能なため、制限したいならこのチェックをはずし、アクション "Save the game" 等を使って自力で組む必要がある。
パーティクルの状態が再現されないなどの点にも注意。
0145名前は開発中のものです。2006/02/20(月) 12:39:53ID:7gRnoyKe
わざわざ自前でファイルに書き出して読み込みやってたオレはアホかw
スクリプトがもっと書きやすかったらGameMaker良いんだがなあ・・・。
0146名前は開発中のものです。2006/02/20(月) 13:49:24ID:QEe7nvmj
そこでDelphiですよ
0147名前は開発中のものです。2006/02/20(月) 14:55:56ID:4zpNyKhY
なんでまたDelphi
0148名前は開発中のものです。2006/02/20(月) 16:13:18ID:ZzYiwD5Z
どこでもセーブはゲームバランス崩されるし、
直ぐ飽きられる場合もあると思う。

>>145
こだわりがあっていいじゃん。
0149名前は開発中のものです。2006/02/21(火) 23:19:35ID:ygP3Me4d
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 先生! 自己満足ゲーム作ってたら、
 _ / /   /   \   原因不明のバグにぶち当たりました!
\⊂ノ ̄ ̄ ̄ ̄\  \_______________
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          || 
0150名前は開発中のものです。2006/02/22(水) 00:04:54ID:+bb3J/62
うp汁
0151名前は開発中のものです。2006/02/22(水) 02:13:42ID:WD1YjkLm
ドット絵ばかり書いててまったくゲーム作りが進まない俺ガイル
0152名前は開発中のものです。2006/02/22(水) 10:18:04ID:RmfqUly/
>>150
とうあえずうp
ttp://gamdev.org/up/img/4743.zip


□ 同士が離れていると、仲間の近くへ移動するようにしたいんだけど動いてくれない。

○のDepthを変えるとちゃんと動くようになるみたいなんだけど、
GameMaker自体のバグか何かなのかな?
だけど変えると今度は○の方がおかしくなるし・・・
0153149=1522006/02/22(水) 12:17:49ID:RmfqUly/
6.1バージョンで問題なく動くのを確認・・・

どうも5.3Aのcollision関連の関数で起きる模様。
0154名前は開発中のものです。2006/02/22(水) 12:38:07ID:RtW+y/jz
>>150
まちがってたらすません
前レスの717〜740ぐらいに丼氏のボイドトランサーで逆のパターン(近くにいるおなじインスタンスから離れる)
だったかの質問レスがあるのでそれもチェックしてみたら?
>>50に前レスログのURLあるよ
0155名前は開発中のものです。2006/02/22(水) 13:08:59ID:RtW+y/jz
>>よこしま氏 mbtext_scripts&jfont使わせてもらってます。今のところええ感じです・・といいつつ質問なんですが(^-^;;
mbtext_draw()の第4引数widthを指定しない時やwidthに満たない幅で描画するときに描画幅を調べる構文を以下の様に書いてます。
今のところ"\\n”や改行などを無視してもいい状況なのでこれで妥協してます。
作者観点から付け加えがありましたらヨロシクです。
----------ここから---------------
var inputtext, code, text_len_cnt, i, textareawidth;
inputtext = "描画させる文字列1234"
textareawidth = 0;
text_len_cnt = string_length(inputtext);
for( i = 1; i <= text_len_cnt; i += 1)
{
code=ord(string_char_at(inputtext, i));
if((code>=32)&&(code<=126)) textareawidth += global.mbchar_size/2;
if((code>=129)&&(code<=152)) textareawidth += global.mbchar_size;
}
0156名前は開発中のものです。2006/02/22(水) 13:44:20ID:RtW+y/jz
上の続き
この後に
mbtext_draw(inputtext, room_width/2 - textareawidth/2, 150, 0, 0, 0))
といった感じで続けています。
0157名前は開発中のものです。2006/02/22(水) 14:14:25ID:CuQeG0lj
>>151
絵師乙です!
01581492006/02/22(水) 14:32:17ID:RmfqUly/
>>154-156
サンクス!調べてみます。
01591542006/02/22(水) 14:52:00ID:RtW+y/jz
>>149
レス番間違えてた;;ごめん;
0160名前は開発中のものです。2006/02/22(水) 18:51:30ID:WbHshgLK
質問なのですが、Keypressed、Keyreleasedに相当するジョイパッドのイベントはないのでしょうか?
それとも押したら変数で逃がしてうんたらかんたらなどをGMLで記述しないと作れないのでしょうか。
0161よこしまなMr.02006/02/22(水) 19:28:30ID:vs/6uiJn
>>155-156さんのご指摘を受けて、テキスト領域の試算のみ行う関数(mbtext_draw_test関数)を追加し、mbtext scripts 1.3.0として公開しました。
ttp://gamemaker.main.jp/modules/news/article.php?storyid=31

>>160
以下のスレッドに同様の質問があります。
GMJ Forum -> ジョイスティックのボタン押下時にイベントを発生させたい
ttp://gamemaker.main.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=37&forum=1
0162名前は開発中のものです。2006/02/22(水) 23:01:27ID:kPdMax+/
>>152
instance_furthestの返り値を表示してみたら-4(noone)になってるね。
しかし、Squareがルーム内に複数いる以上、nooneが返ることはありえないはず。
は、もしかして……!

スプライトとオブジェクトの名前がかぶってますよ。
01631492006/02/23(木) 10:06:26ID:tTwTR64C
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 先生! if (collision_circle(self.x,self.y,70,Spuare,false,true))
 _ / /   /   \     を
\⊂ノ ̄ ̄ ̄ ̄\ |     if (distance_to_object(Spuare) < 70)
 ||\        \\   に代用させた所、問題なく動きました!
 ||\|| ̄ ̄ ̄ ̄ ̄||   \_______________
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          || 


>>162
違うようにした方がいいんでしたっけ?
0164名前は開発中のものです。2006/02/23(木) 12:52:18ID:3zWbUjiF
>>152
スゲー
AIですか
0165名前は開発中のものです。2006/02/23(木) 14:15:06ID:PAdpKi4b
>>152
いろいろ調べた結果、GameMaker 5.3A側でcollision系関数の引数 notme の適用方法にバグがありそうですね。
コリジョン対象のオブジェクトを オブジェクト名で限定した場合、特定の状況で notme を true としても有効にならず、
本来なら「偽」と判定される状況でも「真」となってしまう模様。(対象オブジェクトがallとかなら問題なさそう)
6.1では、このバグは解消されているようです。
・・・5.3Aのサポートは終わってるのかなぁ…?
0166よこしまなMr.02006/02/23(木) 17:52:05ID:iLVzLMDT
>>163
違うようにしないとだめなんです。
なぜなら、リソース識別子はダイレクトにGMLの定数としてマッピングされるので、同じ名前空間で識別子の衝突が起こってしまうからです。
これはGMJフォーラムでも何度か話題に上りました。
ttp://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=34&forum=6&post_id=136#forumpost136

>>165
ttp://www.gamemaker.nl/bugreport.html には一応「Older version」という選択項目もあるみたいですが、"Make sure you use the latest version of Game Maker. We do not handle bugs in older versions."という記述がこれまた微妙ですね


お知らせ:
現在、GM5/GM6でmp3,oggをBGMとして再生することができる連携プログラムを開発中です。この連携プログラムは、レジスト版の機能に「依存しない」ので、Game MakerのBGM再生機能に不満を抱いている方にとっては便利なものとなる予定です。
(.NETアプリではないので軽いはず。MODにもおそらく対応。MIDI形式は未定)
01671492006/02/23(木) 18:55:07ID:tTwTR64C
>>164
英語ダメ、計算ダメ、絵ダメ、文才ダメだけど、
AIだけには拘りと自信があるのだ。

>>165
ふむふむ・・・検証オツカレです。

>>166
特に問題なかったから今まで普通にシテマシタヨ。
参考になりました。
0168名前は開発中のものです。2006/02/24(金) 04:19:37ID:/Tk/YbQr
>>よこしまさん
155です
前回の書き込みで舌たらずな文章で心証悪くしてたらすみません。
そして素早い対応、すっごく感謝です。ありがとうございました。

今シューティングを作成してて・・スコアとかの表示関連を作りなおしてるんですよ。
それで自機が近づいたら表示を画面外に出すやつをやってて、
先に描画領域が取得したかったんです。

mbtext動作状況はゲーム進行を妨げずうまく動作しています。

0169よこしまなMr.02006/02/25(土) 02:33:02ID:mwGxEe4m
>>168
いえいえ
実際の描画幅を取得できないというのは盲点でした。
おかげさまでmbtextを改良することができたのでこちらこそ感謝です。

お知らせ:
>>166でちらっと触れていたBGM再生用のプログラムおよびスクリプトがほぼ完成しました。
再生に対応しているサウンド形式は「mp3, ogg, mod, it, xm, s3m」です。
同時に再生できるサウンド数は無制限です。
GM5/GM6と共に動作し、レジスト版でも未レジスト版でも動きます。
機能的には、「再生、一時停止、再開、停止、リセット」の操作、および、「音量、再生スピード、パン、ループ」の制御(再生後でもサウンドごとに変更可能)をサポートしています。

GMとは別プロセスでサウンド再生を行いますが、制御元のGMのウィンドウが消失すると自動終了する仕組みになっているので、万が一GMのゲームがフリーズした場合でも「サウンドだけがずっと鳴ったままになる」という事態は起こりません。
また、サウンド再生を行ってもGMのゲームスピードを遅らせることはありません。ループ再生の場合も安定して動作します。

いまいち分かりにくいかも知れませんが、GMのゲームが この「BGM再生用のプログラム」を非同期制御するという仕組みです。
GM側からは、簡単なスクリプトを呼ぶだけで透過的にサウンド再生を行うことができます。

例:my_music.mp3を音量80%で再生する
bGM_play("my_music.mp3", 0.8);

現在、細かい改良と調整を行っています。
0170よこしまなMr.02006/02/26(日) 21:15:52ID:2s5I4Elf
bGM; background-music player for Game Maker
ttp://gamemaker.main.jp/modules/news/article.php?storyid=33

名前が覚えやすい(BGMとカブる)のが最大の特徴です( ワラ
0171名前は開発中のものです。2006/02/26(日) 23:33:03ID:FvVbCteI
>>170
IDが妖精サンダー
0172名前は開発中のものです。2006/02/27(月) 23:56:13ID:cC0bdxOd
withの使い方で質問です。
withの中ではotherが元々selfだったインスタンスを参照するようになりますが、
では元々otherだったインスタンスはどうやって参照できるのでしょうか?

具体的には、自分と敵弾がぶつかった時に破片を飛び散らせようとしてるのですが……

// self=自分、other=敵弾
var i, ii;
for (i = 0; i < 8; i += 1) {
ii = instance_create(x, y, obj_fragment);
ii.direction = i * 360/8;
ii.speed = 4;
with (ii) {
motion_add(???.direction, ???.speed / 2); // ←ここで敵弾の動きを合成したい
}
}

??? の所に何を入れたらいいかわからなくて困っています。
01731722006/02/28(火) 03:02:25ID:emwe4w/O
すみません、よく考えたらやりたいことは
ii.hspeed += other.hspeed / 2;
ii.vspeed += other.vspeed / 2;
で可能でした。
でも後学のため、with内から外側のotherを参照する方法
ご存じの方いたらお願いします。
0174名前は開発中のものです。2006/02/28(火) 14:52:42ID:vklEnotz
>>172
スクリプト内部の一時変数に記憶しておくしかないかな。

-----
var other_id;
other_id = other.id;

with ( ) {
  // withループ内でも、変数 other_id で 元々の other のインスタンスIDを参照できる。
}
-----
0175よこしまなMr.02006/02/28(火) 18:56:54ID:6cM1DN1x
>>172-173
174さんが仰っている通りですね。たぶんその方法しかないと思います


bGMのプレビューデモ(*.gmd, *.gm6)を公開しました。
ttp://gamemaker.main.jp/modules/news/article.php?storyid=34

マウスクリックおよび[←][→]キーに合わせてoggストリームの音量・パン・ピッチシフトを変化させるデモです。
01761722006/02/28(火) 23:15:51ID:emwe4w/O
>>174
ども、それでいけました。
with内では何も付けなければvarで宣言した変数を参照できるみたいですね。
ん、でも、同じ名前のインスタンス変数があったらどうなるんでしょう?

実験してみたらこんなん出ました。

var inst1, X;
inst1 = instance_create(0, 0, object1);
X = 'var X';
self.X = 'self.X';
inst1.X = 'inst1.X';
with (inst1) {
show_message(X); // ←これは var X になる
show_message(other.X); // ←これは self.X になる
show_message(self.X); // ←これは inst1.X になる
}
0177名前は開発中のものです。2006/03/07(火) 20:49:20ID:c3gblkOt
保守
0178名前は開発中のものです。2006/03/08(水) 00:00:41ID:pSfOHtTI
ほしゅおつ
0179駄々2006/03/08(水) 15:02:46ID:U8guAHRA
初めまして駄々といいます
質問なんですがキャラのアニメーションでカーソルキー→を押したら
右に移動しているアニメ
←をおしたら左に移動しているアニメを表示させるにはどうすれば良いのでしょうか
簡潔に言うと
→を押したら ● ⇒ ●
>| /|
みたいな・・・(分かりにくくてすんません)
0180名前は開発中のものです。2006/03/09(木) 01:46:39ID:fAsQapMu
>>179
右用オブジェと左用オブジェ作って同一親オブジェクトを登録
右用オブジェと左用オブジェの逆方向のキーボードイベントで逆のオブジェクトへ
インスタンスチェンジする。
共通のイベントは親オブジェクトで作成する

みたいな感じがいいんでないかい?
0181駄々2006/03/09(木) 01:58:19ID:kV2wX20F
>>180
それでなんとか出来そうです
ありがとうございます!
0182名前は開発中のものです。2006/03/10(金) 02:52:55ID:/vwSpjSb
わーいロックオンレーザーができたヨー
ttp://gamdev.org/up/img/4909.zip
0183名前は開発中のものです。2006/03/10(金) 18:35:27ID:kxaQ8pGu
>>182
レーザーの動きが滑らかでいいね!

普通に楽しめますねー。
0184名前は開発中のものです。2006/03/11(土) 13:07:48ID:B0K6mRFK
いいね。GJ!

贅沢いうと、複数ロックオンした時はいっぺんに発射するよりゼロコンマ秒遅れて時間差で
発射するようにしたほうが爽快な気がス
0185名前は開発中のものです。2006/03/12(日) 16:59:08ID:EbhNu3eR
>>182
パッド差してると勝手に右下に移動しちゃうんだけど……。
0186名前は開発中のものです。2006/03/13(月) 03:31:36ID:3bCLLKKk
うんうん
0187名前は開発中のものです。2006/03/13(月) 03:45:59ID:1xHX09ww
>>184
時間差実装してみました。ついでにレーザーの表現もちょっと変えてみたです。
>>185
パッドによってはjoystick_xposが厳密に0を返さないことがあるみたいですね。
閾値を設けて判定するように修正しました。
ttp://gamdev.org/up/img/4967.zip

イカミサイルが時々何にも当たってないのに消えちゃう現象が出るけど、
原因がつかめん……
0188名前は開発中のものです。2006/03/14(火) 19:14:36ID:8RK8eiVf
>>187
即効で修正しまくるオマエGJ。
0189名前は開発中のものです。2006/03/17(金) 21:57:55ID:/PdAbkhM
ver.6,1で数値入力の際に「0から32までの数」などというように範囲指定をして入力したいのですが
こういう入力の仕方を教えて頂けないでしょうか

if there is an object at a position
でオブジェクトAがオブジェクトBの一定範囲内に入った場合、行動を起こすようにしたいのですが
この数値の範囲の入力方法がわからず困っております

マニュアルに書いてあるような初歩的な事かもしれないので大変恐縮ですがお願いします

一応、印刷された旧バージョンのマニュアルを持っているので
読んではみたのですが探し当てる事が出来ませんでした…(´・ω・`) 
0190名前は開発中のものです。2006/03/17(金) 23:48:51ID:UTobLwMn
>>189
if there is an object at a positionは登録したオブジェクトと指定したオブジェクト同士が
衝突しないと真をかえさないので”一定範囲に入ったとき”とはなんだかニュアンスが違うような気がしますが?

自分のやり方でわるいですが”Execute a piece of code(コードを実行)”でGMLを書いたほうがすっきりすると思います
たとえばオブジェクトAのオブジェクト名を”obj_A”オブジェクトBをobj_B”として一定範囲に入ったときオブジェクトAを
動かしたい場合obj_AオブジェのステップイベントにExecute a piece of codeを登録する。
”一定範囲”が単純に”A,B間の距離”でいいならpoint_distance(x1,y1,x2,y2)関数(2点間の距離を計算する)を
使えばいいと思います。100ピクセル以内に入ったときとしての記述はこの場合・・・
if(point_distance(self.x, self.y, obj_b.x, obj_b.y) <= 100)
{
//ここに動かす為の記述をする
}
というふうにしてみてはどうですか?
01911902006/03/17(金) 23:55:05ID:UTobLwMn
× if(point_distance(self.x, self.y, obj_b.x, obj_b.y) <= 100)
○ if(point_distance(self.x, self.y, obj_B.x, obj_B.y) <= 100)

細かい訂正及び長文ですいません(´・ω・`)
0192名前は開発中のものです。2006/03/18(土) 00:27:30ID:WYhXOtxE
>>190
>if there is an object at a positionは登録したオブジェクトと指定したオブジェクト同士が 
>衝突しないと真をかえさないので

済みません、知りませんでした…

プログラムとかできないよって言う友人と作業しているので
GMLは使えないのですが(書くべきことを書いていなくて重ね重ね済みません(´・ω・`))
変数でも同じ事ですので大変参考になりました、有難うございます
01931902006/03/18(土) 02:26:21ID:9Lf6fvmN
>>192
> プログラムとかできないよって言う友人と作業しているので
> GMLは使えないのですが(書くべきことを書いていなくて重ね重ね済みません(´・ω・`))
ああ・・なるほどGMLなしなんですか^^; GMLでもアクションアイコン(っていっていいのかな?^^)
でも自分が思っている動きができればOKかと^^
で・・・実現できそうですか?(いっちょかみしたので少し気がかり^^

0194名前は開発中のものです。2006/03/18(土) 04:07:36ID:KjV7bw5B
ニコニコニコニコうるせーんだよカスども!!
0195名前は開発中のものです。2006/03/18(土) 13:39:39ID:bMeUjPwj
ニコニコニコニコって?
0196名前は開発中のものです。2006/03/18(土) 14:00:07ID:U+h1lbvn
どうみても誤爆です。
本当に有難うございました。
0197よこしまなMr.02006/03/18(土) 21:43:30ID:G0hInr+C
bGM ver. 1.0.0およびチュートリアル・関数リファレンスを公開しました。
ttp://gamemaker.main.jp/modules/articles/article.php?id=25
0198駄々2006/03/23(木) 20:11:36ID:QpjTFGD2
お久しぶりです
また質問なんですが主人公キャラに重力を与えたのですがブロック(地面)の上に乗ると
←方向に移動してしまいます(移動と言うよりも左に引っ張られている感じ)
どなたか解決方法を教えてください
0199駄々2006/03/23(木) 21:07:49ID:QpjTFGD2
>198
自己解決しました
すいませんでした
0200名前は開発中のものです。2006/03/24(金) 00:10:23ID:1MGw+l1b
>>198-199
いいけど、質問する前に、もっと慎重にな。
フォーラムの質問もおまいなら削除依頼なりなんなりしておけよ。
あと、症状だけいわれてわかるエスパーなどいないことも覚えておいてくれ。
0201名前は開発中のものです。2006/03/24(金) 22:32:50ID:PR6KQDDw
>>200
ぶっちゃけ過疎ってるんだから小さな質問でもいいんじゃない?

>>199
自己解決すんな。回答を待て!w
0202名前は開発中のものです。2006/03/27(月) 12:11:59ID:Ft51kzDw
http://kjm.kir.jp/pc/?p=20956.png

…頑張ってみた。
はぁ。
0203名前は開発中のものです。2006/03/27(月) 13:28:28ID:Ft51kzDw
メインメニューも日本語化パッチ。
http://www.uploda.org/uporg347869.zip.html
0204名前は開発中のものです。2006/03/27(月) 17:34:37ID:w/CqsEE/
全部日本語化出来た?
0205名前は開発中のものです。2006/03/27(月) 19:38:49ID:Ft51kzDw
>>204
ジョージ…残念ながらそれは無理だ。
別に出来ないことはないが時間が無い。
リソースにメッセージデータが入ってない箇所が多すぎる。
いちいち特定してCRCエラーが起きないようにビクビクしながらやるのは
すごく大変なんだ。

クラック対策用の処理の潰し方が結構適当。
とりあえず致命的エラーは起きないようにしてあるけど、
起動時に必要な処理をどっか潰してる可能性もある…。

まぁ、俺が使っている"かぎりでは"何の問題もない。
ちゃんとファイルのロード、セーブも出来てるし実行ファイルの出力も出来た。
実行ファイルの方には何も手をつけてないから当然か。
0206名前は開発中のものです。2006/03/29(水) 06:10:57ID:s0l2fzu9
てか最新版の日本語化じゃないのか。
0207名前は開発中のものです。2006/03/29(水) 14:06:16ID:BdCnmoxX
GJ
0208駄々2006/03/29(水) 22:26:10ID:Mzj60OcA
質問させていただきます
ロックマンのようなボスキャラの動きなどはGMLコード(だっけ?)を使わなくては作れないのでしょうか?
質問ばかりですいません(しかも無駄レス・・)
0209名前は開発中のものです。2006/03/29(水) 22:34:41ID:PV+kH8qv
質問キター


ロックマンのようなボスの動きというのがわからないので回答できません。
すみません・・・
0210駄々2006/03/30(木) 00:08:23ID:98xmE8PI
ロックマンのボスのような動きの例(例っていうかこんなふうに動かしたい)
・左右にランダムに動く(又は壁にぶつかったら反対方向に動く)
・2〜3秒に一回攻撃する
・ピンチになると本気モードになる(これは実装するか分からないのですが一応)
以上の動きをさせたいんですが
GMLコードを使わなくてもできますか?
0211名前は開発中のものです。2006/03/30(木) 13:19:39ID:YmzEqY6O
>>210
実際試してないができると思う、詳細はマニュアルorヘルプファイル参照願う
>左右にランダムに動く
ステップイベントにWith a change perform next actionをおいてsidesを2で指定し、その下にReverse horizontal directionアクションをおいて反転させる
With a change perform next actionの結果が偽ならReverse horizontal directionは無視され結果1/2の確率で反転される。

>壁にぶつかったら反対方向に動く
ステップイベントにIf there is a collision at a positionを置いてRelativeにチェック、x,yにはボスが1ステップで動く量を代入する(実際に動く前に
どこへ動くかの前判定になる)objectには壁になるオブジェクトを指定してやる(壁オブジェは親オブジェでくくっといてこの親でobjectに代入しておくと後々楽)
後は左右に動くと同じでReverse horizontal directionを登録、縦方向の動きがあるならReverse vertical directionもあわせて登録しておく、
この場合Start of block、End of blockで前述のReverse horizontal direction、Reverse vertical directionアクションをまとめてやる。

この2つは既に動作アクションが前もって実行されていることが前提であるから生成イベントとかで動作アクション等を割り付けておく。

02122112006/03/30(木) 13:44:20ID:YmzEqY6O
続き
>2〜3秒に一回攻撃する
アラームイベントを使う。
一番シンプルなのが常に指定した単位秒で毎回攻撃するという形で書かせてもらうと
生成イベントでアラームアクションを登録number of stepには現状ルームスピード*秒数の値を、
in alarm noにはどのアラームを使うかを指定する。
指定したアラームのイベントに攻撃する用のアクションを登録していって、最後に生成アクションでつくったアラームアクションをコピぺする
これで指定秒ごとに繰り返すようになる。

>ピンチになると本気モードになる
ピンチというと普通HPがある程度のとこまで減ったとかそんなんだよね?
それ前提で・・・
ステップイベントでHPとなる変数を If a variable has a valueで監視→規定量以下になったらさっきの
「2〜3秒に一回攻撃する」の秒数を減らすとか、移動スピードを多くするとかしてみたらどう?
実装するときはこの秒数なり移動スピードを変数で登録しておくなどの下ごしらえで結構楽に組めたりするよ
02132112006/03/30(木) 14:02:04ID:YmzEqY6O
訂正
>>左右にランダムに動く
>ステップイベントにWith a change perform next actionをおいてsidesを2で指定し、
>その下にReverse horizontal directionアクションをおいて反転させる
>With a change perform next actionの結果が偽ならReverse horizontal directionは無視され結果1/2の確率で反転される。
ステップイベントでやると毎回確率判定が行われるから反転が重なる可能性がおおいので
これもアラームアクションを使って何秒間かに1回判定をかける方がいいですね
0214名前は開発中のものです。2006/03/30(木) 16:02:04ID:flRGae76
(別解)
とりあえずは上のアラーム使う方法が手っ取り早いと思うけれど、
タイムラインで行動パターンを組んでループさせる方法もあるね。
特に説明はしませんが

ステップ数 行動
0 ランダムで方向決める
100 弾を撃つ
110 ジャンプ
200 弾を撃つ
250 弾を撃つ
400 先頭へ戻る

タイムライン上のスピードの変数もあったりするから、
GMLも知っておくといろいろ応用が利く。
パターン化された動きをするならこっち、
AIっぽく振る舞わせるならタイマーかなあ。
0215名前は開発中のものです。2006/03/30(木) 16:06:44ID:flRGae76
タイマーじゃなくてアラームだ。
クリック&プレイ使ってた時の癖が
0216駄々2006/03/30(木) 21:16:29ID:98xmE8PI
非常に助かります!!
とりあえず後で試してみます!
自分もクリック&プレイしてたな〜・・・・
0217名前は開発中のものです。2006/03/31(金) 16:41:53ID:4VV46Pcn
まだKNP使っている自分orz
0218名前は開発中のものです。2006/04/03(月) 14:38:26ID:W85JHXvu
なんだかんだでKNPは手軽ないい玩具だったよなあ。
アレくらいわかりやすいともっと流行るのかなあ……
0219駄々2006/04/13(木) 12:58:29ID:CCVlXrag
また質問です
・主人公についてくる
・敵が近づいてきたら攻撃しにいく
・敵が近づいてきたら遠ざかる(↑のとは違うキャラです)
上記のようにキャラを動かしたいんですかどうすればいいのでしょうか?

前回のはうまく動きました!(本気モードはまだやってない)
211さんありがとうございました
0220名前は開発中のものです。2006/04/15(土) 19:49:09ID:fbNvFET3
これ面白いですね。けどさすがに知識0な自分には厳しいかな
チュートリアルのボールゲームは作れたけど、自力じゃ歩くキャラ作るのもままならないやw
0221名前は開発中のものです。2006/04/17(月) 01:49:39ID:MWZgJo7r
はじめましてです。質問してもいいでしょうか?

30フレームのroomAにおいて、
オブジェクトBの座標に向かってスピード80で進むオブジェクトAがオブジェクトBと重なった時に次のイベントが発生するように
イベントの発生条件をアクションリストのIFを使って

obj_A=(obj_b.x,obj_b.y)

としたのですが、2〜3回に一回程素通りされてしまいイベントが開始されません。
どうすればいいのでしょうか?

あと、オブジェクトが重なりあった時の前面に出るオブジェクト画像の優先順位は変えられないのでしょうか?

どなたかお願いしますm(__)m
0222よこしまなMr.02006/04/17(月) 05:47:17ID:cr8rW51E
>>221
>オブジェクトAがオブジェクトBと重なった時に次のイベントが発生するように

Case1. 自インスタンスの位置がobj_bの位置と同じかどうか判定する場合:
[If an expression is true]
expression: (x == obj_b.x) && (y == obj_b.y)

Case2. 自インスタンスのspriteがobj_bのspriteと重なっているかどうか判定する場合:
[If an expression is true]
expression: place_meeting(x, y, obj_b)

>オブジェクトが重なりあった時の前面に出るオブジェクト画像の優先順位
各オブジェクトのdepth(深度)を変更します。
0223名前は開発中のものです。2006/04/17(月) 10:55:50ID:Zn9G8oL+
横槍でごめん
>>222さん
>>221さんは
>スピード80で進むオブジェクトA
及び
> 2〜3回に一回程素通りされてしまいイベントが開始されません。
といってるから多分コリジョンエリアが重なっていない症状が出てるんだと思うんだけど?
だとするとexpressionは線分で判定するcollision_line()がいいんじゃないの
collision_line(xprevious, yprevious, x, y, obj_b, false, true)
みたいな感じで・・・
0224よこしまなMr.02006/04/17(月) 20:33:57ID:cr8rW51E
>>223
補足どうもです。
>>222のCase2は素通りしたら意味が無かったです・・・

collision_line()で試してみたところ、collision_line()は「線分そのものと、静止しているobj_bが重なる場合」なら判定できるようです(つまり、「obj_Aのスプライトの形状」および「obj_bも動いていた場合」は考慮されない)。

一方、obj_A,obj_bそれぞれの動きとスプライトまで考慮し、さらに素通りした場合も考慮にいれてコリジョン判定をするとなると、どうしてもGMLでごちゃごちゃforループするしかないみたいです。
(素通りしないようにすれば、通常のコリジョンイベントで十分なんですけどね・・)
02252212006/04/18(火) 20:49:01ID:kvqrJBQi
よこしまなMr.0さん>
>>223さん>

詳しい説明有難う御座いますm(__)m
obj_bと同種のオブジェクトをポジションランダムに複数配置して、その上をobj_aが高速で移動していく動きを作りたかったんです。
コリジョンだとビリヤードの球のような動きになってしまったのでできれば他の方法が無いかとおもいましたが、
まだ初心者でGMLを複雑に使いこなすのは厳しいので、まずは欲張らずにコリジョンを使おうと思います。

丁寧に有難う御座いました!
02262232006/04/19(水) 14:23:47ID:D713torS
>>225
なるほど、30fpsでspeedが80という高速オブジェってどんなんだろうと
思ってたんだかなんとなく判った。
その要件だとステップごとにdistance_to_object()でターゲットになるobj_bとの距離を
計測してやって80以上の場合にspeedを80とし、未満の場合はdistance_to_object()で
測定した距離の値をそのままspeedに代入してやってはどうだろうか?
減速する形にはなるが減速するのはobj_bと重なる時の1ステップだけで、なおかつ必ず
衝突判定がとれるようになると思う。一回試してみて
0227名前は開発中のものです。2006/04/24(月) 14:36:25ID:+HnYfiB7
最新版の日本語化パッチまだ〜?
0228よこしまなMr.02006/04/24(月) 21:24:01ID:CcS3zOyA
>>227
GMの日本語化について、現在までの情報をまとめると以下のようになります。

▲GM5.3Aの場合、ttp://gamemaker.main.jpで配布している「Game Maker 5.3A用 日本語化パッチ」でインターフェイス部分のみ日本語化可能。
ただし、>>202=203=205さんがメインメニューも日本語化可能なパッチを作成された。(このパッチについてはGMのライセンスに触れるかどうか微妙。現在リンク切れ。)

▲GM6の場合、実行ファイル自体が暗号化されているため、仮に技術的に日本語化が可能であったとしても、GMのライセンスに触れるため、パッチを作成することができない。
以前、本家ttp://www.gamemaker.nl/facts.htmlにて、「GMのプログラムが翻訳されやすいように修正を加えるといったことを計画している」との記述があり、作者さんにメールで問い合わせた結果、「いつになるか分からない」との事。
つまり、GM6自体のi18n(インターフェイスや表示メッセージの多言語化)待ちの状態。
(GM初心者で英語も苦手という人は、本家ttp://www.gamemaker.nl/doc.htmlにて配布されているGM6.0のヘルプ日本語訳が非常に役に立つと思います。)

で、i18nがいつになるか全く不明なので、「日本人のためのGMバイブルみたいなものを作れば、多くの人が気軽にGMを使えるのではないか」と思って試しに作ってみたのが次のHTML Helpです。(まだ目次を書いたぐらいですが)
ttp://gamemaker.main.jp/dlfiles/gm_japan.chm
※WinXP SP2の場合、ファイルのプロパティで「ブロックの解除」ボタンを押さないとHTMLが表示されません。
0229名前は開発中のものです。2006/04/26(水) 09:53:02ID:GhrlEj72
>>228
乙です。


ヘルプに含まれているGMLの各関数にサンプルコードを付けて欲しいなー。
ここで言うことではないとは思いますがとりあえず要望。
02302292006/04/26(水) 10:07:26ID:GhrlEj72
>>228に脊髄レスしてしまってすみません。

>>229で書いた件ですが、ヘルプはGM付属の直翻訳ヘルプの事でして、よこしまなMr.0氏が作成しているHTML Helpではありません。

で、HTML Helpをちょっと見てみました。
関数リファレンスが期待していたような記述になっていてよかったです!
例:項がシンプルで判りやすくGJ!完全版を期待してます。

(たまにGMLの関数で扱いがわからず、数時間も悩むことがあるのでホント期待してます・・・)
0231よこしまなMr.02006/04/29(土) 07:39:55ID:QD/JyLTS
>>230
関数リファレンスについては正確性と分かり易さを両立させようと心がけていた次第です。
>228のHTML HelpはDocBookで生成したものですが、いまいち作業が捗りませんでした。
そこでOpenOffice.org 2で書き直してみると、まともなPDFを素早く生成してくれたので、この形式を採用することにします。
ttp://gamemaker.main.jp/dlfiles/u_gm_rev1.pdf
目標としては、リニアに読んでいけば理解できる構成ですね。
それと、こういった文章があればGame Makerを大学や専門学校の講義で活用したい教員の方にとって便利だろうと思います。C++などの言語解説は抜きにして「純粋にゲーム作成について講義をしたい」とか。
0232名前は開発中のものです。2006/05/02(火) 00:31:42ID:KgjzlEux
誰か英語堪能な人が各コマンドを日本語に訳したものを作者に送りつけてやれ
0233名前は開発中のものです。2006/05/02(火) 09:25:24ID:2lQlIqWb
よこしま氏のがんばりっぷりを見るにつけ、
作者はそろそろUnicode位対応してくれと思う。
そんな簡単なもんでもねえのかなあ。
催促したら他言語化早まるだろうか。
0234よこしまなMr.02006/05/03(水) 17:54:24ID:blvZBroH
パズルゲーム作ってみました。
ttp://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=58&forum=8

>>233
GNU gettextを使えばインターフェイスのi18nは割と楽に実装できるんですけどねぇ。
とりあえず、6.2が出た後の動向に期待がかかります。
0235名前は開発中のものです。2006/05/11(木) 07:00:50ID:7O4pl5z4
ねえねえ
オブジェクト増やしていくとF5のローディング時間だんだん長くなるでしょ
敵キャラクター調整してるとこの時間なんとかならないかなぁとか思うんだけど
みんなどうしてる?
■ このスレッドは過去ログ倉庫に格納されています