GameMaker 日本語掲示板

views
17 フォロー
1,148 件中 361 から 400 までを表示しています。
5

LTSを1.31にアップデートしてから「メインプロジェクトファイルが変更されました。リソースをリロードしますか?それとも保存しますか?」のダイアログが毎回出てくるようになりました。
しかも、今までは出てきたらリロード選んで終わってたのが、選択後も再度出てきて、何度もリロードと保存を繰り返すとやっと始められるというよく分からない事態になってます。
LTS使ってる方、原因がわかる方いたらアドバイス頂きたいです。

4
wtseror3 2023/05/11 (木) 09:43:26

なるほど……ためしてみます!
ありがとうございます🙇‍♂️

3

draw_set_font(フォント);で指定したらそれ以降はそのフォントで表示されますので、
戻したい場合はもう一度draw_set_font(フォント);で指定してください。

例えば1ヶ所だけフォント2で表示させて他の部分をフォント1で表示させたいとしたら、
draw_set_font(フォント2);
draw_text(...); // ここだけがフォント2で表示されます
draw_set_font(フォント1);

という感じです。

2
wtseror3 2023/05/11 (木) 03:57:58

コメントありがとうございます!
draw_set_font(フォント);という関数はこれまでも使っていたのですが、フォント変更の影響がゲーム全体に及ぶため、後に呼び出した方のインスタンスで指定したフォントに統一されてしまいませんか?

1
asa 2023/05/11 (木) 01:16:34 修正

ウィンドウのインスタンスのDrawイベント
draw_set_font(フォント1);
draw_text(...);

USBアイコンのインスタンスのDrawイベント
draw_set_font(フォント2);
draw_text(...);

という形で可能です。

draw_set_font(フォント);
で指定したらそれ以降ずっとそのフォントでテキストが表示されます。
この関数でフォント指定すれば、同一Drawイベント内でも複数のフォントを使えます

4
生高橋 2023/05/05 (金) 09:43:12

roomにオブジェクトがおけなくなるバグがありやす
再度プロジェクトを開くとなおります

1

prefabって調べたらUnityの概念が出てきましたが似たようなものなんですかね。

自分の作業のほとんどがコードエディタなんで、コードエディタ周りが便利になってワークフローが改善してほしいな~

bitsummitに出展するみたいですね。

3
生高橋 2023/05/04 (木) 18:57:27

新しいランタイムになったらサブスク限定になるのは確定らしいですね。
その際、永久ライセンスの人がサブスクに移行した場合、12か月無料になるみたいです。

2

タイルセットのソースにしているスプライト画像を更新してもタイルセットに反映されないバグがまだ直ってない。

回避策は、
タイルセットを一旦nooneにして、再割り当てすると反映される。

1

ビルドにかかる時間が最短になりました。

自分のプロジェクトで、

  • インストール後の初回ビルドには数十秒
  • 2回目以降は5秒
    毎回数十秒かかってた日々は何だったんだというくらいの進歩です。ありがてえ…
2
サトヤガンジ 2023/03/08 (水) 11:36:16

asaさん、解答ありがとうございます!
僕も同じ予測だったので安心しました。

1
asa 2023/03/08 (水) 11:28:14 修正

あくまで私個人の理解ですが、

GameMaker Studio2(GMS2)は2022.3バージョンでGameMakerに改名されましたがこれはまだGMS2ランタイムであり、永続ライセンスの対象です(永続ライセンスで使い続けることができます)。

私もGMS2の永続ライセンス(買い切り版)を持ってますが、現在のGMの機能を使えていて、エクスポートもできているので、永久ライセンスで今のGMを使えてると認識してます。

「将来(時期は不明)、新しいランタイムになったらそれはサブスクリプションだけになる」とアナウンスされているので、それ以降の新しいGMは永続ライセンスでは使えなくなると認識しています。

2
生高橋 2023/03/08 (水) 04:29:58

イントロ付きループが作りやすくなった

5
umaaaaaa 2023/02/14 (火) 09:55:22

環境依存かもですが最近起こってるバグ関係です

・ワークスペース→右クリック→「ウィンドウを全て閉じる」=一部アセットが開かなくなる・・・ことが割と頻繁にある
→ 再起動で直る

・アセットブラウザーでソートを「カスタム順序」に→アセットの名前を変更→ソート順番がなぜかバラバラになったりならなかったり→その後アセットの序列を変更したり名前を再度変えたりするとソート順が元に戻ったり戻らなかったりする

4
ぽんでり 2023/02/08 (水) 01:19:00

フォントのSDFレンダリングにちょっと期待してます。まだいじってないですが。

2

とてもとてもありがたいチュートリアルです!
一番最初のチュートリアルはいくつかあるのですが、
作り始めてから、こんなことしたい、あんなことしたいっていう部分がなかなかなくて、
GMLの情報をあつめつつも、わからないことだらけで・・

ここにたどり着けたので、
とりいそぎチュートリアル記事を全部読もうと思います!

2

そのような関数が追加されていたのですね!
重複もないので使えそうです。
ありがとうございます。

3
生高橋 2023/02/04 (土) 10:59:39 >> 2

ds_listのようなデータ構造は今後構造体とかになりそうな予感がしてます。

2

配列の関数がかなり充実して何でもできるようになってきてるので、DS_Listを使わなくてもよくなってきてますね

1
生高橋 2023/02/03 (金) 20:36:09

指定した値を配列の中身から探してインデックスを取得するarray_get_index関数が追加されてましたね。
indexを探すfor文は書かなくて済みそうです。

1
生高橋 2023/02/03 (金) 20:31:18

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);
3
生高橋 2023/02/01 (水) 12:17:19

よかったです。
surface_copyのほうがシンプルだったかもしれませんね。

2
名前なし 2023/01/31 (火) 21:55:34 修正 >> 1

サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました!
考え方を知れたのでうまく実装することができました。
surface_copyとか使わないんですね・・・。

複数オブジェクトでの実装方法を書いておきます。

Createイベント

isSurface = false;

objSurface1(レイヤーが一番下)のStepイベント

isSurface = (instance_exists(objSurface2) || instance_exists(objSurface3)); //レイヤーが下であるほど多くなる

objSurface3(レイヤーが一番上)のDrawGUIイベント

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();
1
生高橋 2023/01/30 (月) 20:08:15

シェーダーを複数回かけるマルチパスのことですかね。
とりあえずサンプルプロジェクトを用意しましたので、参考にどうぞ。
こちらからダウンロード

バージョンは以下で作成してます。バージョンが古いともしかしたら動かないかもしれません。
IDE 2022.11.1.56
Runtime v2022.11.1.75

内容は次の3つのシェーダーを画面全体に重ね掛けするというものです。
・歪みシェーダー
・グレースケールシェーダー
・色収差シェーダー

1,2,3キーでシェーダーの効果をオン、オフできます。

大まかな流れは次のとおりです。

  1. application_surfaceに対してshader1をかけたものを自作surface2に保存
  2. surface2に対してshader2をかけたものを自作surface3に保存
  3. surface3に対してshader3をかけたものを描画
    となっています。

サンプルを見てなにかわからないことがあれば聞いてください。

1

最後のUnityの話で思い当たることがありまして、
他のエンジンでの仕様や決まりごとに、ゲーム作りに役立つ概念がたくさんありますね。

2

おかげさまで実装できました!ありがとうございます。
GameMakerまとめWikiには載ってなかったのでやっぱり英語でも調べないと駄目だなと実感しました…

1

window_has_focus関数で検知できます

例:
stepイベント

if(!window_has_focus())
{
   // game pause code
}
1

これはいつかお世話になりそうな情報。ありがとうございます!🙏

1

おそらく自作が必要で、

  1. instance_create_layer() などで生成した後に、instance_deactivate_object() で無効化して配列かリストにプールする
  2. 必要になったら未使用のインスタンスから instance_activate_object() でアクティブにする
  3. 使い終わったら再び instance_deactivate_object() で無効化する

といった流れになりそうな気がします

4

フォントの質問についてはちょっと分からないのでテキスト表示の処理を考えました。
これで文字間と行間を指定できます。こういう方法はいかがでしょうか。


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;
	}
}
3
サトヤガンジ 2022/12/07 (水) 21:52:36 >> 1

こんにちは!
文字間隔を調整できるフォントの作成の調査をしています。

font_add_sprite()で各文字の幅を指定できるようですが、べースとなるスプライトが必要とあります。
JIS 第一・第二水準を含む美咲ゴシックを導入したいのですが、可能でしょうか?(サイズが大きい気がしまして。)

現在は美咲ゴシック(JIS 第一・第二水準)をフォントアセットに取り込んでテキストを表示しているので、このフォントに対して文字間隔を指定する方法があればいいのですが・・・。

何かヒントでもいただければ幸いです。
よろしくお願いいたします。

4
ぽんでり 2022/12/05 (月) 01:06:15 >> 3

やはりそうですよねえ。今日たまたまドキュメントを見たら載ってたstring_split()を「こんな関数あったっけ」と思いつつやってみたら使えなかったので、新しい機能なんだと思います。→→→ランタイムのリリースノートに載ってますねえ。いやあーん失礼しました!

3

LTSは2022.9をベースにしてますので、これより後にリリースされた仕様は実装されないものと認識してます

2
ぽんでり 2022/12/04 (日) 19:33:55

string系のアプデ気になりますね!
LTSのほうでstring_split()が動かないのですが、ひょっとしてLTSにはまだ実装されてなくて、そちらに来てるのかも

1
サトヤガンジ 2022/11/30 (水) 18:13:55

ランタイムを個別にインストールできるようになった。
エフェクトが増えた。オールドフィルムとか。
値の桁や区切りとしてアンダーバー<_>が使えるようになった。10000 = 10_000
string系の関数がアップデートされた?
配列を使用するときに便利な関数が用意された?
キャッチアップするの大変だ('ω')

2
サトヤガンジ 2022/11/29 (火) 21:43:57 >> 1

海外フォーラムでも検索しましたが、カーニングを指定できる関数はなさそうですね。
1文字ずつ描画する関数の自作を研究してみます!
ありがとうございました('ω')

1

私の知る限り、文字間隔を指定できる関数は無いので(行間隔はdraw_text_ext()でできますが)
1文字ずつ描画する関数を自作する形になるでしょうかね。
自作関数なら1文字単位で文字間隔を変えることもできます。
私は文字単位で色を変えるために自作しました。

フォント単位で固定でいいなら、フォントの素材画像をスペース込みで作成する方法もあります。