LTSを1.31にアップデートしてから「メインプロジェクトファイルが変更されました。リソースをリロードしますか?それとも保存しますか?」のダイアログが毎回出てくるようになりました。 しかも、今までは出てきたらリロード選んで終わってたのが、選択後も再度出てきて、何度もリロードと保存を繰り返すとやっと始められるというよく分からない事態になってます。 LTS使ってる方、原因がわかる方いたらアドバイス頂きたいです。
なるほど……ためしてみます! ありがとうございます🙇♂️
draw_set_font(フォント);で指定したらそれ以降はそのフォントで表示されますので、 戻したい場合はもう一度draw_set_font(フォント);で指定してください。
例えば1ヶ所だけフォント2で表示させて他の部分をフォント1で表示させたいとしたら、 draw_set_font(フォント2); draw_text(...); // ここだけがフォント2で表示されます draw_set_font(フォント1);
という感じです。
コメントありがとうございます! draw_set_font(フォント);という関数はこれまでも使っていたのですが、フォント変更の影響がゲーム全体に及ぶため、後に呼び出した方のインスタンスで指定したフォントに統一されてしまいませんか?
ウィンドウのインスタンスのDrawイベント draw_set_font(フォント1); draw_text(...);
USBアイコンのインスタンスのDrawイベント draw_set_font(フォント2); draw_text(...);
という形で可能です。
draw_set_font(フォント); で指定したらそれ以降ずっとそのフォントでテキストが表示されます。 この関数でフォント指定すれば、同一Drawイベント内でも複数のフォントを使えます
roomにオブジェクトがおけなくなるバグがありやす 再度プロジェクトを開くとなおります
prefabって調べたらUnityの概念が出てきましたが似たようなものなんですかね。
自分の作業のほとんどがコードエディタなんで、コードエディタ周りが便利になってワークフローが改善してほしいな~
bitsummitに出展するみたいですね。
新しいランタイムになったらサブスク限定になるのは確定らしいですね。 その際、永久ライセンスの人がサブスクに移行した場合、12か月無料になるみたいです。
いい!
タイルセットのソースにしているスプライト画像を更新してもタイルセットに反映されないバグがまだ直ってない。
回避策は、 タイルセットを一旦nooneにして、再割り当てすると反映される。
ビルドにかかる時間が最短になりました。
自分のプロジェクトで、
asaさん、解答ありがとうございます! 僕も同じ予測だったので安心しました。
あくまで私個人の理解ですが、
GameMaker Studio2(GMS2)は2022.3バージョンでGameMakerに改名されましたがこれはまだGMS2ランタイムであり、永続ライセンスの対象です(永続ライセンスで使い続けることができます)。
私もGMS2の永続ライセンス(買い切り版)を持ってますが、現在のGMの機能を使えていて、エクスポートもできているので、永久ライセンスで今のGMを使えてると認識してます。
「将来(時期は不明)、新しいランタイムになったらそれはサブスクリプションだけになる」とアナウンスされているので、それ以降の新しいGMは永続ライセンスでは使えなくなると認識しています。
イントロ付きループが作りやすくなった
やっふぅ
環境依存かもですが最近起こってるバグ関係です
・ワークスペース→右クリック→「ウィンドウを全て閉じる」=一部アセットが開かなくなる・・・ことが割と頻繁にある → 再起動で直る
・アセットブラウザーでソートを「カスタム順序」に→アセットの名前を変更→ソート順番がなぜかバラバラになったりならなかったり→その後アセットの序列を変更したり名前を再度変えたりするとソート順が元に戻ったり戻らなかったりする
フォントのSDFレンダリングにちょっと期待してます。まだいじってないですが。
とてもとてもありがたいチュートリアルです! 一番最初のチュートリアルはいくつかあるのですが、 作り始めてから、こんなことしたい、あんなことしたいっていう部分がなかなかなくて、 GMLの情報をあつめつつも、わからないことだらけで・・
ここにたどり着けたので、 とりいそぎチュートリアル記事を全部読もうと思います!
そのような関数が追加されていたのですね! 重複もないので使えそうです。 ありがとうございます。
ds_listのようなデータ構造は今後構造体とかになりそうな予感がしてます。
配列の関数がかなり充実して何でもできるようになってきてるので、DS_Listを使わなくてもよくなってきてますね
指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されてましたね。 indexを探すfor文は書かなくて済みそうです。
GameMaker最新版の2023.1から指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されました。 もし配列の中身に重複がなければ使えると思います。
サンプルコードです。
var _array = [2, 8, 10]; var _tile_index = choose(2,8,10); var _new_tile_index = array_get_index(_array,_tile_index) + 1; show_debug_message(_tile_index); show_debug_message(_new_tile_index);
よかったです。 surface_copyのほうがシンプルだったかもしれませんね。
サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました! 考え方を知れたのでうまく実装することができました。 surface_copyとか使わないんですね・・・。
複数オブジェクトでの実装方法を書いておきます。
isSurface = false;
isSurface = (instance_exists(objSurface2) || instance_exists(objSurface3)); //レイヤーが下であるほど多くなる
var sfc = application_surface; if(instance_exists(objSurface1)) sfc = objSurface1._surf; //レイヤーが上であるほど多くなる if(instance_exists(objSurface2)) sfc = objSurface2._surf; if (!surface_exists(_surf)){ var w = surface_get_width(application_surface); var h = surface_get_height(application_surface); _surf= surface_create(w,h); } if(isSurface) surface_set_target(_surf); shader_set(shd_grayscale); draw_surface(sfc, 0, 0); shader_reset(); if(isSurface) surface_reset_target();
シェーダーを複数回かけるマルチパスのことですかね。 とりあえずサンプルプロジェクトを用意しましたので、参考にどうぞ。 こちらからダウンロード
バージョンは以下で作成してます。バージョンが古いともしかしたら動かないかもしれません。 IDE 2022.11.1.56 Runtime v2022.11.1.75
内容は次の3つのシェーダーを画面全体に重ね掛けするというものです。 ・歪みシェーダー ・グレースケールシェーダー ・色収差シェーダー
1,2,3キーでシェーダーの効果をオン、オフできます。
大まかな流れは次のとおりです。
サンプルを見てなにかわからないことがあれば聞いてください。
最後のUnityの話で思い当たることがありまして、 他のエンジンでの仕様や決まりごとに、ゲーム作りに役立つ概念がたくさんありますね。
関数の中身、勉強になりそう!
おかげさまで実装できました!ありがとうございます。 GameMakerまとめWikiには載ってなかったのでやっぱり英語でも調べないと駄目だなと実感しました…
window_has_focus関数で検知できます
例: stepイベント
if(!window_has_focus()) { // game pause code }
これはいつかお世話になりそうな情報。ありがとうございます!🙏
おそらく自作が必要で、
といった流れになりそうな気がします
フォントの質問についてはちょっと分からないのでテキスト表示の処理を考えました。 これで文字間と行間を指定できます。こういう方法はいかがでしょうか。 Draw GUI(Drawでも動きます)に貼り付けて「フォント」を使いたいフォントアセットに書き換えてください。
draw_set_font(フォント); characters = ["今","日","は","い","い","天","気","。","\n", "そ","う","で","す","ね"]; char_width = 12; char_space = 2; line_height = 15; line = 0; char_index_in_line = 0; x = 10; y = 10; for (var _i=0; _i<array_length(characters); _i++) { if (characters[_i] == "\n") { line += 1; char_index_in_line = 0; } else { var _x = x + char_width*char_index_in_line + char_space*char_index_in_line; var _y = y + line_height*line; draw_text(_x, _y, characters[_i]); char_index_in_line += 1; } }
こんにちは! 文字間隔を調整できるフォントの作成の調査をしています。
font_add_sprite()で各文字の幅を指定できるようですが、べースとなるスプライトが必要とあります。 JIS 第一・第二水準を含む美咲ゴシックを導入したいのですが、可能でしょうか?(サイズが大きい気がしまして。)
現在は美咲ゴシック(JIS 第一・第二水準)をフォントアセットに取り込んでテキストを表示しているので、このフォントに対して文字間隔を指定する方法があればいいのですが・・・。
何かヒントでもいただければ幸いです。 よろしくお願いいたします。
やはりそうですよねえ。今日たまたまドキュメントを見たら載ってたstring_split()を「こんな関数あったっけ」と思いつつやってみたら使えなかったので、新しい機能なんだと思います。→→→ランタイムのリリースノートに載ってますねえ。いやあーん失礼しました!
LTSは2022.9をベースにしてますので、これより後にリリースされた仕様は実装されないものと認識してます
string系のアプデ気になりますね! LTSのほうでstring_split()が動かないのですが、ひょっとしてLTSにはまだ実装されてなくて、そちらに来てるのかも
ランタイムを個別にインストールできるようになった。 エフェクトが増えた。オールドフィルムとか。 値の桁や区切りとしてアンダーバー<_>が使えるようになった。10000 = 10_000 string系の関数がアップデートされた? 配列を使用するときに便利な関数が用意された? キャッチアップするの大変だ('ω')
海外フォーラムでも検索しましたが、カーニングを指定できる関数はなさそうですね。 1文字ずつ描画する関数の自作を研究してみます! ありがとうございました('ω')
私の知る限り、文字間隔を指定できる関数は無いので(行間隔はdraw_text_ext()でできますが) 1文字ずつ描画する関数を自作する形になるでしょうかね。 自作関数なら1文字単位で文字間隔を変えることもできます。 私は文字単位で色を変えるために自作しました。
フォント単位で固定でいいなら、フォントの素材画像をスペース込みで作成する方法もあります。
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
LTSを1.31にアップデートしてから「メインプロジェクトファイルが変更されました。リソースをリロードしますか?それとも保存しますか?」のダイアログが毎回出てくるようになりました。
しかも、今までは出てきたらリロード選んで終わってたのが、選択後も再度出てきて、何度もリロードと保存を繰り返すとやっと始められるというよく分からない事態になってます。
LTS使ってる方、原因がわかる方いたらアドバイス頂きたいです。
なるほど……ためしてみます!
ありがとうございます🙇♂️
draw_set_font(フォント);で指定したらそれ以降はそのフォントで表示されますので、
戻したい場合はもう一度draw_set_font(フォント);で指定してください。
例えば1ヶ所だけフォント2で表示させて他の部分をフォント1で表示させたいとしたら、
draw_set_font(フォント2);
draw_text(...); // ここだけがフォント2で表示されます
draw_set_font(フォント1);
という感じです。
コメントありがとうございます!
draw_set_font(フォント);という関数はこれまでも使っていたのですが、フォント変更の影響がゲーム全体に及ぶため、後に呼び出した方のインスタンスで指定したフォントに統一されてしまいませんか?
ウィンドウのインスタンスのDrawイベント
draw_set_font(フォント1);
draw_text(...);
USBアイコンのインスタンスのDrawイベント
draw_set_font(フォント2);
draw_text(...);
という形で可能です。
draw_set_font(フォント);
で指定したらそれ以降ずっとそのフォントでテキストが表示されます。
この関数でフォント指定すれば、同一Drawイベント内でも複数のフォントを使えます
roomにオブジェクトがおけなくなるバグがありやす
再度プロジェクトを開くとなおります
prefabって調べたらUnityの概念が出てきましたが似たようなものなんですかね。
自分の作業のほとんどがコードエディタなんで、コードエディタ周りが便利になってワークフローが改善してほしいな~
bitsummitに出展するみたいですね。
新しいランタイムになったらサブスク限定になるのは確定らしいですね。
その際、永久ライセンスの人がサブスクに移行した場合、12か月無料になるみたいです。
いい!
タイルセットのソースにしているスプライト画像を更新してもタイルセットに反映されないバグがまだ直ってない。
回避策は、
タイルセットを一旦nooneにして、再割り当てすると反映される。
ビルドにかかる時間が最短になりました。
自分のプロジェクトで、
毎回数十秒かかってた日々は何だったんだというくらいの進歩です。ありがてえ…
asaさん、解答ありがとうございます!
僕も同じ予測だったので安心しました。
あくまで私個人の理解ですが、
GameMaker Studio2(GMS2)は2022.3バージョンでGameMakerに改名されましたがこれはまだGMS2ランタイムであり、永続ライセンスの対象です(永続ライセンスで使い続けることができます)。
私もGMS2の永続ライセンス(買い切り版)を持ってますが、現在のGMの機能を使えていて、エクスポートもできているので、永久ライセンスで今のGMを使えてると認識してます。
「将来(時期は不明)、新しいランタイムになったらそれはサブスクリプションだけになる」とアナウンスされているので、それ以降の新しいGMは永続ライセンスでは使えなくなると認識しています。
イントロ付きループが作りやすくなった
やっふぅ
環境依存かもですが最近起こってるバグ関係です
・ワークスペース→右クリック→「ウィンドウを全て閉じる」=一部アセットが開かなくなる・・・ことが割と頻繁にある
→ 再起動で直る
・アセットブラウザーでソートを「カスタム順序」に→アセットの名前を変更→ソート順番がなぜかバラバラになったりならなかったり→その後アセットの序列を変更したり名前を再度変えたりするとソート順が元に戻ったり戻らなかったりする
フォントのSDFレンダリングにちょっと期待してます。まだいじってないですが。
とてもとてもありがたいチュートリアルです!
一番最初のチュートリアルはいくつかあるのですが、
作り始めてから、こんなことしたい、あんなことしたいっていう部分がなかなかなくて、
GMLの情報をあつめつつも、わからないことだらけで・・
ここにたどり着けたので、
とりいそぎチュートリアル記事を全部読もうと思います!
そのような関数が追加されていたのですね!
重複もないので使えそうです。
ありがとうございます。
ds_listのようなデータ構造は今後構造体とかになりそうな予感がしてます。
配列の関数がかなり充実して何でもできるようになってきてるので、DS_Listを使わなくてもよくなってきてますね
指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されてましたね。
indexを探すfor文は書かなくて済みそうです。
GameMaker最新版の2023.1から指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されました。
もし配列の中身に重複がなければ使えると思います。
サンプルコードです。
よかったです。
surface_copyのほうがシンプルだったかもしれませんね。
サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました!
考え方を知れたのでうまく実装することができました。
surface_copyとか使わないんですね・・・。
複数オブジェクトでの実装方法を書いておきます。
Createイベント
objSurface1(レイヤーが一番下)のStepイベント
objSurface3(レイヤーが一番上)のDrawGUIイベント
シェーダーを複数回かけるマルチパスのことですかね。
とりあえずサンプルプロジェクトを用意しましたので、参考にどうぞ。
こちらからダウンロード
バージョンは以下で作成してます。バージョンが古いともしかしたら動かないかもしれません。
IDE 2022.11.1.56
Runtime v2022.11.1.75
内容は次の3つのシェーダーを画面全体に重ね掛けするというものです。
・歪みシェーダー
・グレースケールシェーダー
・色収差シェーダー
1,2,3キーでシェーダーの効果をオン、オフできます。
大まかな流れは次のとおりです。
となっています。
サンプルを見てなにかわからないことがあれば聞いてください。
最後のUnityの話で思い当たることがありまして、
他のエンジンでの仕様や決まりごとに、ゲーム作りに役立つ概念がたくさんありますね。
関数の中身、勉強になりそう!
おかげさまで実装できました!ありがとうございます。
GameMakerまとめWikiには載ってなかったのでやっぱり英語でも調べないと駄目だなと実感しました…
window_has_focus関数で検知できます
例:
stepイベント
これはいつかお世話になりそうな情報。ありがとうございます!🙏
おそらく自作が必要で、
といった流れになりそうな気がします
フォントの質問についてはちょっと分からないのでテキスト表示の処理を考えました。
これで文字間と行間を指定できます。こういう方法はいかがでしょうか。
Draw GUI(Drawでも動きます)に貼り付けて「フォント」を使いたいフォントアセットに書き換えてください。
こんにちは!
文字間隔を調整できるフォントの作成の調査をしています。
font_add_sprite()で各文字の幅を指定できるようですが、べースとなるスプライトが必要とあります。
JIS 第一・第二水準を含む美咲ゴシックを導入したいのですが、可能でしょうか?(サイズが大きい気がしまして。)
現在は美咲ゴシック(JIS 第一・第二水準)をフォントアセットに取り込んでテキストを表示しているので、このフォントに対して文字間隔を指定する方法があればいいのですが・・・。
何かヒントでもいただければ幸いです。
よろしくお願いいたします。
やはりそうですよねえ。今日たまたまドキュメントを見たら載ってたstring_split()を「こんな関数あったっけ」と思いつつやってみたら使えなかったので、新しい機能なんだと思います。→→→ランタイムのリリースノートに載ってますねえ。いやあーん失礼しました!
LTSは2022.9をベースにしてますので、これより後にリリースされた仕様は実装されないものと認識してます
string系のアプデ気になりますね!
LTSのほうでstring_split()が動かないのですが、ひょっとしてLTSにはまだ実装されてなくて、そちらに来てるのかも
ランタイムを個別にインストールできるようになった。
エフェクトが増えた。オールドフィルムとか。
値の桁や区切りとしてアンダーバー<_>が使えるようになった。10000 = 10_000
string系の関数がアップデートされた?
配列を使用するときに便利な関数が用意された?
キャッチアップするの大変だ('ω')
海外フォーラムでも検索しましたが、カーニングを指定できる関数はなさそうですね。
1文字ずつ描画する関数の自作を研究してみます!
ありがとうございました('ω')
私の知る限り、文字間隔を指定できる関数は無いので(行間隔はdraw_text_ext()でできますが)
1文字ずつ描画する関数を自作する形になるでしょうかね。
自作関数なら1文字単位で文字間隔を変えることもできます。
私は文字単位で色を変えるために自作しました。
フォント単位で固定でいいなら、フォントの素材画像をスペース込みで作成する方法もあります。