GameMaker 日本語掲示板

views
17 フォロー
1,131 件中 721 から 760 までを表示しています。
9

asaさんコメントありがとうございます!

2.3以前→オブジェクトAの変数宣言したものを利用してスプリクトは実行できる。

2.3以降→"functionで包んでいないスクリプト内のコードはゲーム起動のタイミングで実行される。

"「directionという変数が定義されてないのに使おうとしてるよ」というエラーです。しかし変数directionはビルトイン変数なので定義しなくても使えるものです。"と前回asaさんが言っていました。

これはそもそもゲーム起動のタイミングだからスクリプト内のコードをしようとするから何も準備できていないよー!って状況だからビルトイン変数のdirectionが未定義エラーになるということでしょうかね。

なんかかなり腹落ちした気がします……!さらにソース提示までいただいてありがとうございます!

8
asa 2021/10/09 (土) 13:38:53 修正

直ってよかったです!!

2.3以前のチュートリアルを参考にされたのだと思います。
古いチュートリアルで学習すると同じことが起こるので、今後の参考に簡単に説明します。

バージョン2.3以前の形
scriptには処理を直接記述していました。1つのscriptは1つの関数の定義になっていました。

例:
script "PlayerAnimateSprite"

player_direction = direction + 5;



バージョン2.3以降の形
処理をfunctionで包む形で記述し、これを関数定義とするようになりました。例は1つのfunctionだけですがscriptの中に複数のfunctionを書けるようになりました。
例:
script "PlayerAnimateSprite"

function PlayerAnimateSprite() {
 player_direction = direction + 5;
}



なので、古いチュートリアルのコードは全て、この読み替え、書き換えが必要になります。
以下に少し説明しますが、説明が雑で逆に混乱するかもしれないので、参考程度に読んでみてください


2.3以前では、Runしてもscript "PlayerAnimateSprite"は実行されません。関数"PlayerAnimateSprite"が定義されるだけです。オブジェクトAからPlayerAnimateSprite();を呼び出した時点でオブジェクトAのスコープで実行されます。コードにあるdirectionはオブジェクトAのdirectionが参照されるのでエラーになりません。

2.3以降では、Runしたらscript "PlayerAnimateSprite"に書かれたコードはグローバルスコープのコードとして全て実行されます。functionで包んでないコードは全てゲーム起動のタイミングで実行されます。そこでオブジェクトの変数であるdirectionを参照すればエラーになります。
functionで包めば、それが関数定義になります。Runした時点で関数が定義され、オブジェクトから呼び出した時点で実行されます。

関連資料
https://www.yoyogames.com/en/blog/gamemaker-studio-2-dot-3-new-gml-features

7

asaさんありがとうございます!できました!

どのようにお伝えしていいかわかりませんが、本当に嬉しいです!
1週間近くいろいろ変化させてみたり、全て打ち直したりしてだめだったので、本当に助かりました!
夜遅くにありがとうございます!

6

コードが書かれているのはscriptファイルの中ということですね。

関数を呼び出してる部分を探しますと、PlayerAnimateSprite(); があります。
PlayerAnimateSprite がスクリプトファイルの名前でしょうか?
その前提で以下に説明しますと、このスクリプトを開いて、

function PlayerAnimateSprite() {
 code
}

という形になっていなければ、この形にしてください。コードを全部コピペして

function PlayerAnimateSprite() {
 
}

の中に入れるだけでOKです。

そしてRunするとどうなるでしょうか?

5

asaさんコメントありがとうございます。
direction自体はそのままでも使えるのですね。今後の制作時の参考にします。ありがとうございます。

コードが書かれているのはscriptファイルの中です。

またこれとは別のscriptファイルにmacroでフレームレートの数値を設定しています。
さらにエラーの指示を受けてないオブジェクト内のファイルを書いている状態です。
Objectに対してEvents>Createイベントが下記のとおりです。

image_speed = 0;
hSpeed = 0;
vSpeed = 0;
speedWalk = 2.0;

spriteRun = sPlayerRun;
spriteIdle = sPlayer;
localFrame = 0;

またステップイベントが下記のとおりです。

//Get Player Input
keyLeft = keyboard_check(vk_left)  || keyboard_check(ord("A"));
keyRight = keyboard_check(vk_right) || keyboard_check(ord("D"));
keyUp = keyboard_check(vk_up) || keyboard_check(ord("W"));
keyDown = keyboard_check(vk_down) || keyboard_check(ord("S"));
keyActivate = keyboard_check_pressed(vk_space);
keyAttack = keyboard_check_pressed(vk_shift);
keyItem = keyboard_check_pressed(vk_control);

inputDirection = point_direction(0,0,keyRight-keyLeft,keyDown-keyUp);
inputMagnitude = (keyRight - keyLeft != 0)||(keyDown - keyUp != 0);


//Movement
hSpeed = lengthdir_x(inputMagnitude * speedWalk, inputDirection);
vSpeed = lengthdir_y(inputMagnitude * speedWalk, inputDirection);

x += hSpeed;
y += vSpeed;

//Updete Sprite Index
var _oldSprite = sprite_index;
if (inputMagnitude != 0)
{
	direction = inputDirection
	sprite_index = spriteRun;
} else sprite_index = spriteIdle;
if (_oldSprite != sprite_index) localFrame = 0;

//Update Image Index
PlayerAnimateSprite();

情報量が多くなり、またエラー該当箇所ではないため記載を割愛しましたがなにか解決のご参考にしていただきたく思います。
お忙しいところ本当にありがとうございます。

4
asa 2021/10/09 (土) 01:04:31 修正 >> 3

これは当てずっぽうな推測ですが、このコードはscriptファイルに書かれていてobjectから呼び出していないでしょうか。
v2.3.3以降はfunctionの扱いが変わっています。この仕様変更によって古い記述のままだとエラーになることがあります。

具体的には、今の仕様だとスクリプト my_functions (←名前は適当)に、以下のように関数定義します。

function abc() {
   val = direction div 45;
}

これを

val = direction div 45;

と書いてないでしょうか?
そうするとRunするとスコープがglobalでこれが実行されるので、directionが定義されてないよとエラーが出るかもしれません。

関係しそうなスレッドを探しました。
https://forum.yoyogames.com/index.php?threads/important-gm-2-3-users-please-read-improper-script-usage-generates-undefined-variable-errors.79907/

一度ご確認ください。

3

Variable.direction(8,-2147483648)not set before reading it.

これは変数が定義されてないというエラー内容です。
「directionという変数が定義されてないのに使おうとしてるよ」というエラーです。しかし変数directionはビルトイン変数なので定義しなくても使えるものです。

1つ確認したいのですが、このコードが実行されている(書かれている)のはどこでしょうか。
オブジェクトのイベントの中で、あるいはscriptファイルの中でしょうか?

2

nuimさん
返信ありがとうございます。マークダウン記法についても理解していなかったためきちんとコメントアウト部分含め内容が記載されていませんでした。
演算子についてはすでに入っており、変数宣言に対してエラーが発生してしまいます。こちらについても改めてご教授いただければ幸いです。よろしくお願いいたします。

1

3行目にエラーがあると書かれているので、
image_index = localFrame + (_cardinalDirection _totalFrames);
を見てみると、_cardinalDirection _totalFramesの間の演算子が抜けてしまっているように見えます。
演算子がないので、2つの変数がつなげて認識されてしまってnot set before reading itエラーが出ているのではないでしょうか。

7

IDE v2.3.5.589  Runtime v2.3.5.458

ルームエディターでタイルレイヤーのショートカットが機能しない
ショートカット周りは前々から言われてるみたいなのですがタイルを移動させたい時とか頻繁にあるので非常に困りますね

https://forum.yoyogames.com/index.php?threads/2-3-5-stable-release-thread.89732/page-2#post-538731

15

Let's Learn This Together
https://www.youtube.com/c/LetsLearnThisTogether

カメラ関係のチュートリアルとかあります。

6

v2.3.5.589
v2.3.2の頃に確認していた「デバッガのglobal変数のリストにglobal変数以外のものが多数混ざっている」不具合はv2.3.5.589では無くなってるようです。

5

v2.3.5.589
何かのきっかけでCtrl+Tが効かなくなる。

7
yOichi 2021/10/02 (土) 15:10:56

https://otona-life.com/2018/07/11/2775/
こちらを参考に、レジストリ等アンインストールしても残っているファイルをまるごと消したら、無事再インストールできました。とまには、こういう事故もあるんですねぇ…

4

v2.3.5.589
パスのポイントがdelキーで消せない。

3

google IME

「あああああああああああああああああああああああああああああああああ」
と長い文字数を入力して、そのまま変換せずEsc押したかな?変換候補に出てくる「あああああああああああああああ」をCtrl+Delで削除したかな?そしたらIMEがクラッシュしました。

その後どうにもならなくなったので、念のためgoogle IMEをアンインストールして入れ直します。

10

OS: win10
IME: google IME / Microsoft IME
IDE: v2.3.5.589

2.3.5.589がリリースされたので確認しました。

・IMEオンにするとショートカットキーが効かなくなる不具合はまだあります。

・1度に10文字以上を入力できない不具合はまだあります。
画像1

・日本語入力でIDEが重くなる、ラグくなる現象はこれから様子見します。

2

日本語入力について

v2.3.5.589
win10, google iME / microsoft IME

・IMEオンにするとショートカットキーが効かなくなる不具合はまだあります。

・1度に10文字以上を入力できない不具合はまだあります。
画像1

・日本語入力でIDEが重くなる、ラグくなる現象はこれから様子見します。

1

v2.3.5.589
ホットキーの設定ができるようになりました。
画像1

6
ぽんでり 2021/09/30 (木) 19:07:09

Appdata\Roaming\GameMakerStudio2とかAppdata\Local\GameMakerStudio2にあるファイルとか関係あるかもですねえ。不確かな事なので捨てろなどとは言えないのですが。

1
asa 2021/09/29 (水) 17:36:19 修正

フォーラムでアドバイスを得て、浮動小数点の状態を確認しましたら、以下のようになりました。
image_index 5を指定すると4.99999952などの値になり、結果、期待に反してimage_index4で止まります。
image_index 4を指定すると4.00000048などの値になり、結果、期待通りにimage_index4で止まります。
この問題を避けるために、image_indexに「止めたいframe番号+0.1」を指定するといいと理解しました。

画像1

以上です。
とりあえず理解できたので、タイトルを「解決」にします。
YoYoGamesからの回答で、理解が完全に混乱してしちゃってました。

5

今まで使えていたのに、バージョンを戻してもダメっていうのは不可解ですね。
アンインストールしても何かゴミが残っててそれが悪さしてるんでしょうか…?

これが関係するか不明ですが、一応参考資料を貼っておきます。
User Permissions and Internet Access Required by GMS2
https://help.yoyogames.com/hc/en-us/articles/360022953052

2
yOichi 2021/09/25 (土) 05:01:47

情報ありがとうございます。

>PCはwindowsでしょうか?
>また、買ったのはsteamからでしょうか、YoYoGamesからでしょうか。
Windowsですね。
購入したのはYoYoGamesからですね。SteamからだとSteamとYoYoのアカウントを連携させないと起動しないといけないときがあるそうですが、これは当てはまらなさそうですね。

>インストールは成功していて、起動に失敗しているとすると、
>管理者権限で起動してみる
>セキュリティソフトを切って起動してみる
>YoYoGamesにログインできるか
YoYoGamesにはログインできているので、できるのは管理者権限かセキュリティソフト(Windpesディフェンダーくらいですが)でしょうか。とりまサブPCには入れられているので、週明けにでも試してみます。

ちなみに、こういうのも見つけて試してみましたが、効果はありませんでした。
https://help.yoyogames.com/hc/en-us/articles/115004943807-How-to-apply-the-Windows-software-renderer-if-your-GPU-does-not-support-GMS2

1
asa 2021/09/24 (金) 21:21:49 修正

PCはwindowsでしょうか?
また、買ったのはsteamからでしょうか、YoYoGamesからでしょうか。
(私自身は解決方法は分からないのですが、他の方が見る参考情報として。)

インストールは成功していて、起動に失敗しているとすると、
管理者権限で起動してみる
セキュリティソフトを切って起動してみる
YoYoGamesにログインできるか
steamで買った場合、steamにログインできるか
このあたりを確認するとどうなるでしょうか。

9

OS: win10
IME: google IME
IDE v2.3.4.583

IMEオンにするとショートカットキーが効かなくなる ---> 変わらず
インライン入力 ---> できる
全角スペースの入力 ---> できる
変換確定せず英数に戻した後の文字入力 ---> できる
IME使用中、ラグくなることがある ---> IDEがラグくなることがあるので、IMEとの関係がはっきりしない。
IMEで長い文章が入力できない ---> 変わらず。全角10文字以上入力するとインラインに反映されなくなる。

一時より改善されてる印象です。

8
hayate212 2021/09/23 (木) 23:27:35 >> 7

今回のアップデートでインライン入力出来るようになった気がします。
まだそんなに触っていないので不確かですが気持ち以前のバージョンより安定している気がしています!

7

日本語はずっと蚊帳の外なんで、中国語がサポートされた結果同時に日本語についても直ったらいいなと思います・・・

6
hayate212 2021/09/23 (木) 22:37:00

UI/UX: IME support has had several fixes to make it more reliable, especialy when using Chinese
https://gms.yoyogames.com/ReleaseNotes.html

リリースノート読む限り中国語へのサポート手厚くしていくようなので(?)今後解決すると願うばかりですね・・・

5
asa 2021/09/22 (水) 16:14:52 修正 >> 3

ご協力ありがとうございます!🙏

情報が集まって「どうもPC環境が原因のレアケースじゃないっぽいぞ」となったらYoYoGamesに報告して改善に役立ててもらいたいと思います。

4
生高橋 2021/09/22 (水) 15:40:09 >> 3

あーインライン入力はたしかにできないですね!

3
樹ひかり 2021/09/22 (水) 15:38:34

OSはWindows10、IMEはGoogle日本語入力です。
GameMakerのバージョンは2.3.3で止めてます。

IME使用後にショートカットキーが効かないのはウチも昔からですね。
別ウインドウをフォーカスしたりすると治るので、いつも日本語入力後にWindowsキーを2連打してます。

インライン入力はコレのことかと思いますが、
https://kotobank.jp/word/インライン入力-981
これもできてません。文中ではなく画面左上に変換候補が表示されます。

「2.3.3以降に見られるようになった症状」は、どれも発生してないです。

2

ご協力ありがとうございます!
しかしこの問題を指摘する声が他の日本語ユーザーから聞こえてきたことがありません。
これって、もしかしたらPC依存のレアケースなのかもしれませんね……

1
生高橋 2021/09/22 (水) 12:28:06

OS:Windows 10 
IME:Microsoft IME

数年前の症状のショートカットキーが効かなくなる現象は結構おきますね。
ただ IMEで日本語入力 > 半角英数に戻す ではなく突然なったりします。(まだよくわかってないです)
モニター2台で作業しているんですが、Editorとは違うモニターのどこかの入力画面で半角にしてからEditor側のモニターに戻るとなおります。

2.3.3以降の症状はいまのところおきてません。(インライン入力がなんなのかちょっとわかってないですが)
ただ、2.3.4にしたときに日本語入力関係なく入力関連のラグがあったのは感じました。

31

現行のv2.3.4.580で治りました。
とりまひとあんしん。

3

IME周りがどんどん悪化してますね
IME関係の問題を直そうといじってる途中、ということであればいいのですが。
https://forum.yoyogames.com/index.php?threads/2-3-5-beta-release.89261/#post-536274

14
yakata 2021/09/19 (日) 00:28:47

そうみたいです!
どうやってパーティクルのdepthを調整できるかはこれから考えますが大きく前進しましたありがとうございました!