1 名前:名前は開発中のものです。 mailto:sage [2009/04/23(木) 08:11:08 ID:iAS0afeL] 無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。 ●本家(英語) ttp://www.gamemaker.nl/ ●GameMaker Japan - 非公式情報サイト(日本語) ttp://gamemaker.main.jp/(現在一時閉鎖中) 前スレ 【2D】ゲーム作成ツールGameMaker part3【マンセー】 ttp://pc11.2ch.net/test/read.cgi/gamedev/1210437707/
815 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:22:06 ID:YHqswL3e] >>814 おお、ありがとうございます おかげでズームアップできました
816 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 22:05:01 ID:aReQvSl6] GM9はC#製になるらしいね gamemakerblog.com/2010/05/26/game-maker-9-to-be-written-in-c/
817 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 22:13:37 ID:ZiWZ04IR] 新verか 線形補間解除できるようになったらいいな
818 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 23:37:06 ID:AF5Clpsp] それって公式発表じゃない気が。 >>816 のページもGameMakerユーザーがやってるっぽいし。 本当にC#だったら、Macは切捨てか・・・?
819 名前:812 mailto:sage [2010/06/04(金) 17:36:04 ID:ds85S00c] >>814 ありがとう 互換性無いのか・・・ なんか知らぬ間にどんどんバージョン上がってきてるしどうすりゃ良いんだ
820 名前:名前は開発中のものです。 mailto:sage [2010/06/07(月) 15:39:30 ID:A0pl8E9h] 線形補間って解除できなかったっけ GM6だけ?
821 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 15:59:46 ID:ebHnfTX2] スプライトの回転はProだけでしょうか。
822 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 17:02:25 ID:3eDecubD] いえす
823 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 20:48:06 ID:iBEd3wdQ] あるオブジェクトにある変数が定義されているかどうかを確認する方法ってありますか? 定義されていないならその処理は行わないみたいなことをやりたいのですが…
824 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 21:05:50 ID:sZ3LRrvf] つ variable_local_exists(変数名)
825 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 21:19:21 ID:iBEd3wdQ] う、ヘルプのその他の変数のところにしっかりとあったのですね。すごい恥ずかしい… 素早いレスありがとうございました。これで先に進めそうです
826 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 21:19:27 ID:dOFxgLqw] >>820 まじか 8だと出来ないわ
827 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 23:03:40 ID:3eDecubD] 7はどうだったか忘れたけど、 8だと解除っていうかデフォルトで設定されてない もちろんチェックをいれれば有効になる
828 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 23:05:13 ID:dOFxgLqw] >>827 まじか 色々チェックを弄って試してるんだけど分からぬ どのチェックかな
829 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 23:24:26 ID:3eDecubD] Global Game Settings の interpolate この辺は6から変わらないと思う
830 名前:名前は開発中のものです。 mailto:sage [2010/06/09(水) 23:31:12 ID:dOFxgLqw] すまない 画面を拡大した時に輪郭がボケるのを無くしたかったんだ
831 名前:名前は開発中のものです。 mailto:sage [2010/06/11(金) 21:51:55 ID:t2BjBbMT] いまTDS(TopDownShooter)で軽くゲームを作っているのだが、 どうもキーボード使って斜め移動をしているときに、銃を撃とうとすると斜め移動できなくなるな なんでだろ
832 名前:名前は開発中のものです。 mailto:sage [2010/06/12(土) 01:22:20 ID:PYXKd/uJ] 普通のキーボードはいくつものキーを同時押しできる作りにはなってない 組み合わせによっては三つ以上認識できないことがある ShiftとかCtrlにすると改善されるかも
833 名前:名前は開発中のものです。 mailto:sage [2010/06/12(土) 13:54:56 ID:oloLVXQg] image_angleくらいliteでも使わせてくれ…うぅ
834 名前:831 mailto:sage [2010/06/13(日) 11:29:24 ID:XK4fWSQG] >>832 やっぱりそうでしたか・・・ キーの組み合わせを調整してみます。 それでもうまくいかないようだったら四方向固定にしようかと。 >>833 激しく同意。 image_angleなしでTDS系のゲームとか作ろうとすると結構つらいorz
835 名前:名前は開発中のものです。 mailto:sage [2010/06/13(日) 15:12:21 ID:S6dSSaR1] 2000円くらい払えよ ゲーム製作なんて何ヶ月もかかるんだから、2000円ケチる方がはるかに損だと思うんだがな
836 名前:名前は開発中のものです。 mailto:sage [2010/06/13(日) 19:10:48 ID:ov7pH7B7] ところで格ゲーとかのコマンド入力ってどうやってる? ボタン押したら変数onにしてタイムラインで一定時間内に次キーが押されなかったら変数offなんて面倒な仕様にしてるんだけど もっと単純な方法は無いかな
837 名前:名前は開発中のものです。 mailto:sage [2010/06/13(日) 21:29:16 ID:taDSM2ud] 技ひとつをオブジェクト扱いにして 処理コマンド(キーを入力する順番)を配列として持ったものと 技の入力状況を示すイテレータを持たせる 一定時間ごとにキー判定を取って、キーが一致すればイテレータを進め 一致しなければ先頭に戻す。最後まで到達すれば技発動・・・みたいなことを考えた
838 名前:836 mailto:sage [2010/06/16(水) 07:51:51 ID:iSVFrURJ] なるほど、技ひとつひとつがオブジェクトですか 参考にしてみるよ。ありがとうございました
839 名前:名前は開発中のものです。 mailto:sage [2010/06/16(水) 07:56:57 ID:Jeqzgo2J] アクションゲーム作っていて、剣を振るとか殴るとかで アニメが終わる間動きを止めたいんですけどどうすればいいのか 教えてもらえませんか? よくアラームを使うって見かけるけどいまいちわからなくて… AnimationEndを使うとオブジェクトをいくつも分けないとだし 変数もややこしくなるしで一つのオブジェクトで済ませたいんです
840 名前:名前は開発中のものです。 mailto:sage [2010/06/16(水) 17:24:01 ID:jPwPQDvq] 動きに応じてsprite_indexを変更するようにしとけば、AnimationEndイベント使ってもひとつのオブジェクトでできるよ。 ただ、AnimationEndイベント内部はswitch-caseとかの場合わけが必要になるかもしれないけど。
841 名前:839 mailto:sage [2010/06/17(木) 00:24:48 ID:mBfyuQLT] >>840 ありがとう。分けなくてもAnimationEnd使えるんですか ただ動きに応じて、という処理の書き方・GMLは使ってないのでこれまた 書き方がヘルプ等見ても見当がつかないんですがGML使わなくても出来ますか? というか皆さんこういう場合具体的にどうやっているんでしょうか? 散々調べたけどその辺詳しく解説されているところが見つからなくて… ニュートラル>攻撃モーション完了(完了まで攻撃ボタン無効)>ニュートラル というのがどうやっても出来なくて数ヶ月詰まってます。 もっと簡単な方法とか他にあればどなたか教えて下さい お願いします。
842 名前:名前は開発中のものです。 mailto:sage [2010/06/17(木) 07:20:40 ID:nIJZSKy9] 全ての操作の条件に変数がonになってる事を追加して 攻撃モーションへ移る際にその変数をoff、モーション完了後に変数をonに直せば良いだけの話じゃないの?
843 名前:839 mailto:sage [2010/06/18(金) 21:45:25 ID:zwccdsE4] >>842 ありがとう なんかそう言われるとやけに簡単な気がして ゼロから組み直したらある程度形になりました。 まだ思い通りにはいきませんが…
844 名前:名前は開発中のものです。 mailto:sage [2010/06/22(火) 11:01:41 ID:Ci7o/Mjt] 進行方向と速度を指定してオブジェクト生成(電球に矢印のマーク)のアクションをGMLで表すにはどのようにするのでしょうか。
845 名前:名前は開発中のものです。 mailto:sage [2010/06/23(水) 01:35:42 ID:qd+uDdYg] >>844 まずcreateしてからsppedとdirectionを設定すればいい a = instance_create(x, y, object); a.speed = 速度; a.direction = 方向; Createイベントの時点ではまだspeedとdirectionが設定されてないから 厳密に言うとアクションと等価じゃないけどな
846 名前:名前は開発中のものです。 mailto:sage [2010/06/23(水) 01:44:03 ID:tBjeKmtz] そうですか…一度にいくつも同時にその処理を行いたかったのですが たくさん変数を用意しないといけませんね。
847 名前:名前は開発中のものです。 mailto:sage [2010/06/23(水) 01:54:04 ID:qd+uDdYg] いや、別に一時変数だから使い回しでいいし 一時変数すら使いたくないならwithを使う方法もある with (instance_create(x, y, object)) { spped=速度; direction=方向; } 同じことをあちこちでやるんだったらスクリプトにすればいい。
848 名前:名前は開発中のものです。 mailto:sage [2010/07/01(木) 17:55:32 ID:RG53nBFr] すいません Step towards a point avoiding objects はGMLでどう表せばよいのでしょうか www1.axfc.net/uploader/Img/so/87434.bmp
849 名前:名前は開発中のものです。 mailto:sage [2010/07/01(木) 19:26:31 ID:U4SaJhzr] レジストしているのならA*を使う レジストしていないなら mp_potential_settings(maxrot,rotstep,ahead,onspot) で設定した後 mp_potential_step_object(x,y,stepsize,obj) もしくは mp_potential_step(x,y,stepsize,checkall) 関係ないけど画像でaxfc使われると手間がかかるんだよなあ
850 名前:名前は開発中のものです。 mailto:sage [2010/07/01(木) 19:50:38 ID:RG53nBFr] >>849 ありがとうございます。 ところで A*ってなんでしょうか
851 名前:名前は開発中のものです。 mailto:sage [2010/07/01(木) 20:36:34 ID:U4SaJhzr] 読み方は A star 最短経路を出すアルゴリズム。 GameMaker でも使えるみたいだけどGMで使ったこと無いから 精度とかコストはどれほどものかわからない A*そのものについてはググッた方が早いかも 今なら結構解説サイトがあると思う
852 名前:名前は開発中のものです。 mailto:sage [2010/07/01(木) 21:52:39 ID:RG53nBFr] >>851 ありがとうございます
853 名前:名前は開発中のものです。 mailto:sage [2010/07/03(土) 12:24:32 ID:xej2WSqR] 未レジストのGM5で迷路みたいな複雑な道をAIに通らせる このようなアプローチは可能でしょうか
854 名前:名前は開発中のものです。 mailto:sage [2010/07/03(土) 17:57:32 ID:LChSDnyO] 広さにもよるけど可能
855 名前:853 mailto:sage [2010/07/03(土) 18:31:38 ID:xej2WSqR] >>854 mp_potential_stepとmp_potential_settingsを使うのでしょうか ルームの広さは大体600×600くらいです
856 名前:名前は開発中のものです。 mailto:sage [2010/07/03(土) 20:41:39 ID:LChSDnyO] 何をしたいかによるよ 例えばTower Defense系のように最短経路を辿らせたいとか トルネコみたいなローグ系な動きとか 迷路のほうはともかくAIに何をさせたいか分からないと説明に困るぞ
857 名前:名前は開発中のものです。 mailto:sage [2010/07/03(土) 21:34:57 ID:9sSVyJeo] 英語でぐぐれ
858 名前:名前は開発中のものです。 mailto:sage [2010/07/03(土) 21:35:54 ID:9sSVyJeo] 誤爆
859 名前:853 mailto:sage [2010/07/04(日) 09:41:34 ID:R47f51en] >>856 そうですね・・・ Tower Defenceみたいに最短経路を辿らせてみたいのですが 説明忘れてましたorz
860 名前:名前は開発中のものです。 mailto:sage [2010/07/04(日) 11:49:06 ID:fTuJE3/P] TDなら塗りつぶし法がいいと思う 迷路の形状が決まった時点で、出口から通路をスコアつきで塗りつぶしていけば 敵はそのスコアが小さくなるようにたどっていけば最短になる mp_potential_stepとmp_potential_settingsの組み合わせはTDには向いていない 根本的に最短を通るわけではないし かなりいい加減によけていくのでおそらく狭い通路みたいなところだとうまくないと思う 2Dの見下ろし型のゲームで単純な障害物をよけるような場面が適しているんじゃないかと
861 名前:853 mailto:sage [2010/07/04(日) 13:05:11 ID:R47f51en] >>860 塗りつぶし法ですか ちょっと調べてきます 有難うございました
862 名前:853 mailto:sage [2010/07/04(日) 14:11:38 ID:R47f51en] >>860 >迷路の形状が決まった時点で、出口から通路をスコアつきで塗りつぶしていけば 調べてもなかなかよくわかりませんでした サンプルとかあると幸いです
863 名前:名前は開発中のものです。 mailto:sage [2010/07/04(日) 14:58:54 ID:fTuJE3/P] ん〜例えば、Sをスタート、Gをゴールとして下の図を塗りつぶすと ずれているかも知れないけど右のようになるでしょう あとは数字が少なくなるように移動させるだけ □□□□ 3456 □■S □ → 2■65 □G ■□ 10■4 □□□□ 2123 GM5は古いしサンプル期待するのは難しいかもしれない 経路探索の名前はともかくアルゴリズムの本を見れば大抵のものには これ系のものは載っていると思う
864 名前:名前は開発中のものです。 mailto:sage [2010/07/04(日) 21:49:22 ID:R47f51en] >>863 ヒントを有難う これを参考に頑張ってみます
865 名前:名前は開発中のものです。 [2010/07/13(火) 18:47:11 ID:K3o0YDHH] 戦闘機のシューティングを作っているんですが… 自機スプライトの縦と横の長さが違い、回転するのでroomの中に常に収めるコードが うまく書けません。 正方形のスプライトなら if (x < sprite_width/2) x = sprite_width/2 とかで出来るんですが…(原点=中心) lengthdirとか使ってもうまくいきません いい方法ありませんか?
866 名前:名前は開発中のものです。 mailto:sage [2010/07/13(火) 19:14:30 ID:/NxeAPUS] >>865 仮にスプライトの縦の方が横より長いとして 自機が縦向きで画面の端にくっついているとしよう。 その状態で自機が回転して横向きになったら、ぐぐーっと端から離れないといけないの? 縦と横の最大値をとって、その分だけ固定で離した方が簡単だし自然じゃない? ちなみにスプライトの幅÷2をw、高さ÷2をhとおくと一番遠い端までの距離はこうなる。 a = degtorad(image_angle); b = arctan(h/w); x = sqrt(sqr(w) + sqr(h)) * max(abs(cos(a + b)), abs(cos(a - b)));
867 名前:名前は開発中のものです。 mailto:sage [2010/07/13(火) 19:22:14 ID:/NxeAPUS] 補足すると sqrt(sqr(w) + sqr(h)) が対角線の長さなので 固定で距離をとる場合はこの値にすればいい。 もし角度によって距離を変える場合、縦の距離は上の式のcosをsinに変えれば出る。
868 名前:名前は開発中のものです。 [2010/07/13(火) 21:37:38 ID:K3o0YDHH] 出来ました! ありがとうございました
869 名前:名前は開発中のものです。 mailto:sage [2010/07/17(土) 12:18:00 ID:gER7nrJ5] TDS系のゲームで高速移動する銃弾を作りたいのですが collision_line(x,y,x+hspeed,y+vspeed,壁オブジェクト,1,0) だとSpeedが10や13ぐらいなら壁をすり抜けずにすむのですが、Speedを60とかにすると うまいこと行きません。 何かいい方法はないでしょうか? Gamemakerのバージョンは6、未レジストです
870 名前:名前は開発中のものです。 mailto:sage [2010/07/17(土) 20:48:18 ID:7i0jj3Bm] collision_lineをどう使ってて、何がうまくいかないのかわからないと何とも よくある間違いはcollision_lineの結果をtrueやfalseと比較することだけど そこは大丈夫か?
871 名前:名前は開発中のものです。 mailto:sage [2010/07/18(日) 14:00:31 ID:4F6YppA5] >>870 大丈夫 だと思います どうやら俺の作り方がまずかったみたい。 Step Event: execute code: if(collision_line(x,y,x+hspeed,y+vspeed,kabe,1,0)){sound_play(chakudan);instance_destroy();} と設定すると着弾処理自体はしっかりと行ってくれるみたいです ですが、弾道のトレースを行うと壁を貫通しているんです うp:www1.axfc.net/uploader/Sc/so/135056 形式は.gm6です
872 名前:名前は開発中のものです。 mailto:sage [2010/07/18(日) 14:07:27 ID:XkeNVelG] そりゃそうよ xとyが更新されるのはStepイベントの後、Collisionなどが実行される手前 (ヘルプでEventのところを見ると詳しく書いてある) ・Stepイベントでcollision_lineでチェック→この時点ではまだ貫通してない ・その後、xとyにhspeedとvspeedが足される ・Drawイベントでx,yから直線を描画 1ステップ未来の弾道を見てるから、貫通してるように見えるだけ。
873 名前:名前は開発中のものです。 mailto:sage [2010/07/18(日) 15:14:06 ID:4F6YppA5] >>872 なるほど いろいろと調べながら頑張ります。 ありがとうございます
874 名前:名前は開発中のものです。 mailto:sage [2010/07/18(日) 17:51:47 ID:XkeNVelG] 言い忘れてたけど、draw_line(xprevious, yprevious, x, y) にすれば見た目どおりになる。 End stepイベントでcollision_line(xprevious, yprevious, x, y, ..) でチェックしてもいいけど (その場合Stepイベントでは駄目) 弾速が速い場合、今度は弾が壁の手前で消えるように見えるという問題が出るはず。 それが気になるようだったら、move_contact_solidを使って着弾点まで移動させればいい。
875 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 13:12:37 ID:bqKfWWqP] GM7未レジスト版だけどこれも参考になるかも? ttp://gmc.yoyogames.com/index.php?showtopic=320670
876 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 17:01:55 ID:PLPwIk6X] collision_line の返り値みてあれって思ったけど 6だとtrue/falseが返ってくるのか。wikiにもそんなことが書いてあったし 7以降だとちゃんとidが返ってくるのにね true/falseの返り値だとかなり使いにくいと思う
877 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 17:23:01 ID:WcNhtTfY] いや、6でもインスタンスIDか-4(noone)を返すよ。 > All these functions return either the id of one of the instances that collide, > or they return a negative value when there is no collision. ここの説明は5から8までずっと変わっていない。 ただ、全体読まずに関数の説明だけ見てtrue/falseだと早とちりする人は多い。
878 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 17:35:40 ID:WcNhtTfY] ちなみにGMでは、0より大きい値は真、0かそれ以下の値は偽と解釈される。 if (A) は if (A > 0)、 if (!A) は if (A <= 0) と同じ意味。 >871のif文が期待どおり動くのはそういう理由。 これを if (collision_line(...) == true) と直接true/falseと比較してしまうと動かなくなる。
879 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 17:35:54 ID:PLPwIk6X] なら単純に ttp://gamemaker.wikicomplete.info/gml:collision-line ここの説明が間違ってるのか
880 名前:名前は開発中のものです。 mailto:sage [2010/07/19(月) 19:06:25 ID:WcNhtTfY] うn collision_pointの方の説明は合ってるのにね 他にも「bbox_*はProでしか使えない」とかところどころ間違ってる
881 名前:873 mailto:sage [2010/07/25(日) 20:00:59 ID:1/i3AWzX] >>874-878 おおお! 俺がPC使っていない間に… みんなありがとう! >874 move_contact_solidか・・・使ってみたらめり込みが改善されました。 >875 サンプル有難うございます! これを参考に頑張ります。 >878 そんな仕様があったなんて知らなかった・・・
882 名前:名前は開発中のものです。 mailto:sage [2010/08/03(火) 20:30:08 ID:cKSw/IY1] GM5.3Aで半加算処理って出来ないものなんでしょうか・・・
883 名前:名前は開発中のものです。 [2010/08/17(火) 09:24:30 ID:OKMjBkLc] 早く多言語対応してくれー
884 名前:名前は開発中のものです。 mailto:sage [2010/08/17(火) 13:43:12 ID:4/akdMWt] >>
885 名前:名前は開発中のものです。 mailto:sage [2010/08/17(火) 13:46:28 ID:4/akdMWt] 途中で送ってしまったorz >>883 禿同。
886 名前:名前は開発中のものです。 [2010/08/30(月) 12:44:47 ID:4I8KA9ny] 透過PNG使いてぇけど、GM8だと日本語がまったく使えなくなるからなぁ
887 名前:名前は開発中のものです。 mailto:sage [2010/09/02(木) 07:47:32 ID:GMFPofTi] GMで商用ソフトウェアを作っていたんだが、一つだけどうしても潰れないバグがある… 有償でGM(7pro)に本当に詳しい人を募集したら、集まるものだろうか? 自分はプログラムは素人だけど、GMLを2年くらい触ってる。
888 名前:名前は開発中のものです。 mailto:sage [2010/09/02(木) 19:43:56 ID:DnjUZssB] 商用ってどんなの? 同人ゲームとか?あえてソフトウェアと呼ぶという事はツールとかかな?
889 名前:名前は開発中のものです。 mailto:sage [2010/09/02(木) 21:17:32 ID:0WLIvYuZ] 幻想少女大戦?
890 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 10:10:05 ID:MNeR9scq] >>888 そう、同人ゲーム。 興味がある人がいれば連絡用のメアドを晒そうと思うので、 詳しいことはそちらで改めて。 >>889 べ、別にメモリリークとか言ってないんだからね!
891 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 21:58:20 ID:4Oy4y2r6] >>890 興味ありますなあ、教えてもらう側として
892 名前:名前は開発中のものです。 mailto:sage [2010/09/19(日) 22:23:46 ID:rmqa1/V5] 日本語対応まだー