おお!
Peyton Burnham https://www.youtube.com/channel/UCfh2Q3TsvlxM1S2GvXQ4eeQ 最近RPG作るシリーズが始まりました(初心者向けらしい)。
roomeditorで選択した箇所にメモを置く機能がくっそほしい
お!そうなんですね!
これ便利ですよね! ちなみに、フォルダ部分を右クリックで、カラーピッカーだけ表示することもできますよ('ω')
いいですね。大事にしたいです。
2.3になってからルーラーとか9スライスとか便利な機能がドサドサ追加されててうれしいですねぇ('ω')
知らなかった!助かります!😄
コードエディタで、enumにカーソルを乗せた時に値をバルーン表示して欲しい
ver2.3にはルーラーがあるんですね。 4月中にはバージョンアップするんだ……
リソースツリーから直接サウンドリソースを鳴らして聴きたい。
コンパイルがエラーなどで止まった時にアラート音を鳴らす機能が欲しい。
リソースツリーで、右クリックメニューに「グループに移動」機能が欲しい
共有ありがとうございます!イマイチwithとの併用がわからなくて自分のノートとにらめっこしていたのですが、asaさんの説明でやっと要領を得ました!otherが参照していたのはwithの外側のコードだったということを理解できてなったようです😳
otherは特定のインスタンスを参照するキーワードで、 使う場面によって参照するものが変わり、使い方が変わります。
withブロックの中で使った場合 withブロックの外側のコードを実行しているインスタンスを参照します。 instanceAで下記のコードを実行した場合、instanceB.nameは"taro"になります。
name = "taro"; with (instanceB) { name = other.name; }
collisionイベントの中で使った場合 otherは衝突した相手のinstanceを参照します。 例えば、obj_playerのobj_enemyとのcollisionイベントでのotherは、playerと衝突したenemyインスタンスを参照します。 下記コードはplayerのhpからenemyのdamage値がマイナスされます。
hp -= other.damage
というのが私の理解です(collisionイベントは使わないのでよく知りませんが)。
room上でtile編集とかできたらなあ
Animation EndやOutside Roomなど、それぞれのイベントに相当するような関数を用意して欲しい。
Updateイベントの中で
if (animation_end()) { // do something } if (outside_room()) { // do something }
のような記述が出来るようにanimation_end()やoutside_room()のような関数があったら便利だと思うので。
animation_end()
outside_room()
今後、ロシア語や中国語などの言語がIDEでサポートされるらしいけど、日本語も公式でサポートして欲しい
文字列の置換機能だけだと何かと不便なので、Visual Studioとかにあるようなシンボル(変数名や関数名など)の一括リネーム機能が欲しい
!! 解決しました!ありがとうございました! また活用させていただきます
プロジェクトのファイル数を少なくしてほしい。 今の仕様ではファイルとフォルダがどんどん増えてすぐ数万になる。 バックアップするのも大変になってしまった。
ファイル読み込みの部分がうまくいってないようですね。
GMSのファイル読み書きのデフォルトのパスは確か C:\Users\UserName\AppData\Local\ProjectName\ ですのでここにファイルがある必要があります。
ここにtext.txt(UTF-8で保存したもの)を置いて、これが動くか試してみてください。
var _file = file_text_open_read("text.txt"); var _str = file_text_read_string(_file); show_debug_message("_str="+string(_str)) file_text_close(_file);
正しく読み込まれて動作すればこうなります。
ゲームからファイルを作成し、書き込み読み込みをする処理の場合はこれでいいと思います。 (ゲームのコンフィグデータなど)
ですが、シナリオのテキストは予め自分で作ったテキストファイルをゲームに付属させる形になると思います。 ゲームを配布する時に、ユーザーのPCにこれをどうやって配置すればいい?となりますよね。 プロジェクトにファイルをインクルードすることで実現できます。
リソースツリーのところからファイルをインクルードすると、プロジェクトのフォルダ内にdatafilesというフォルダが作られ、そこにファイルがコピーされます。これで完了。開発環境でも動くし配布したゲームも動くはずです。テキストを編集する際はdatafilesにあるファイルを編集してください。
配布するゲームをビルド(Ctrl+F8)すると、このファイルはexeファイルと同じ場所に付属する形でコピーされるはずです。やってみてください。
ゲームを遊ぶユーザーから見ると、exeファイルがある場所にtext.txtがあるので開けば見たり編集できます。それをできにくくするなら暗号化したりという手段があります。それも解読不可能では無いと思うので、絶対見られたくないならシナリオテキストもプロジェクトのコード内に書く形にするしか無いのかなと思います。その場合でもリバースエンジニアリングで読まれる可能性は残ります。
私が書けるのはこんな感じで、「よく分からないがこうすると動く」的なことだけです。 コンピュータ、GMSのファイルI/Oについて、詳しい方からの解説を待ってます! (サンドボックスとは?など私もちゃんと理解したい)
ご丁寧にありがとうございます。 細分化の考え方 非常に勉強になりました。
NPCの近くでSPACEキーを押すとシナリオが流れる機能と、全てのシナリオが終わるまでプレイヤーのスピードを0にしてキー受付を中断する簡単なポーズ機能は実装できました。 ですが各NPCにシナリオを割り当てる方法しか実装できず、色々調べてみたのですがテキストファイルを開いて配列に代入する方法がわかりませんでした。 シナリオはテキストファイルに一括で管理するイメージなので教えていただけるとありがたいです。
file_open_read()で開きfile_text_read_string()で配列に代入してfile_close()で閉じる流れはわかるのですが、テキストファイルの位置を指定してもファイルを開く関数でエラー(-1)が出てしまいます。
コード(NPCオブジェクトのcreateイベント内に記述しています) fid = file_text_open_read("text.txt"); show_debug_message(fid); str[0] = file_text_read_string(fid); file_text_readln(fid); str[1] = file_text_read_string(fid); file_text_close(fid);
エラー文 ERROR!!! :: Failed to open file: text.txt -1 ERROR!!! :: ERROR in action number 1 of Create Event for object oNPC2:
File is not opened for reading. at gml_Object_oNPC2_Create_0 (line 7) - str[0] = file_text_read_string(fid);
todoリストの機能をつけてほしいです。ただのtodoリストでもいいんですが、エディタ側にtodoのマーキングが出来て、todoリストからソースの該当箇所まで飛べたらさらにヨシです。
IMEをオンにするとショートカットが効かなくなる不具合を直してほしい。 (IMEをオフにして一度他のソフトの窓にフォーカスを移して戻ると直る)
日本語フォントの表示が荒れる問題を改善してほしい。 (何が原因か分からない。サイズ指定の問題?フォント固有の問題?しかしGMSだけで見られる諸問題)
code editorで日本語フォントの表示がおかしい不具合を改善してほしい。
windows環境ならAutohotKeyってユーティリティーソフトで、強制的にショートカット自作できます。 が、オフィシャルで機能付く方が圧倒的にスマートなんで、ついてほしいですねぇ。
room editorでの拡大率の表示。 あと100%, 200%とか切りの良い拡大縮小。
スペースとタブの違いを無視(数も無視)しての検索
リソースツリーのグループを指定しての検索
変数の参照の検索
ほしい
キーボードショートカットのカスタマイズ機能が欲しい(´_ゝ`)
IDEのUIで、検索窓のサイズと位置を記憶して欲しい。 IDEのUIで、Workspace Overview(Ctrl+Tabで出るやつ)のサイズと位置を記憶して欲しい。
どこまで出来ているのかが分からないので、もしすでに出来ていることならすみません。 まずこういうシンプルなものを作ってみてはどうでしょうか。
▲画面にhello!と表示するだけ。 それができたら、 Spaceキーを押したらhello!と出す動きにする。 それができたら、 Spaceキーを押すごとに、hello!→good!→tank you! とテキストを順に表示する動きを実装する。
それができたら、キャラクターを動かす部分と「NPCの近く」の判定を実装。
自キャラを矢印キーで動かし、NPC(移動はしない)の近くでSpaceキーを押すとテキストを表示する。
このように、要素を切り分けて1つずつ実装していってみるのをおすすめします。 そうすると何が出来て何ができないのかも分かると思います。
その動作を実装するためにはいろいろな要素が関わってくるので、まず切り分けて考えてみます。
(1)はpoint_distance()などで判定できます。
(2)のゲームポーズは、これだけで1つの大きなテーマになり得ます。ポーズ中のフラグでオブジェクトの処理をスキップさせる、ポーズの瞬間の画面を静止画で表示しその間オブジェクトを非アクティブにする、など複数の実現方法が考えられます。ポーズと言っても完全に全てを止めるのか一部だけを止めるのかなどいろいろあるので、どういうものを作りたいのか具体的に仕様をまとめるといいと思います。
(3)外部ファイルから読み込む方法も複数あります。file_text_read_string()でもいいと思いますし、JSONに対応することもできます。"read text file gamemaker"、 "dialogue system gamemaker"などで検索するといろいろ出てきます。
(4)表示はdraw_text()でいいと思います。「1行ずつ」を実現するには、これもいろいろ方法があるでしょうが、配列に1行ずつテキストを保持し、現在の行を保持する変数を作り、Drawイベントで現在の行のテキストを表示、ボタンで行を送れるようにする、という形でいいと思います。
できるだけ要素を区切って考えて、1つずつ個別に実装してみてください、そしてうまくいかなければ その部分のコードをここに貼って質問もらえれば具体的な回答を得られると思います。
質問があるとこの掲示板が活発になり、他のgamemakerユーザーにも役立ちますので大変ありがたいです。 遠慮せず気軽にどしどし質問してください。 誰かが何かかしら教えてくれると思います!
ついでに似たやつ。プロジェクトのとっかかりに配置バランスを見たりするのに使います。
/// @description draw_center_v_line(view_number,color) /// @param view_number /// @param color /*=============================================================================== ビューのヨコ中央にタテ線を描画するためのスクリプト。 引数に対象となるビューの番号と色を入れる。 色は c_XX でビルトイン定義されているものか、make_color_rgb() で定義したものを使う。 ※別スクリプト、cener_xpos()が必要 ================================================================================*/ function draw_center_v_line(argument0, argument1){ var view_number = argument0; var color = argument1; var line_thickness = 1; //垂直ラインの線幅 var xpos = center_xpos(view_number, line_thickness); draw_line_width_color(xpos, 0, xpos, view_get_hport(view_number), line_thickness, color, color); }
上に書いたビューのX方向(ヨコ方向)の真ん中を返すスクリプト、念の為argumentを使うように直しておきます。おかしくなるかもしれないので。(そういうので引っかかることありますよねえ)
/// @description center_xpos(view_number, drawing_width) return center x-position. /// @param view_number /// @param drawing_width /*=============================================================================== 描画の対象となるビューのX方向(ヨコ)の中央にスプライトやテキストを描画するための X座標を返すスクリプト。引数に対象となるビューの番号と描画対象物の横幅を入れる。 ================================================================================*/ function center_xpos(argument0, argument1){ var view_number = argument0; var drawing_width = argument1; var xpos = view_get_wport(view_number) /2 - drawing_width /2 return xpos; }
どんどんできるようになる感覚を楽しんで!
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
おお!
Peyton Burnham
https://www.youtube.com/channel/UCfh2Q3TsvlxM1S2GvXQ4eeQ
最近RPG作るシリーズが始まりました(初心者向けらしい)。
roomeditorで選択した箇所にメモを置く機能がくっそほしい
お!そうなんですね!
これ便利ですよね!
![画像1](//pic.zawazawa.jp/files/gamemaker_jp/9ffd8237cd3ab.png)
ちなみに、フォルダ部分を右クリックで、カラーピッカーだけ表示することもできますよ('ω')
いいですね。大事にしたいです。
2.3になってからルーラーとか9スライスとか便利な機能がドサドサ追加されててうれしいですねぇ('ω')
知らなかった!助かります!😄
コードエディタで、enumにカーソルを乗せた時に値をバルーン表示して欲しい
ver2.3にはルーラーがあるんですね。
4月中にはバージョンアップするんだ……
リソースツリーから直接サウンドリソースを鳴らして聴きたい。
コンパイルがエラーなどで止まった時にアラート音を鳴らす機能が欲しい。
リソースツリーで、右クリックメニューに「グループに移動」機能が欲しい
共有ありがとうございます!イマイチwithとの併用がわからなくて自分のノートとにらめっこしていたのですが、asaさんの説明でやっと要領を得ました!otherが参照していたのはwithの外側のコードだったということを理解できてなったようです😳
otherは特定のインスタンスを参照するキーワードで、
使う場面によって参照するものが変わり、使い方が変わります。
withブロックの中で使った場合
withブロックの外側のコードを実行しているインスタンスを参照します。
instanceAで下記のコードを実行した場合、instanceB.nameは"taro"になります。
collisionイベントの中で使った場合
otherは衝突した相手のinstanceを参照します。
例えば、obj_playerのobj_enemyとのcollisionイベントでのotherは、playerと衝突したenemyインスタンスを参照します。
下記コードはplayerのhpからenemyのdamage値がマイナスされます。
というのが私の理解です(collisionイベントは使わないのでよく知りませんが)。
room上でtile編集とかできたらなあ
Animation EndやOutside Roomなど、それぞれのイベントに相当するような関数を用意して欲しい。
Updateイベントの中で
のような記述が出来るように
animation_end()
やoutside_room()
のような関数があったら便利だと思うので。今後、ロシア語や中国語などの言語がIDEでサポートされるらしいけど、日本語も公式でサポートして欲しい
文字列の置換機能だけだと何かと不便なので、Visual Studioとかにあるようなシンボル(変数名や関数名など)の一括リネーム機能が欲しい
!!
解決しました!ありがとうございました!
また活用させていただきます
プロジェクトのファイル数を少なくしてほしい。
今の仕様ではファイルとフォルダがどんどん増えてすぐ数万になる。
バックアップするのも大変になってしまった。
ファイル読み込みの部分がうまくいってないようですね。
GMSのファイル読み書きのデフォルトのパスは確か
C:\Users\UserName\AppData\Local\ProjectName\
ですのでここにファイルがある必要があります。
ここにtext.txt(UTF-8で保存したもの)を置いて、これが動くか試してみてください。
正しく読み込まれて動作すればこうなります。
![画像1](//pic.zawazawa.jp/files/gamemaker_jp/98b7ae324de22.png)
ゲームからファイルを作成し、書き込み読み込みをする処理の場合はこれでいいと思います。
(ゲームのコンフィグデータなど)
ですが、シナリオのテキストは予め自分で作ったテキストファイルをゲームに付属させる形になると思います。
ゲームを配布する時に、ユーザーのPCにこれをどうやって配置すればいい?となりますよね。
プロジェクトにファイルをインクルードすることで実現できます。
リソースツリーのところからファイルをインクルードすると、プロジェクトのフォルダ内にdatafilesというフォルダが作られ、そこにファイルがコピーされます。これで完了。開発環境でも動くし配布したゲームも動くはずです。テキストを編集する際はdatafilesにあるファイルを編集してください。
配布するゲームをビルド(Ctrl+F8)すると、このファイルはexeファイルと同じ場所に付属する形でコピーされるはずです。やってみてください。
ゲームを遊ぶユーザーから見ると、exeファイルがある場所にtext.txtがあるので開けば見たり編集できます。それをできにくくするなら暗号化したりという手段があります。それも解読不可能では無いと思うので、絶対見られたくないならシナリオテキストもプロジェクトのコード内に書く形にするしか無いのかなと思います。その場合でもリバースエンジニアリングで読まれる可能性は残ります。
私が書けるのはこんな感じで、「よく分からないがこうすると動く」的なことだけです。
コンピュータ、GMSのファイルI/Oについて、詳しい方からの解説を待ってます!
(サンドボックスとは?など私もちゃんと理解したい)
ご丁寧にありがとうございます。
細分化の考え方 非常に勉強になりました。
NPCの近くでSPACEキーを押すとシナリオが流れる機能と、全てのシナリオが終わるまでプレイヤーのスピードを0にしてキー受付を中断する簡単なポーズ機能は実装できました。
ですが各NPCにシナリオを割り当てる方法しか実装できず、色々調べてみたのですがテキストファイルを開いて配列に代入する方法がわかりませんでした。
シナリオはテキストファイルに一括で管理するイメージなので教えていただけるとありがたいです。
file_open_read()で開きfile_text_read_string()で配列に代入してfile_close()で閉じる流れはわかるのですが、テキストファイルの位置を指定してもファイルを開く関数でエラー(-1)が出てしまいます。
コード(NPCオブジェクトのcreateイベント内に記述しています)
fid = file_text_open_read("text.txt");
show_debug_message(fid);
str[0] = file_text_read_string(fid);
file_text_readln(fid);
str[1] = file_text_read_string(fid);
file_text_close(fid);
エラー文
ERROR!!! :: Failed to open file: text.txt
-1
ERROR!!! ::
ERROR in
action number 1
of Create Event
for object oNPC2:
File is not opened for reading.
![画像1](//pic.zawazawa.jp/files/gamemaker_jp/s/1d9334a7ab638.png)
at gml_Object_oNPC2_Create_0 (line 7) - str[0] = file_text_read_string(fid);
todoリストの機能をつけてほしいです。ただのtodoリストでもいいんですが、エディタ側にtodoのマーキングが出来て、todoリストからソースの該当箇所まで飛べたらさらにヨシです。
IMEをオンにするとショートカットが効かなくなる不具合を直してほしい。
(IMEをオフにして一度他のソフトの窓にフォーカスを移して戻ると直る)
日本語フォントの表示が荒れる問題を改善してほしい。
(何が原因か分からない。サイズ指定の問題?フォント固有の問題?しかしGMSだけで見られる諸問題)
code editorで日本語フォントの表示がおかしい不具合を改善してほしい。
windows環境ならAutohotKeyってユーティリティーソフトで、強制的にショートカット自作できます。
が、オフィシャルで機能付く方が圧倒的にスマートなんで、ついてほしいですねぇ。
room editorでの拡大率の表示。
あと100%, 200%とか切りの良い拡大縮小。
スペースとタブの違いを無視(数も無視)しての検索
リソースツリーのグループを指定しての検索
変数の参照の検索
ほしい
キーボードショートカットのカスタマイズ機能が欲しい(´_ゝ`)
IDEのUIで、検索窓のサイズと位置を記憶して欲しい。
IDEのUIで、Workspace Overview(Ctrl+Tabで出るやつ)のサイズと位置を記憶して欲しい。
どこまで出来ているのかが分からないので、もしすでに出来ていることならすみません。
まずこういうシンプルなものを作ってみてはどうでしょうか。
▲画面にhello!と表示するだけ。
それができたら、
Spaceキーを押したらhello!と出す動きにする。
それができたら、
Spaceキーを押すごとに、hello!→good!→tank you! とテキストを順に表示する動きを実装する。
それができたら、キャラクターを動かす部分と「NPCの近く」の判定を実装。
自キャラを矢印キーで動かし、NPC(移動はしない)の近くでSpaceキーを押すとテキストを表示する。
![画像1](//pic.zawazawa.jp/files/gamemaker_jp/778ffa0562784.png)
このように、要素を切り分けて1つずつ実装していってみるのをおすすめします。
そうすると何が出来て何ができないのかも分かると思います。
その動作を実装するためにはいろいろな要素が関わってくるので、まず切り分けて考えてみます。
(1)はpoint_distance()などで判定できます。
(2)のゲームポーズは、これだけで1つの大きなテーマになり得ます。ポーズ中のフラグでオブジェクトの処理をスキップさせる、ポーズの瞬間の画面を静止画で表示しその間オブジェクトを非アクティブにする、など複数の実現方法が考えられます。ポーズと言っても完全に全てを止めるのか一部だけを止めるのかなどいろいろあるので、どういうものを作りたいのか具体的に仕様をまとめるといいと思います。
(3)外部ファイルから読み込む方法も複数あります。file_text_read_string()でもいいと思いますし、JSONに対応することもできます。"read text file gamemaker"、 "dialogue system gamemaker"などで検索するといろいろ出てきます。
(4)表示はdraw_text()でいいと思います。「1行ずつ」を実現するには、これもいろいろ方法があるでしょうが、配列に1行ずつテキストを保持し、現在の行を保持する変数を作り、Drawイベントで現在の行のテキストを表示、ボタンで行を送れるようにする、という形でいいと思います。
できるだけ要素を区切って考えて、1つずつ個別に実装してみてください、そしてうまくいかなければ
その部分のコードをここに貼って質問もらえれば具体的な回答を得られると思います。
質問があるとこの掲示板が活発になり、他のgamemakerユーザーにも役立ちますので大変ありがたいです。
遠慮せず気軽にどしどし質問してください。
誰かが何かかしら教えてくれると思います!
ついでに似たやつ。プロジェクトのとっかかりに配置バランスを見たりするのに使います。
上に書いたビューのX方向(ヨコ方向)の真ん中を返すスクリプト、念の為argumentを使うように直しておきます。おかしくなるかもしれないので。(そういうので引っかかることありますよねえ)
どんどんできるようになる感覚を楽しんで!