part_system_depth()が関係してたんですね。直ってよかった!
消えていたUIの一つのGUIイベントです
if(global.raihau_bar_f=2){ draw_sprite_ext(spr_UI_raihau_bar_aa,0,0,0,1,1,0,c_white,1) //文字系 draw_set_font(fnt_mincho_test) draw_set_colour(c_black); draw_text_transformed(240-string_width(global.raihau_txt)*0.5,1 ,global.raihau_txt,1,1,0); }
part_system_depth()消したら治りました…!ここが原因のようです
実fpsはゲームの実行fpsよりはるかに高いです。1000以上は十分高いので問題なさそうです。 debug_overlayの棒グラフ、赤と黄色の部分も負荷は低いので問題ないようですね。 テクスチャページとスワップが37,38で多めですが、これで表示が消えたりするのはたぶん無いと思います(私の経験では無いです)。 キャプチャの瞬間に限れば、負荷の問題はないようです。
ありがとうございます!トピックみて調べてみます。
キャプチャとってきましたこの部分で大丈夫でしょうか。 ただFPSは1000~3000で激しく変動しているようです。FPSってこんなに高いんだけっけ…(お恥ずかしいことに見方が分かってない)
GUIイベントのコードを貼ることはできるでしょうか?
これは関係ないでしょうか。 https://forum.yoyogames.com/index.php?threads/particles-and-gui-gamemaker-1-4-9999-solved.52700/
問題なさそうですね...
海外のフォーラムで見たところ、パーティクルでGUIが消える問題についてのトピックがりました。 https://forum.yoyogames.com/index.php?threads/issue-with-gui-flashing-or-disappearing.84276/
どうやらpart_system_depthが影響しているらしいです。 ただそこまでしかわかりませんでした../
パフォーマンス面を見るために、 show_debug_overlay(true); として、fpsやテクスチャスワップの情報を表示してみてください。 もう1つ、デバッガで動かして左上に表示されるグラフ?部分を見てください。 できればそれらのキャプチャ画像をここに貼れるでしょうか? 何か分かるかも知れません。
消えてしまう方のGUI表示は画面上に常に表示するHPバーなどのHUDで、複数のHUDが不規則に消えるので特定の表示コードがあるわけではないのですが大抵
draw_sprite_ext()
で描画しています。今気が付きましたが消える際は一つのobjにコードのある表示が丸々消えていますね、やっぱり処理が重いんですかね…
かなり読みづらいと思われますすみません。 プレイヤーがエネミーにぶつかったときにその方向に向けてドットのしぶきを飛ばすパーティクルになります。 パーティクルObjはルーム開始時に生成しておいてヒット時にuser_event0を呼び出す形です。
パーティクルObjのcreate_event
pp=global.main_player col_ten=make_color_rgb(255,170,60); FirstParticleSystem = part_system_create(); part_system_depth(FirstParticleSystem,-500); first_particle = part_type_create(); part_type_shape(first_particle,pt_shape_pixel); part_type_scale(first_particle,1,1); part_type_size(first_particle,1,1,0,0);//wigleとは反復のことらしい part_type_color2(first_particle,col_ten,col_ten); part_type_alpha3(first_particle,1,1,0.8);//透明度 part_type_speed(first_particle,3,5,-0.015,0);//粒子速度 part_type_direction(first_particle,35,55,0,0);//方向 part_type_gravity(first_particle,0.04,-90);//重力。強さと、方向 part_type_orientation(first_particle,0,0,0,0,false);//回転 part_type_life(first_particle,20,30);//寿命 part_type_blend(first_particle,false);//ブレンド //ここからエミッタ first_emitter = part_emitter_create(FirstParticleSystem); part_emitter_region(FirstParticleSystem, first_emitter, x-1, x+1, y-1, y+1, ps_shape_line, ps_distr_linear);
パーティクルObjのuser_event0
pp=global.main_player pp_tg=global.main_player.target_enemy //以下プレイヤーの攻撃方向と対象エネミーの位置を反映させる処理 part_system_depth(FirstParticleSystem,-pp.play_y+4); part_emitter_region(FirstParticleSystem, first_emitter, pp_tg.play_x-1, pp_tg.play_x+1, pp_tg.play_y-52, pp_tg.play_y-52, ps_shape_line, ps_distr_linear); if(pp.doujiosi_bottan=1||pp.doujiosi_bottan=11||pp.doujiosi_bottan=12){ part_type_direction(first_particle,0,20,0,0); } if(pp.doujiosi_bottan=2||pp.doujiosi_bottan=22||pp.doujiosi_bottan=21){ part_type_direction(first_particle,160,180,0,0); } if(pp.doujiosi_bottan=3||pp.doujiosi_bottan=33||pp.doujiosi_bottan=34){ part_system_depth(FirstParticleSystem,-pp.play_y-1); part_type_direction(first_particle,250,290,0,0); //した } if(pp.doujiosi_bottan=4||pp.doujiosi_bottan=44||pp.doujiosi_bottan=43){ part_emitter_region(FirstParticleSystem, first_emitter, pp_tg.play_x-1, pp_tg.play_x+1, pp_tg.play_y-32, pp_tg.play_y-32, ps_shape_line, ps_distr_linear); part_type_direction(first_particle,70,110,0,0); //上 } if(pp.doujiosi_bottan=13||pp.doujiosi_bottan=31){ part_system_depth(FirstParticleSystem,-pp.play_y-1); part_type_direction(first_particle,315-10,315+10,0,0); //右下 } if(pp.doujiosi_bottan=14||pp.doujiosi_bottan=41){ part_emitter_region(FirstParticleSystem, first_emitter, pp_tg.play_x-1, pp_tg.play_x+1, pp_tg.play_y-32, pp_tg.play_y-32, ps_shape_line, ps_distr_linear); part_type_direction(first_particle,35,55,0,0); //右上 } if(pp.doujiosi_bottan=23||pp.doujiosi_bottan=32){ part_system_depth(FirstParticleSystem,-pp.play_y-1); part_type_direction(first_particle,225-10,225+10,0,0); //左下 } if(pp.doujiosi_bottan=24||pp.doujiosi_bottan=42){ part_emitter_region(FirstParticleSystem, first_emitter, pp_tg.play_x-1, pp_tg.play_x+1, pp_tg.play_y-32, pp_tg.play_y-32, ps_shape_line, ps_distr_linear); part_type_direction(first_particle,135-10,135+10,0,0); //左上 } //方向と位置が決まったので80個生成 part_emitter_burst(FirstParticleSystem, first_emitter,first_particle,80);
GMSのバグの可能性もありそうですが パーティクルのコードとGUI表示のコードがまず怪しそうですね。 その箇所って見せられそうですか?
後者の例でめっちゃ使ってたんですけど関数化してなかったやつです! そういえば小数点を丸めるのにも使えるのか!
小数点以下を指定の桁数で丸める関数
function round_decimal(_value,_decimal_places){ return round(_value / _decimal_places) * _decimal_places; }
1.2345678 のような小数点以下の桁数が長い数値を、指定の桁数でカットできます。 round_decimal(1.2345678, 0.1) → 1.2 round_decimal(1.2345678, 0.01) → 1.23 round_decimal(1.2345678, 0.001) → 1.234
更にこの関数は小数点に限らず、例えば5刻みで数値を丸めるなどもできます。 round_decimal(12, 5) → 10 round_decimal(19, 5) → 20
更新が早いですね
ベータ版は正式リリース版と同時に併用できるそうなので、 テストしてみたいって人はぜひ。
指定した数値が範囲内かどうかを返す関数
function in_range(val,min,max) { return val >= min && val <= max; }
書き忘れてました。 「From Code」でフォントに文字を追加する場合は、 コード中に使いたい文字を書いた後で、フォントにAdd Rangeしてください。
順序が逆になると、コード中に文字がない状態でAdd Rangeすることになり、フォントに文字が追加されませんのでご注意ください。
丁寧な説明ありがとうございます!! フォントに関して曖昧だったのでとても助かります。
これからもよろしくお願いします!!
動画ではフォントを font_add_sprite()でglobal.font_mainというスプライトフォントを作っています。 で、そのフォントで draw_text_ext()でテキストを表示しています。
draw_textでテキスト表示するのは日本語でも同じやり方です。 問題は、日本語で使う文字全てをfont_add_spriteでスプライトフォントにするのは無理ってことです。 (限られた文字しか使わないのであれば可能です)
そこで、日本語フォントは下記の手順で作ります。 日本語フォントを作ったらあとは動画の方法でそのまま使えます。
アセットブラウザでフォントを新規作成します。
フォントエディタが開くので、 1)で日本語フォントを選択します。 2)でサイズなどを設定して、 3)をクリックします。
(1)か(2)を選びます。 (1)を選ぶとコード中に使われている文字が自動でスプライトフォントに追加されます。 (2)を選ぶと外部テキストファイルを読み込んで、そこで使われている文字が追加されます。 動画ではコード中のテキストを表示しているので、(1)を選びます。 最後に(3)のAdd Rangeをクリックします。
これで日本語のスプライトフォントができました。
このフォントを使って、以下のコードで日本語が表示されるか試してください。 (仮にフォント名はfont_jpとします)
オブジェクトのDraw(またはDraw_GUI)イベント
text = "あいうえお今日は晴れです。"; draw_set_font(font_jp); draw_text(10, 10, text);
これが表示されれば、フォントは作れてます。このフォントをチュートリアル動画でそのまま使ってください。
可能ですが超大変です! 文字はパソコン上では数字(文字コード)が割り当てられていて 例) 大文字Aなら41、大文字Bなら42 となってます 文字画像をつくるときは文字コードの順番に配置して読み取ります。 基本的に英数字や基本的な記号は0 ~ 127番目までなのでなんとかできますが、ひらがななどは12400番目、漢字なんかもっといみわからんところにあったりします。 それらの順番などをしっていて画像を配置できれば可能ですがかなり大変です。
上記のチュートリアルのFontの読み込み部分をSpriteではなく、Fontの読み込みに変更したほうがやりやすいです。 また、読み込み方法が違くても上記のチュートリアルは問題なくできそうです。 FontはSpriteをつくって実行中に読み込まなくてもGMSのEditor上で読み込むこともできます。 日本語に対応しているFontを読み込み、ゲーム内で使うであろう文字を入力すればgms内部にフォントの画像を用意してもらえたりします。
日本語フォントの読み込みに関して表示などまでまとめてあるサイト
便利
なぬー!カクツキはしんどいのでバージョンあげようか迷います...
いいですね!
裏でYoutubeを流しているとゲームがたまに重くなる、カクつくという問題(何が原因なのかは分かりませんが) 参照:新バージョン(2.3.3)でのカクつき - Youtubeとの関連
このバージョンになってから見ることが無くなった?と感じます。気のせいじゃなければいいな。
IDE v2.3.4.577 / runtime v2.3.4.440 になってから、この現象を感じることがなくなってます。 なくなったのか、軽減されたのか、ただの気のせいかはっきりしませんが。
上記の方法を参考に、画像を分割しなくても正しく前後関係を解決することに成功しました。
同じ症状の報告がぽちぽち上がってますね。 とりま、前のバージョンに戻してReset Layout したらもとに戻ったので、ひとまずはこれで作業すすめるかな、と…。
新しいIDEが超ラグい CPU使用率が異常に高くなる。ラグい。 https://forum.yoyogames.com/index.php?threads/new-gamemaker-ide-is-laggy.89155/
IMEが超ラグいのもこれかな・・・?
Change Since IDE 577 の部分が変更内容だと思います
(リリースノートの更新が遅れるのは昔からあるので見た時には更新されてなかったのかも)
スニペットのショートカットがおかしくなってませんか?
軽いし日本語インライン入力できるし、当たり前のことができることに感動しました。 わたしも次のプロジェクトで使ってみます。
次のプロジェクトで試したいですね
v2.3.4.580来てますね。 ただリリースノートは577となっているのでこれから580の更新内容を載せるんでしょうか・・?
IDEを再起動したら直りました。 発生条件などは不明。
IDEで作業してる時間が経過するほど遅くなっていくようです。 遅くてやってらんねえなとなったら、IDE再起動するしかないです。
『ドキドキ文芸部!』はRen'Pyなんですね。
IDEで日本語入力→すごく動作が重い
コードエディタで日本語を入力してると入力途中から動きがもっさりとして重い。 Enterで変換を確定してコードエディタに文字が入力されるまでにラグがある。 昨日は感じなかった現象。今日はすごく重くて困る。
Ren'Pyの存在を初めて知りました。 海外インディーでノベルゲームをよく見かけるようになり、日本以外にそういったエンジンがあるのかな~と思ってましたが、これだったんですね。
リリースの間隔が短いのはいいが、そのせいで安定版ですら安定してないじゃないか どのバージョンも不安定ということにならないか? という声が上がっています。
運営としては、安定版を本当に安定したバージョンにするために、何か考えてるとは言ってますね。 なんとかいい方法を考えてほしいです。
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
part_system_depth()が関係してたんですね。直ってよかった!
消えていたUIの一つのGUIイベントです
part_system_depth()消したら治りました…!ここが原因のようです
実fpsはゲームの実行fpsよりはるかに高いです。1000以上は十分高いので問題なさそうです。
debug_overlayの棒グラフ、赤と黄色の部分も負荷は低いので問題ないようですね。
テクスチャページとスワップが37,38で多めですが、これで表示が消えたりするのはたぶん無いと思います(私の経験では無いです)。
キャプチャの瞬間に限れば、負荷の問題はないようです。
ありがとうございます!トピックみて調べてみます。
キャプチャとってきましたこの部分で大丈夫でしょうか。
ただFPSは1000~3000で激しく変動しているようです。FPSってこんなに高いんだけっけ…(お恥ずかしいことに見方が分かってない)
GUIイベントのコードを貼ることはできるでしょうか?
これは関係ないでしょうか。
https://forum.yoyogames.com/index.php?threads/particles-and-gui-gamemaker-1-4-9999-solved.52700/
問題なさそうですね...
海外のフォーラムで見たところ、パーティクルでGUIが消える問題についてのトピックがりました。
https://forum.yoyogames.com/index.php?threads/issue-with-gui-flashing-or-disappearing.84276/
どうやらpart_system_depthが影響しているらしいです。
ただそこまでしかわかりませんでした../
パフォーマンス面を見るために、
show_debug_overlay(true);
として、fpsやテクスチャスワップの情報を表示してみてください。
もう1つ、デバッガで動かして左上に表示されるグラフ?部分を見てください。
できればそれらのキャプチャ画像をここに貼れるでしょうか?
何か分かるかも知れません。
消えてしまう方のGUI表示は画面上に常に表示するHPバーなどのHUDで、複数のHUDが不規則に消えるので特定の表示コードがあるわけではないのですが大抵
で描画しています。今気が付きましたが消える際は一つのobjにコードのある表示が丸々消えていますね、やっぱり処理が重いんですかね…
かなり読みづらいと思われますすみません。
プレイヤーがエネミーにぶつかったときにその方向に向けてドットのしぶきを飛ばすパーティクルになります。
パーティクルObjはルーム開始時に生成しておいてヒット時にuser_event0を呼び出す形です。
パーティクルObjのcreate_event
パーティクルObjのuser_event0
GMSのバグの可能性もありそうですが
パーティクルのコードとGUI表示のコードがまず怪しそうですね。
その箇所って見せられそうですか?
後者の例でめっちゃ使ってたんですけど関数化してなかったやつです!
そういえば小数点を丸めるのにも使えるのか!
小数点以下を指定の桁数で丸める関数
1.2345678 のような小数点以下の桁数が長い数値を、指定の桁数でカットできます。
round_decimal(1.2345678, 0.1) → 1.2
round_decimal(1.2345678, 0.01) → 1.23
round_decimal(1.2345678, 0.001) → 1.234
更にこの関数は小数点に限らず、例えば5刻みで数値を丸めるなどもできます。
round_decimal(12, 5) → 10
round_decimal(19, 5) → 20
更新が早いですね
ベータ版は正式リリース版と同時に併用できるそうなので、
テストしてみたいって人はぜひ。
指定した数値が範囲内かどうかを返す関数
書き忘れてました。
「From Code」でフォントに文字を追加する場合は、
コード中に使いたい文字を書いた後で、フォントにAdd Rangeしてください。
順序が逆になると、コード中に文字がない状態でAdd Rangeすることになり、フォントに文字が追加されませんのでご注意ください。
丁寧な説明ありがとうございます!!
フォントに関して曖昧だったのでとても助かります。
これからもよろしくお願いします!!
動画ではフォントを font_add_sprite()でglobal.font_mainというスプライトフォントを作っています。
で、そのフォントで draw_text_ext()でテキストを表示しています。
draw_textでテキスト表示するのは日本語でも同じやり方です。
問題は、日本語で使う文字全てをfont_add_spriteでスプライトフォントにするのは無理ってことです。
(限られた文字しか使わないのであれば可能です)
そこで、日本語フォントは下記の手順で作ります。
日本語フォントを作ったらあとは動画の方法でそのまま使えます。
アセットブラウザでフォントを新規作成します。
フォントエディタが開くので、
1)で日本語フォントを選択します。
2)でサイズなどを設定して、
3)をクリックします。
(1)か(2)を選びます。
(1)を選ぶとコード中に使われている文字が自動でスプライトフォントに追加されます。
(2)を選ぶと外部テキストファイルを読み込んで、そこで使われている文字が追加されます。
動画ではコード中のテキストを表示しているので、(1)を選びます。
最後に(3)のAdd Rangeをクリックします。
これで日本語のスプライトフォントができました。
このフォントを使って、以下のコードで日本語が表示されるか試してください。
(仮にフォント名はfont_jpとします)
オブジェクトのDraw(またはDraw_GUI)イベント
これが表示されれば、フォントは作れてます。このフォントをチュートリアル動画でそのまま使ってください。
可能ですが超大変です!
文字はパソコン上では数字(文字コード)が割り当てられていて
例) 大文字Aなら41、大文字Bなら42 となってます
文字画像をつくるときは文字コードの順番に配置して読み取ります。
基本的に英数字や基本的な記号は0 ~ 127番目までなのでなんとかできますが、ひらがななどは12400番目、漢字なんかもっといみわからんところにあったりします。
それらの順番などをしっていて画像を配置できれば可能ですがかなり大変です。
上記のチュートリアルのFontの読み込み部分をSpriteではなく、Fontの読み込みに変更したほうがやりやすいです。
また、読み込み方法が違くても上記のチュートリアルは問題なくできそうです。
FontはSpriteをつくって実行中に読み込まなくてもGMSのEditor上で読み込むこともできます。
日本語に対応しているFontを読み込み、ゲーム内で使うであろう文字を入力すればgms内部にフォントの画像を用意してもらえたりします。
日本語フォントの読み込みに関して表示などまでまとめてあるサイト
便利
なぬー!カクツキはしんどいのでバージョンあげようか迷います...
いいですね!
裏でYoutubeを流しているとゲームがたまに重くなる、カクつくという問題(何が原因なのかは分かりませんが)
参照:新バージョン(2.3.3)でのカクつき - Youtubeとの関連
このバージョンになってから見ることが無くなった?と感じます。気のせいじゃなければいいな。
IDE v2.3.4.577 / runtime v2.3.4.440 になってから、この現象を感じることがなくなってます。
なくなったのか、軽減されたのか、ただの気のせいかはっきりしませんが。
上記の方法を参考に、画像を分割しなくても正しく前後関係を解決することに成功しました。
同じ症状の報告がぽちぽち上がってますね。
とりま、前のバージョンに戻してReset Layout したらもとに戻ったので、ひとまずはこれで作業すすめるかな、と…。
新しいIDEが超ラグい
CPU使用率が異常に高くなる。ラグい。
https://forum.yoyogames.com/index.php?threads/new-gamemaker-ide-is-laggy.89155/
IMEが超ラグいのもこれかな・・・?
Change Since IDE 577 の部分が変更内容だと思います
(リリースノートの更新が遅れるのは昔からあるので見た時には更新されてなかったのかも)
スニペットのショートカットがおかしくなってませんか?
軽いし日本語インライン入力できるし、当たり前のことができることに感動しました。
わたしも次のプロジェクトで使ってみます。
次のプロジェクトで試したいですね
v2.3.4.580来てますね。
ただリリースノートは577となっているのでこれから580の更新内容を載せるんでしょうか・・?
IDEを再起動したら直りました。
発生条件などは不明。
IDEで作業してる時間が経過するほど遅くなっていくようです。
遅くてやってらんねえなとなったら、IDE再起動するしかないです。
『ドキドキ文芸部!』はRen'Pyなんですね。
IDEで日本語入力→すごく動作が重い
コードエディタで日本語を入力してると入力途中から動きがもっさりとして重い。
Enterで変換を確定してコードエディタに文字が入力されるまでにラグがある。
昨日は感じなかった現象。今日はすごく重くて困る。
Ren'Pyの存在を初めて知りました。
海外インディーでノベルゲームをよく見かけるようになり、日本以外にそういったエンジンがあるのかな~と思ってましたが、これだったんですね。
リリースの間隔が短いのはいいが、そのせいで安定版ですら安定してないじゃないか
どのバージョンも不安定ということにならないか?
という声が上がっています。
運営としては、安定版を本当に安定したバージョンにするために、何か考えてるとは言ってますね。
なんとかいい方法を考えてほしいです。