- 1 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:41:47 ID: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【マンセー】 pc8.2ch.net/test/read.cgi/gamedev/1087068523/
- 561 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 08:01:09 ID:0wlARFf+]
- ステップの処理速度を早くしたいのですが
ルームのfpsを高くするだけで効果はあるのでしょうか?
- 562 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 08:47:48 ID:BGyF9xSS]
- >>561
ステップの処理速度を早くしたい、というのは、 動作が重いのを何とかしたい、ということだろうか。 基本的に、効率が悪いと重くなる。 処理速度を上げたいのなら、効率を上げるのが一番いい方法。 例えばマ○オで、そのステージ全体の処理を全て実行するのは無駄が多すぎるのがわかるだろうか。 見えない部分、画面からあまりにも離れた場所の処理を省くことで、効率も処理速度も大きく変わる。 同じ要領で、毎ステップ実行しなきゃいけないことなのかどうかを考えながら、 無駄な部分を出来る限り省いてみるといいと思う。
- 563 名前:561 mailto:sage [2008/12/11(木) 09:52:59 ID:uFLRyYUD]
- 説明不足でした。すみません
キャラAが行動し終わったらすぐキャラBが行動し、Bが行動し終わったらキャラCがすぐ行動し… という動作をあくまでも順番通りに、かつほぼ瞬時に行いたいのですがどうも若干遅延したり最初に動くキャラと最後に動くキャラで行動終了に差が出来たりしてしまうのです。 これはfpsを高くすることで若干でも解消できるのでしょうか。
- 564 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 14:11:51 ID:BGyF9xSS]
- 何だかどうしてもfpsを上げたいようだね。
それに、解消できるかどうかは、試してみればわかるようなことだと思うが……。 理論的には目立たなくなるだろうけど、でも「目立たなくすること」が最終目的じゃないはず。 「あくまでも順番通りに、かつほぼ瞬時に行いたい」 本来なら、これをどうやったら実行できるかと考えるべき。 うまくいかないのなら、何故ズレが生じるのかと原因を考えるべき。 ABCとキャラが三人いるとしても、ABCの順に処理されるとは限らない。 もしかしたらGMは、BCAの順に処理してるかもしれない。 もしそうだったら、 1フレーム目 B:「Aが未処理」 C:「Bが未処理」 A:処理 2フレーム目 B:処理(Aが処理済) C:処理(Bが処理済) という感じに、1フレーム目にAが処理され、2フレーム目にBCが処理されることになる。 これが多分遅延される原理だと思う。 他のオブジェクトに順番を覚えさせ、 そのオブジェクトがABC全員を操作するのがいいんじゃないかと。 例えば、Zってのを作って、ABC自身は何もせず、ZがAを処理してBを処理して……と。 順番を扱うときには配列等を使うのもあり。
- 565 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 16:37:49 ID:nF6qn38V]
- 結論から言えばfpsを変えても解消できないだな
1フレーム毎にオブジェクトが全部更新されるから、何の差か知らないけれど ある経過時間での差は変わらないよ キャラA、B、Cが別々に動いてそれぞれの行動開始までの時間がばらつくというのなら 最初のフレームで行動決定処理(AI部分)をやって次のフレームで行動開始ってすれば 揃っているように見えるけど・・・ゲームによりけりかもね
- 566 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 18:43:18 ID:0wlARFf+]
- なるほど、ありがとうございます
一応>>548を参考にして形だけは出来たのですが先述の通り遅延が生じたり 敵の数が多くなると処理が遅くなって(主人公の動ける順番が回ってくるのが遅くなって) 一歩動くと次動くまでに若干待たされ動作が快適とは言えないような状態になってしまうのです 解消する方法は無いでしょうか…
- 567 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 19:45:07 ID:nF6qn38V]
- ゲームの設計かキューの使い方、どちらかが間違っているような気がする
スペックにもよるけどインスタンス5〜600体ぐらいなら 上記のキュー設計で処理落ちすることはあんまりないと思うんだけどなあ 主人公サイドはキューに詰め込まなくてもいいとか細かいことはあるけど
- 568 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 20:57:24 ID:0wlARFf+]
- 処理落ちというか主人公が動いたときに一斉に行動するのではなく敵がちょっと遅れて動くんです。
敵の数が多ければ多いほど番号が最後に割り振られてる敵?の動きがかなり遅れています。
- 569 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 20:59:36 ID:5W34XGsl]
- >>568
1)情報を小出しにしない。 2)仕様はなるべく提示 3)表現したい目的を言う
- 570 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 21:22:53 ID:YYSIE6Pp]
- もともと>547で敵が全部一斉に動くのがイヤだというから>548のキュー案が出てきたわけで
「順番に動く」と「一斉に動く」は両立しないんだけど、結局どうしたいの? >566で言ってる主人公が待たされるのを解消したいと言うのなら 行動完了するまで待たないで、行動開始してから数ステップ経過したら 次のキャラに行動を始めさせるという手がある。 キャラ数に応じて間隔を変えるようにすれば>568の問題もばっちり。 もちろん、複数のキャラがある程度並行して動けるように設計しとかないといけない。
- 571 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 22:19:17 ID:0wlARFf+]
- 「一斉に動く」というのは視覚的な物で>>570さんのおっしゃる「ある程度並行して動く」というのが正しい表現ですね。すみません。
今は>>548さんの案でシステムを組んで、 主人公:「global.current_id = idで行動できる状態になる」「移動、攻撃など何かを行ったらglobal.current_id = noone」 敵:「global.current_id = idで行動できる状態になる」「移動、攻撃など何かを行ったらglobal.current_id = noone」(同じ) でそれぞれ動くようにしています。 敵が1体の時でも主人公が動く→敵が動くの過程で「視覚的に」同時には動かず、 ・主人公が動く→動き終わる(行きたいマスに行く)と敵がすぐ動く の流れになりどうも不自然になってしまいます。 敵の数が多くなればなるほどそれが連鎖して ・主人公動く→動き終わると敵Aが動く→Aが動き終わるとBが動く… となり少しずつ遅延されていってしまいます。 以前の global.a=1で主人公のターン global.a=2で敵のターン 主人公行動でa=2に 敵のクリエイト時にglobal.b+=1 global.bの最大値をglobal.cに記録 敵が行動するとglobal.b-=1 global.b=0になった時にa=1に戻し、cをbに代入 だと視覚的でなく実際に「主人公と敵全員が一斉に動いた」のですが これでは順番に動くというのが全く無視されるため廃止しました。 自分の希望としては ・(視覚的にでもいいので)全員が同時に動く。 ・順番に攻撃したりするために(内部処理の面だけでもいいので)順番に行動しているようにする。 の二つが同時に満たされるといいのですがいい方法は無いでしょうか。 何度も申し訳ありません
- 572 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 22:41:52 ID:YYSIE6Pp]
- 普通のターン制ゲームでも、敵がたくさんいたら全員が攻撃し終わるまで待たされるだろ?
と書こうとしたけど、でも全員が歩き終わるのを待ったりはしないよな?と思ったのでちょっと考えてみた。 シレンなり何なり君が参考にしてるゲームで自分と敵の動きをじっくり観察すればわかるはずだけど、 その手のゲームでは1ターンが実際には複数のフェーズから成り立っている。 (1) 自分が行動する(歩く、攻撃する、道具を使うなど) (2) 敵が歩く(全員同時に) (3) 敵が攻撃する(一体ずつ順番に) 自分が歩いた時には(1)と(2)が同時に起こるけど、それ以外の行動をとると(1)が終わってから(2)が起こる。 誰も攻撃行動をとらなければ、主人公は立ち止まることなくスムーズに歩き続けられるわけだ。 この辺を踏まえて、歩くのとその他の行動を分けて別々に実行させるようにしたらどうかな。 ただ、敵はあくまで1ターンに「歩く」と「攻撃する」のどちらか片方しかしないと思うので、 どちらの行動をとるかは(2)より前(ひいては主人公が歩き始める時)に決めておく必要がある。 まとめるとこんな感じかな。 ・主人公が行動決定したら、その他のキャラ全員がどう行動するか決定。変数にでも覚えておく ・主人公の攻撃行動、終わるまで待つ(攻撃しない場合はすぐ次に進む) ・歩く予定のキャラ全員を同時に歩かせる。全員の行動が終わるまで待つ ・攻撃予定のキャラに、キューを使って順番に攻撃行動を行わせる ・全員行動し終わったら最初に戻る
- 573 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 00:41:26 ID:YwPJgrfp]
- 攻撃はなるべく隣接したときや一直線上にきたときに行いたいので
行動前に決定するのはちょっと自分の技能じゃ辛いかなぁと… 主人公が行動する→敵:主人公の行動と同時に、攻撃範囲内に主人公がいなければ移動や特殊行動、いる場合は一旦待機 →移動するべき敵が全員移動し終わったら攻撃準備している敵のフェイズに入る→キューを使って順番に攻撃処理→主人公が動ける状態に戻す として 変数aを用意→a=1の時主人公行動可能状態→主人公行動時にa=2→a=2になったら敵の行動開始(a=2になった際敵の数をbに記録)→ ・攻撃範囲内に主人公がいない敵:移動や特殊行動をし、b-=1 ・攻撃範囲内に主人公がいる敵:キューを利用して順番に攻撃。何らかの変数等をON状態にしてその敵だけキューに対応させる?>攻撃したらb-=1 b=0になったらa=1に戻して再び主人公行動可能状態に とこんな感じでいいのでしょうか? 攻撃をする敵に関するキューをどう組めばいいやらよく分からないのですが…
- 574 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 01:37:09 ID:AbV0Ta9O]
- 攻撃範囲にいたらキューに追加
フェーズが変わったら一個取り出してと処理していけば問題ないんじゃないか 根本的に a が 0,1,2,4 とかビットフラグで管理したいのかもしれないけど 慣れていないならきちんと名前をつけて真偽値でやるべき フェーズ管理についても同様。変数の状態で管理するのではなく 主人公行動、敵の行動、敵の攻撃 etc とそれぞれフラグ管理するべき bの意味が果てしなくないように見える
- 575 名前:名前は開発中のものです。 [2008/12/12(金) 14:22:36 ID:UTYwgiXi]
- オブジェクトの親やマスクを途中で変えたいのですがどうやればいいのでしょうか?
- 576 名前:名前は開発中のものです。 [2008/12/12(金) 19:19:55 ID:b5nKeRJC]
- 親を変えるのは不可能だけど
マスクはmask_indexに再代入すればできるはず
- 577 名前:名前は開発中のものです。 [2008/12/12(金) 21:00:29 ID:6TlHc+FT]
- すみません
gmkはgmdに変換できないでしょうか
- 578 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:10:49 ID:Vplk2GsR]
- >>575
object_set_parentで親を変えることはできるが、インスタンスではなく オブジェクト自体(設計図)に作用するから期待するような結果にはならない。 親を変えたいって質問はたまに見るけど、そういう時はたいてい設計が間違ってるべ。 >>577 LGMでGM7→6に変換できるらしいけど、使ったことないから本当かどうかはわからん。 ttp://www.ismavatar.com/lgm/ って、gmdってことはさらに6→5に落とさないといけないのか。 互換性ない機能も多いからほとんど無理じゃないかな?
- 579 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:16:46 ID:agcPaJTz]
- GMで5ボタンマウス等のサイドボタン使う事はできませんか?
- 580 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:59:50 ID:AbV0Ta9O]
- Help見る限り無理っぽそうだけど
もしデバッグでサイドボタン押したときのmouse_buttonの値が0〜3以外だったら その値を割り当てればいいし、キーコンフィグっぽくするなら global.mb_side_one |= mouse_bottun とかすればできそうではあるけど対応していないような気もする
- 581 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 23:36:54 ID:agcPaJTz]
- >>580
レスありがとう デバッグでGM5.3とLGMで確認したところ無反応でした
- 582 名前:577 mailto:sage [2008/12/13(土) 00:38:49 ID:K75p9U8G]
- >>578
ありがとうございます LGMですね やってみます
- 583 名前:582 [2008/12/13(土) 14:58:29 ID:K75p9U8G]
- LGMでGM6.1A用に変換しました
www2.uploda.org/uporg1852115.gm6.html PASSは GT このobject3の変数 "near"がおかしいです クリックでobject0を近づけると ちゃんとスクリプトやCreateイベントで定義してあるのに Unknown variable near で エラーになります バグでしょうか?
- 584 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 16:00:12 ID:682sG2h4]
- 多分ここだろ。
with (ebul){ move_towards_point((near).x,(near).y,2) } with文内の変数は呼び出し元(この場合object3)の変数の意味にならないよ。 ちゃんと other. をつけてやらんと。(詳しくはヘルプ参照) 以下のように修正したらエラーは出なくなったぞ。仕様かどうか分からんが。 move_towards_point((other.near).x,(other.near).y,2) つーか、こんなことでツール側のバグとか疑うなよ・・・。自分のバグじゃないかw
- 585 名前:583 mailto:sage [2008/12/13(土) 16:21:59 ID:K75p9U8G]
- >>584
wwww そうでしたね 修正します
- 586 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 22:59:58 ID:VLzMeB5w]
- >>585
>wwww とか >バグでしょうか? 言い出す前に、テメーの無能を疑えよな
- 587 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 14:09:14 ID:VQe5+xHL]
- >>586には同意としても
なんとなく高圧的な人増えたな。嫌味っぽく言ってもなんもならんのに
- 588 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 18:09:05 ID:6p1v9SNR]
- 質問する側もちょっとは考えろという事でしょう
- 589 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 11:54:03 ID:Pj6nrR98]
- RPG的なものを作っているのですが、手に入れたアイテムをアイテム欄などで取得順に表示したり
カーソルが合わさっているとき使用するとそのアイテムの効果が現れたりするにはどうすればいいのでしょうか。 アイテム自体は全部完成しており、アイテム名のスプライトやシステム上の番号等は割り振ってあります。5.3です
- 590 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 12:21:24 ID:KxWOE/yV]
- オブジェクト(例えば、主人公のオブジェクトとか)に取得したアイテムを管理する配列を用意して、
取得したアイテム番号を代入していく感じにすればイイのでは? get_item[0] = 取得したアイテム番号 []内は取得するに従い数値を上げていけばよい。 配列の長さを調べる術はないので、自分で管理しないといけない。 もしくは、データ構造で map が使えるなら、それを使ってもよい。 たとえば、キーネームをアイテム名、値に所持数とやると管理しやすい。 ただし、mapはキーネームでソートされてしまうんで、取得順となると工夫しないといけないね。 アイテムメニューのシステムは面倒だが地道にやるしかないのでは。 カーソルの操作処理とかも、いちいちオブジェクトを用意してやらないといけない。 アイテム効果を発動させるには、 メニュー欄に表示されるアイテムオブジェクトに、 使用するときのキー入力イベント(mouseクリックボタン等)を持たせて、 そのイベント内で、 ・アイテム効果発動 ・アイテム消費 の処理を記述していく感じかな。 概念的なことしか書いてないが、参考になれば。
- 591 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 08:18:19 ID:BlN9VESD]
- アイテムAを取った時にグローバル変数に1をプラスして、アイテムAの変数にグローバル変数+1を代入。
アイテムを使用した時はグローバル変数から1マイナスする。 ってな感じでどうかな?
- 592 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 00:08:00 ID:A6CnLTdh]
- instance_id[] のインデックス使えないかなと思ったけど
これ自体キューになってるんだね。そりゃそうか
- 593 名前:濱田 [2008/12/18(木) 18:33:59 ID:5x5AGIoL]
- ゲーム作成ツールGameMaker で商業ソフトを作成、販売することは合法でしょうか?
またファイナルファンタジータクティクスのようなクォータビューのSRPGは製作可能でしょうか?
- 594 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 18:49:28 ID:zjRT977K]
- >>593
課金版なら可能。それと理論上はどんなゲームでも作れる。
- 595 名前:名前は開発中のものです。 [2008/12/18(木) 19:00:44 ID:AtKHrczp]
- えーと変数を使用したアクションを実行すると
ERROR in .....posution 1:UnKnown variable {変数名} ってでるんですけど原因わかる人いたら教えてください
- 596 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 19:06:15 ID:uRYQk5PQ]
- >>595
初期値定義してないんじゃね?
- 597 名前:名前は開発中のものです。 [2008/12/18(木) 20:00:57 ID:AtKHrczp]
- >>596
ゲーム作り初心者ですみません・・・ 初期値定義ってなんですか?
- 598 名前:名前は開発中のものです。 [2008/12/18(木) 20:23:37 ID:9UDCWn2j]
- 変数に最初の値を定義するってこと
- 599 名前:名前は開発中のものです。 [2008/12/18(木) 20:34:28 ID:AtKHrczp]
- >>599
ありがとうございます。 何とかできました。
- 600 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 22:15:12 ID:BD5z/Zcu]
- >>594
非レジスト(Lite)版でも商用利用可だよ。EULA見た限りでは、商用不可のはβ版だけ。 レジストしてないと「GameMakerで作りました」ってロコが出るからカッコ悪いことになるけど。 >>595 その「.....」の中にも割と重要な手がかり(イベント名とか)が含まれてることがあるので 今後はなるべく省略なしで頼む。
- 601 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 23:23:16 ID:gWEUu2RB]
- 初心者とか変に短文にしようとするから困る
・長文でもいいから情報を小出しにするな ・現在どうなってるのか提示 ・目的を明確に この3つそろそろテンプレに入れた方がいいんじゃないか?
- 602 名前:名前は開発中のものです。 [2008/12/18(木) 23:35:13 ID:9UDCWn2j]
- まあ正論だけど
もう解決したからいいんじゃない
- 603 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 00:51:49 ID:AK9HTeCg]
- 何がわからないのかわからないもんさ
- 604 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 01:06:57 ID:QZODxzKf]
- ゲーム起動時のローディングの時に出せる画像ですが、
あれをアニメ(gif)にしたり複数用意した画像の中からランダムで一枚を表示、などということは可能でしょうか?
- 605 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 11:57:53 ID:OJi6EA5S]
- www.uploda.org/uporg1866564.txt.html
使えるかどうかわからないけど ポーズのスクリプト書いてみた。 初期値 global.move=0 のあと このスクリプト読めばば動くはず。 カウントや時間を使ってる、またオブジェクトの生成、消去の部分は別途、 if (global.move =0) { 〜〜〜〜〜 } でくくってあげればいいはず。
- 606 名前:605 mailto:sage [2008/12/19(金) 12:03:25 ID:OJi6EA5S]
- 書き忘れてたけどスクリプトの読み込みはkeypress時ね
- 607 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 20:40:28 ID:7ZgwG0BV]
- 消えるのはや!
ありがたく貰おうと思ったらもう404…
- 608 名前:濱田 [2008/12/19(金) 21:11:16 ID:sOxi3S7i]
- Game Maker 5.3A で作成したゲームをVistaでする事は出来ますか?
- 609 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 21:12:39 ID:7ZgwG0BV]
- できるよ。
- 610 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 10:28:38 ID:rZvj3mwD]
- >>607
その1 if (global.move = 0) { global.move = 1; global.pause = instance_count; for(i=0; i<global.pause; i+=1) { array_a[i,1] = instance_id[i].gravity; array_a[i,2] = instance_id[i].gravity_direction; array_a[i,3] = instance_id[i].hspeed; array_a[i,4] = instance_id[i].vspeed; array_a[i,5] = instance_id[i].path_speed; instance_id[i].gravity = 0; instance_id[i].gravity_direction = 0; instance_id[i].hspeed = 0; instance_id[i].vspeed = 0; instance_id[i].path_speed = 0; } for(i=0; i<8; i+=1) { array_b[i,1] = background_hspeed[i]; array_b[i,2] = background_vspeed[i]; background_hspeed[i] = 0; background_vspeed[i] = 0; } }
- 611 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 10:29:35 ID:rZvj3mwD]
- その2
else { global.move = 0; for(i=0; i<global.pause; i+=1) { instance_id[i].gravity = array_a[i,1]; instance_id[i].gravity_direction = array_a[i,2]; instance_id[i].hspeed = array_a[i,3]; instance_id[i].vspeed = array_a[i,4]; instance_id[i].path_speed = array_a[i,5]; } for(i=0; i<7; i+=1) { background_hspeed[i] = array_b[i,1]; background_vspeed[i] = array_b[i,2]; } } 書ききれないから2つに分けたけどこれだけ
- 612 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 21:00:05 ID:4d+YUfVI]
- ゲームの遷移状態を管理するオブジェクトに
ポーズ状態をループさせるほうがいいと思うんだけどなあ 各インスタンスの変数を一括処理するのは思わぬバグが出るときがあるから できるだけ避けたほうがいいよ 現にアラーム処理が抜けているような
- 613 名前:名前は開発中のものです。 mailto:sage [2008/12/21(日) 11:14:37 ID:PzRsHlBP]
- instance_activate...とinstance_deactivate...を使う方法もある。
あと、>>31にルーム移動を使ったポーズがある。
- 614 名前:濱田 [2008/12/21(日) 13:39:17 ID:OMCEofD9]
- GMver7で日本語表示するにはどうすればいいでしょうか?
初めてGMでゲーム作成する者ですがバージョン5,3A. 6. 7 .どれを使えばいいでしょうか?
- 615 名前:名前は開発中のものです。 mailto:sage [2008/12/21(日) 14:13:03 ID:susUXEb/]
- あるオブジェクトAにオブジェクトB(いくつもある)が重なった時にEnterを押すと
重なっているBだけが消えるようにしたいのですがどのようにアクションを組めばいいのでしょうか
- 616 名前:名前は開発中のものです。 mailto:sage [2008/12/21(日) 15:46:08 ID:xad+zz/A]
- 音ゲーチックな物を作ろうとしているのですが、soundに音楽を入れ再生した場合ズレが生じたりはしないでしょうか。
するとしたらできるだけ軽減する方法はありますか?
- 617 名前:名前は開発中のものです。 mailto:sage [2008/12/21(日) 16:03:49 ID:J97WFZEv]
- >>615
アクションの中にIf there is an objectみたいなのがある。 BのEnterキーアクションの中でそれを使って、Aと重なっていたら自分を消せばいい。 >>614 >1の非公式情報サイトへGo っていうか、その質問だとすでに7使うこと前提じゃないの? とりあえずバージョンごとの違いとか、今まで聞いてきたことも このスレ内にちゃんと情報があるのでまずは頭から読んできて。
- 618 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 01:31:06 ID:FUN2QKHC]
- なんか、大雑把な質問になりますけど、
変数を用意していない状態などで relative用いて変数増やそうとしたり、分母0の割り算とかすると、 エラーメッセージが出て、プレイが中断されますよね? テストプレイ中、エラーメッセージが出ずに、OS巻き込んで フリーズしたり電源落ちたりしてしまうことの原因で 考えられることって何があるでしょうか…。
- 619 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 02:11:18 ID:UfdezWih]
- OSの種類もGMのバージョンもどんな状況でなるのかも分からず姉妹
- 620 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 13:45:56 ID:VIUd8eyr]
- OS:windows xp sp2
CPU:pen4 3Ghz Memory:2G GM7 pro 処理落ちなどはなく、いきなりフリーズもしくは電源落ちします。 状況…なんですが、これが分からないんですよ。 1度起きた状況を再度再現しようとしたら、何回やっても全然問題なく動いたりするし。 2Dアクションゲームで、ボス敵が岩を投げるんですが、そのときその岩に対し 主人公キャラがジャンプ斬りをあてた時(その時ボスは防御していました) フリーズしました。 岩は「敵の攻撃」を親オブジェクトに持っていますが、 それまで何百回と出てきた「敵の攻撃」に対して同じ攻撃を当てた時はそのようなことはなかったです。 何らかの変数がオーバーフロウした時、似たようなことになった気もしますが、 そういうコードもなさそうです。 フリーズしてしまう原因として挙げられる要因(例えばオーバーフロウ等)、 どなたかご存知の方おられないでしょうか…。。
- 621 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 21:09:57 ID:Ff2Oxw5o]
- >>620
その処理の中でオブジェクトの生成・削除・変更などしているとしたら イベントの無限呼び出し(Createイベントの中で同じオブジェクトをCreateするとか) が原因でスタックオーバーフローすることはあり得る。 あるいはコード的な無限ループとか。それで電源落ちるとまでは考えにくいけどね。 何らかのエフェクトを生成しているとしたら、ビデオドライバとの相性かもしれない。
- 622 名前:620 [2008/12/24(水) 13:52:00 ID:j2sRIJLR]
- 遅レスすいません。
無限呼び出しもないと思います。 そうですよね、、コード無限ループの場合、ゲームアプリのみが シャットダウンするに留まる程度だったような記憶があります。 未だ解決されていないのですが、起こる確率がかなり 低い様子ではあるので、この問題は一旦置いておくことにします。 ありがとうございました。
- 623 名前:名前は開発中のものです。 [2008/12/24(水) 19:15:30 ID:Je0ZC97P]
- 前に変数のエラーを書いたものです。
変数の初期値定義のやり方がわからないんですけど、教えてください。
- 624 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 19:27:04 ID:Xm8ZsJDZ]
- >>599は何だったんだ
- 625 名前:名前は開発中のものです。 mailto:sage [2008/12/25(木) 00:32:19 ID:lTYGyE3i]
- 非公式情報サイト10回読破して来い
- 626 名前:名前は開発中のものです。 mailto:sage [2008/12/25(木) 01:47:33 ID:LZR7eQes]
- 何も置いてない部屋で「そのボールを四つ『A』って書いてある箱に入れといて」なんて言われても困るでしょう。
カラの入れ物を前もって用意しておかなきゃいけない 初期値定義なんて難しく(?)いうと混乱するかもしれないけど、 要は使いたい変数があるなら数値代入とかする前に数値0で変数を用意しておけ、ってこと。 オブジェクト「箱」の変数Aに+2とかしたいんだったら 「箱」のクリエイトイベントかどこかに「変数Aを0として用意」しておかないとAが見当たらないなんてことになってエラーが起きる。
- 627 名前:名前は開発中のものです。 [2008/12/25(木) 19:40:35 ID:wKjFbyzV]
- >>624
前は何故かGM5から7に変えたらできるようになったから 解決と思ってました・・ >>626 オブジェクトが作られたときに発生するイベントに変数のアクションで 変数を0にして入れたら 解決しました。 教えてくれて助かりました。 ありがとうございます。
- 628 名前:名前は開発中のものです。 mailto:sage [2008/12/25(木) 23:16:41 ID:FQPSIRUG]
- イベントとアクションで書いたものをGMLコードとして見ることはできますか?
- 629 名前:名前は開発中のものです。 mailto:sage [2008/12/25(木) 23:56:07 ID:lTYGyE3i]
- ObjectのShow Informationってボタンで見れたような気がする
- 630 名前:名前は開発中のものです。 [2008/12/26(金) 15:57:01 ID:PhPwcMia]
- これってコンピューター言語を使って自分でプログラム組めたりするの?
それと他のソフトとリンクしたりできる?? そういうのを後々やっていきたいんだけど
- 631 名前:RMT-WM mailto:rmt_wm@hotmail.co.jp [2008/12/26(金) 16:33:47 ID:K4aSBGcm]
- <a href="blog.rmt-wm.com">RMT−WMのブログ</a> ページへようこそ!
- 632 名前:名前は開発中のものです。 mailto:sage [2008/12/26(金) 19:46:25 ID:KU6Gan+K]
- >>629
やっぱそれぐらいしかないすか
- 633 名前:名前は開発中のものです。 mailto:sage [2008/12/26(金) 21:37:08 ID:L5Xtp1pR]
- >>630
GameMaker だけでは、Windows APIやプログラミング言語用のライブラリを直接使うようなプログラムは無理。 あくまでゲーム製作用ツールだからね。 ほかのソフトというか、ほかの言語(C++とか)で作ったDLLを呼び出すことは可能なので、 自作プログラムや、自作DLLで制御可能な他のソフトとの連携は可能。 なもんで、WindowsAPI とリンクさせることももちろん可能で、 例えばダイアログボックスをつくって、 そこからGameMakerでつくった自作ゲームに制御を加えるなんてことも出来る。 もちろん、Windowsプログラミングの知識がそれなりに必要。 流行の(?) .NET との連携は難しそうだね。
- 634 名前:名前は開発中のものです。 mailto:sage [2008/12/26(金) 21:38:56 ID:L5Xtp1pR]
- 追記。DLLを扱える機能は Pro バージョンのみです。
- 635 名前:名前は開発中のものです。 mailto:sage [2008/12/26(金) 22:56:29 ID:SuoE1taa]
- MPのようなゲージを作って、MPが10以上の時にボタンを押すと
MPを10消費して飛び道具が撃てるという設定を作りました。 その結果、何故か描写されているMPゲージが10以下にならず(もちろん内部も)、打ち放題になってしまう現象が起きました。 これのほかにはMPは以下にならない程度しかMPに関連する変数を弄っていないのですが何がいけないのでしょうか。
- 636 名前:名前は開発中のものです。 mailto:sage [2008/12/26(金) 23:11:14 ID:SxF5ePcK]
- >>635
普通そういうのは実際のソース見なけりゃ答えられん。が、もし If MPが10以上なら MPを10減らす 飛び道具を撃つ みたいに組んでるなら If MPが10以上なら ▲<Start of block> MPを10減らす 飛び道具を撃つ ▼<End of block> こう囲め。
- 637 名前:名前は開発中のものです。 [2008/12/27(土) 00:34:43 ID:zgTmgbXH]
- スプライトを透過させたい時に透過を選ぶとドット絵に穴があいたような感じになりますが
ああではなく後ろの色が映るいわゆる半透明にしたいのですが可能でしょうか
- 638 名前:名前は開発中のものです。 mailto:sage [2008/12/27(土) 01:12:00 ID:Glw8dwT3]
- >>637
単純に画像全体を半透明にしたいならどのverでもOK(未レジストでも) スプライトのalphaプロパティを弄れば良い ピクセルごと透明度が異なるような表現(例えば輪郭にアンチエイリアス)がしたいなら ver6以降のレジスト版か、あるいは外部DLLを使えばver6以前のGMでも可能かも ついでに確かver7レジスト版から32bitPNGが扱えたはず
- 639 名前:名前は開発中のものです。 mailto:sage [2008/12/27(土) 15:43:46 ID:bMiIzurr]
- アクションゲームを作っています。
フォーラムなどを参考にしてジャンプして地面に着地などはできるようになったのですが、 ジャンプ中やダッシュ中に障害物に当たると(毎回起こるわけではないのですが)コリジョンの設定が悪さをしているのか遥か上空に吹っ飛んだりあらぬところにワープしてしまいます。 障害物は上に乗れるので親を地面と同じにしています。 横移動やジャンプ中の接触(上や横)に対するコリジョンはどう設定すればいいのでしょうか。バージョンは5.3です
- 640 名前:名前は開発中のものです。 [2008/12/27(土) 19:56:55 ID:zgTmgbXH]
- >>638
できました、ありがとう ついでにもう一つ質問です キーボードを押しっぱなしの時にアクションを起こしているのですが 特定状況下で「プレイヤーはキーを押しっぱなしだけど内部ではそのキーは押されていない」と言う処理を行いたいのです。 これは可能でしょうか。
- 641 名前:名前は開発中のものです。 mailto:sage [2008/12/27(土) 21:54:29 ID:mqdpfh1K]
- >>639
ソース見なきゃわからん
- 642 名前:名前は開発中のものです。 mailto:sage [2008/12/27(土) 21:58:58 ID:mqdpfh1K]
- >>640
理解力が無いから俺の想像だけど 例えば変数1の時はAキーを押すとアクションが発生するけど、変数が2の時はAキーを押しても発生しないって事で良いかな? もしそうならキーを押すイベントでIf an exprssion is trueを使えば良いと思う
- 643 名前:名前は開発中のものです。 [2008/12/28(日) 01:10:46 ID:lQUrTnBK]
- ついに登場!アクションゲームツクール
www.famitsu.com/blog/tkool/2008/09/post_52.html アクションゲーム制作の決定版!Multimedia Fusion2 国内販売推進委員会 www7a.biglobe.ne.jp/~bp-827z/mmf2/ hp.vector.co.jp/authors/VA036419/game.html
- 644 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 05:48:32 ID:1w+FYaO/]
- なんか使ってるうちにアクションは全部スクリプトで処理になるよね?
管理と編集が楽になるよね?
- 645 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 15:22:43 ID:cZXYtdqt]
- あえてアイコン方式で記述する意味がないからなあ
コードがかけなくても作れるってのを謳い文句にしてるけど 制約の中アイコン記述を覚えてもしょうがないんだよな
- 646 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 17:21:40 ID:LlMEzWDN]
- ただ、スクリプト記述するよりもアイコンの方が処理が早い罠w
- 647 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 19:00:32 ID:fT956MDj]
- アクションゲームで左右キーを押すとキャラが左右に動くのですが
坂道などでは段差でカクカクしたりしてしまいます。 なめらかに動かすには当たり判定や動きをどう設定すればいいでしょう。
- 648 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 20:37:31 ID:cZXYtdqt]
- >>646
Scriptsは呼び出し自体が重いから差が顕著に出るけど piece of code だとほとんど変わらないような気がする >>647 ピクセル単位で当たり判定を取っていたりしないかな 矩形や簡易図形で当たり判定を取るようにすればよくなるんじゃないかと 少し上にもあったけど、当たり判定処理がうまくいかないとかは ○○のエラーがでますというのと違って、プログラムは良くも悪くも書いた通りにしか動かないから 周辺の情報を出さないと条件式を見直せぐらいしか答えようがなくなってくるよ
- 649 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 21:00:33 ID:fT956MDj]
- 正確な当たり判定を取るとキャラクターの足が動くたびに判定がおかしくなるのでとりあえず大きさに合わせて四角にしています。
足場も同様ですが斜めの床を作る際斜めにすると三角でマスクしても微妙なドットのせいでかくかくしてしまうのです。
- 650 名前:646 mailto:sage [2008/12/28(日) 23:34:43 ID:LlMEzWDN]
- >>648
昔、timeGetTime()を呼び出すDLLを作って実験してみたことがあったんだ。 今また試しにやってみたところ、変数の代入なら varアイコンを使うより piece of code の方が早かった。 が、instance_create() の呼び出しは、アイコンの方が早かった。 即効作ったソース。 ttp://www3.uploda.org/uporg1890827.zip.html
- 651 名前:646 mailto:sage [2008/12/29(月) 00:02:49 ID:gdKazmBS]
- ああ、忘れてた。
>>650 の受信pass : gamemaker スレ汚しごめんなさい。
- 652 名前:名前は開発中のものです。 [2008/12/29(月) 01:21:50 ID:PIejyGZB]
- 床のコリジョンを作っていますが
今の段階だと床に当たった時に起きるアクションと空中にある床に頭から接触したとき、 壁に横から接触したときのアクションが同じになってしまいます。 コリジョンを方向によってわける方法を教えてください
- 653 名前:名前は開発中のものです。 mailto:sage [2008/12/29(月) 03:11:36 ID:p4VZEUac]
- vspeed > 0 && y < other.y+18
ってんでどうかな これは上からね
- 654 名前:645 mailto:sage [2008/12/29(月) 13:44:03 ID:T1r41zQH]
- >>650
404・・・自分でも確かめられることなのでやってみた repeat loop 20000 回でinstance_create()をGMのcurrent_timeで比較してみた 確かにアイコンの方が早いみたいですね。平均20msぐらい差が出ました 一応環境 XP SP3 Celeron M 1.3 GHz GMのcurrent_timeの精度もあるので相対比較という感じです
- 655 名前:濱田 [2008/12/29(月) 20:51:48 ID:hLjua+tb]
- 日本語訳の手に入れ方が分かりません。どうすればいいでしょうか?
- 656 名前:名前は開発中のものです。 mailto:sage [2008/12/29(月) 21:44:28 ID:quafeWvW]
- みんな買ってんの?
PROだとエフェクト楽しいのかな
|

|