ツクールVX Ace 初心者救済、質問スレ Part.4
その辺は素材弄りの領分 Window.pngをRTPからコピーしてゲームフォルダのSystemフォルダにペースト 適当な画像編集ソフトで右上の枠を弄れば色も形も変える事が出来る できました!Windowの枠! あと知りたいのがメニュー画面のレイアウトなんですが、そこはスクリプトをいじる感じみたいなんですけど どこをどういじったらいいのかわかんないです(´;ω;`)ウゥゥ スクリプト入門実践編の「タイトル画面の改造」まで修めれば応用でメニュー画面の改造も出来ると思う 問題の答えを教えるのは簡単だけど初歩の内は解き方を覚えた方が良い 横着しても結局どこかで詰まるだけだな セーブ画面の顔グラフィックの位置を少し右にずらすように変更したいのですが、 どうすればいいかわからなかったので質問してもいいでしょうか? #-------------------------------------------------------------------------- # ● セーブファイル表示用の顔グラフィック画像情報 #-------------------------------------------------------------------------- def faces_for_savefile battle_members.collect do |actor| [actor.face_name, actor.face_index] end end end 随分質問をハショるね。つまり @セーブファイルのヘッダ情報をパーティのキャラクター描画から顔グラフィック描画に A更に、右に少しずらして描くには って事? 顔グラフィック描画の時点でデフォルトにないからそこから質問してくれ で、改造ポイントの着目点に関しては悪くはない @.Game_Party#faces_for_savefileの追加 class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● セーブファイル表示用の顔グラフィック画像情報 #-------------------------------------------------------------------------- def faces_for_savefile battle_members.collect do |actor| [actor.face_name, actor.face_index] end end end A.次にCTRL+SHIFT+Fで全文検索して「characters_for_savefile」が使われていた部分に記録の追加 B.基本的にツクールのスクリプト制作はプリセットスクリプトを直接改造せずに (ここから追加)以下のセクションでメソッドの上書きをするんだけどマネージャメソッドのエイリアスは少し特殊で class << DataManager #-------------------------------------------------------------------------- # ● セーブヘッダの作成 #-------------------------------------------------------------------------- alias :_old_make_save_header :make_save_header def make_save_header header = _old_make_save_header header[:faces] = $game_party.faces_for_savefile header end end と書いてセーブヘッダ情報の中に顔グラフィックの情報も盛り込む C最後にWindow_SaveFile#refreshの変更 class Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh contents.clear change_color(normal_color) name = Vocab::File + " #{@file_index + 1}" draw_text(4, 0, 200, line_height, name) @name_width = text_size(name).width draw_party_faces(152, 58) draw_playtime(0, contents.height - line_height, contents.width - 4, 2) end end D後は自分でWindow_SaveFile#draw_party_facesの内容を考えてくれ draw_faceってメソッドもあるから内容はdraw_party_charactersとほとんど変わらない なんとかできました!ありがとうございます! もう一つ質問いいですか? メニュー画面の顔グラフィックとセーブ画面の顔グラフィックを違うものに変更して メニュー画面の顔グラフィックを顔だけじゃなくて全身に変更する方法はありますか? またメニュー画面のアクターの名前のところを横表記ではなくて縦表記にする方法などは ヘルプを見たらわかりますか? 全身画像はメニュー画面の完全改造になるけどbltコマンド使ってcontentsにコピーとか テキストの縦書きはデフォじゃ用意されてない そのくらいならあらかじめ画像で用意して上と同じ方法でbltした方が良い Pictureフォルダに画像を用意して class Window_Test < Window_Base def initialize super(0, 0, 200, 200) contents.clear bitmap = Cache.picture("Bustup") contents.blt(0, 0, bitmap, bitmap.rect) end end とか実行すればウィンドウのcontents内に画像が転送される Pictureフォルダに画像を用意はできました! class Window_Test < Window_Base def initialize super(0, 0, 200, 200) contents.clear bitmap = Cache.picture("Bustup") contents.blt(0, 0, bitmap, bitmap.rect) end end のほうも実行できたと思うのですが何の変化もないです! どのスプリクトを変更したらいいでしょうか、? ただのサンプルコードだからな 顔グラフィックを全身画像にするって事はもうパーティ4人分の情報を描画するのではなくほぼ一人用のメニューに改造するって事だろ? この辺は正確な画面UIに応じて細かい調整しなきゃいけないから具体的な事は言えないが、あくまでサンプルとして class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh contents.clear bitmap = Cache.picture("Bustup") contents.blt(0, 0, bitmap, bitmap.rect) end end とか書けば既存のメニューのステータス情報は全て無くなって全身画像だけ表示される 表示原点は0, 0(左上) contentsっていうのは言わばキャンバスだから好きな情報を書き込めば良い むずかしいですね!一応四人は入れる分の枠は入れるようにしたいのですが、 問題の全身画像がわからなかったです、 全身用の画像を持ってきて入れたいのですが全部顔グラフィックになってしまします デフォルトのウィンドウサイズ(544*416)を基準にすると その内のメニューステータスウィンドウのサイズが(384 * 416) padding(枠の太さ)は基本12だからcontentsのサイズは一回り小さい(360 * 392) それを横に四分割すると(360 * 98) 顔グラフィックのサイズは一辺96だから本当にデフォルトだと高さがギリギリなんだよ これを4人分の表示領域のまま顔グラフィックを全身画像に変えたいって画面UIが想像出来ない どう考えてもはみ出るだろう 96*96に収まる全身画像なら顔グラフィック規格に当て嵌めろって話だし これ以上アドバイス欲しいなら画面配置図でも描いて上げてくれ こんなかんじです! こんなかんじです! そっちを先に言ってくれ。つまり縦表示から横表示に変えると Window_MenuCommandやWindow_MenuStatusのサイズや位置調整方法は簡単だからとりあえず省くけど まず縦から横に変える方法は class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 桁数の取得 #-------------------------------------------------------------------------- def col_max return 4 end end 詳しい説明は省くけどデフォルトでは桁数1になってるから桁数4に変更 で、表示領域あたりの描画は class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 項目の描画 #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled) draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2) end end この部分でやっている。下二つのdraw_actor_XXって部分を消せば白紙になる とりあえず対応ピクチャファイル名はBustup_(アクターID).pngとか(例:Bustup_1.png)で保存しておいて class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● アクターのバストアップグラフィックの描画 #-------------------------------------------------------------------------- def draw_actor_bustup(actor, rect, enabled) dst_center_x = rect.x + rect.width / 2 dst_center_y = rect.y + rect.height bitmap = Cache.picture("Bustup_#{actor.id}") x = dst_center_x - (bitmap.rect.width / 2) y = dst_center_y - bitmap.height contents.blt(x, y, bitmap, bitmap.rect, enabled ? 255 : translucent_alpha) end end をdraw_actor_faceの代わりに入れれば反映されるはず 引数をx, yからrect引き渡しに変更している点に注意 全部変えてみたのですが 以下のとうりになりました!あとできていないのがバストアップの画像の表示みたいです! 私の設定のミスの可能性がありそうです、 なぜかこのアクターどっとマップからの変更ができません! 桁数の変更はcol_maxだけじゃ足らないな class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 桁数の取得 #-------------------------------------------------------------------------- def col_max return 4 end #-------------------------------------------------------------------------- # ● 項目の高さを取得 #-------------------------------------------------------------------------- def item_height height - standard_padding * 2 end end この二つを変えないとダメだった それとバストアップ画像の変更が出来ない、と。見た感じ顔グラフィックがそのまま表示されてるって事? 答えを言っちゃえばこれで既存の描画項目は消えて、 各バストアップ画像だけ表示されるはずだけど上書きするところ間違えてないか? あるいは再度上書きしているか class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 項目の描画 #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_actor_bustup(actor, rect, enabled) end end 一応基本的なデバッグ方法としてp命令がある ツクール本体のツールバー「ゲーム(G)」>「コンソールの表示(C)」でコンソール画面を出せる この状態でp "処理完了"とか書けばそのメソッドが本当に実行されたのか確かめる事が出来る #-------------------------------------------------------------------------- # ● アクターのバストアップグラフィックの描画 #-------------------------------------------------------------------------- def draw_actor_bustup(actor, rect, enabled) dst_center_x = rect.x + rect.width / 2 dst_center_y = rect.y + rect.height bitmap = Cache.picture("Bustup_#{actor.id}") x = dst_center_x - (bitmap.rect.width / 2) y = dst_center_y - bitmap.height contents.blt(x, y, bitmap, bitmap.rect, enabled ? 255 : translucent_alpha) p "バストアップ描画完了" end とか書いて本当に処理が実行されたのか確認してくれ 起動時に一緒にコンソールは出ましたがpを押しても反応しません!(´;ω;`) #-------------------------------------------------------------------------- # ● アクターのバストアップグラフィックの描画 #-------------------------------------------------------------------------- も追加して class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 項目の描画 #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_actor_bustup(actor, rect, enabled) end end も入れ替えたのですが 変わらないままです(´;ω;`) じゃそもそも実行されてないんだろ ところどころ分かっていて当然と思う所は説明ハショっているから、どこかで認識の齟齬が発生している ツクールのプラグイン素材(スクリプト素材)っていうのは既存の処理の上書きが基本になっている 例えば既存のメソッド def test p "テスト実行" end があったとして(ここに追加)以降のセクションに def test p "拡張版テスト実行" end と記述すれば以降のtestメソッドは後者に置き換えられる これと同じで>>28 以降にdef draw_item(index)を上書きして実行されてない可能性が高い 時間はかかるかも知れないが p "処理通過"を書きまくってどこまでが動いて、どこから動いていないのか境界線を究明すれば原因が分かるよ あーあと一応言っておくけど 2chの仕様で行頭の半角スペースが非表示になっているだけだからインデント(字下げ)は徹底してくれ ポップアップ表示で見れば省略されただけなのか、元の文章から書いてないのか分かる クラスの中、メソッドの中、if文の中等プリセットスクリプトの書式に合わせて必ず2文字分の半角スペースで下げる事 可読性はコードを見返す上でとても重要だ p "処理通過"をどこにかきまくればいいですか?! 今更聞き直すのもなんだが(ここから追加)以下のセクションに自作スクリプト書いてるんだよな? 添削してあげるからCTRL+A,CTRL+Cで全文コピペして適当なtxtファイルに保存 GoogleDriveでもgithubでもAxfc Uploaderでも良いから適当なアップローダに上げてくれ 全部(ここから追加)ではないです! 項目の追加とかは上書きしちゃいました、! いま(ここに追加)に置いているものを張っていきます! 思ったよりもまとも、と思ったけどcodecrushさんのスクリプト素材を改造していたのか Window_HorzMenuStatusを新しく定義している上にステータス表示メソッドもかなり弄ってんのね rectやenabledフラグを削ってんなら普通にx, y指定に調整し直した方がいいな どうせ全身画像のサイズ規格は全て同じだろうし、x,yの微調整は自分でやってくれ https://drive.google.com/file/d/1bbjymGvapeFS3NIC3NBD6wtavOMV90R4/view?usp=sharing 俺はちょっと特殊な方法で別のスクリプトエディタを利用しているけど もしもツクールデフォルトのスクリプトエディタ(F11)を使っているのならコメントアウトはCTRL+Qを使った方が良い 有効・無効をワンタッチで切り換える事が出来るし複数行の指定も可能 >xとyの調整ってどうしたらいいんですか?! draw_actor_bustup(actor, x, y + 60) ここで第二引数、第三引数の調整 >またBustup_1の画像が謎の枠で下半身が消えたりします! 下のマップ名表示ウィンドウから12ピクセル上で途切れてるなら仕様 ウィンドウ枠や背景を透明化しているだけで、実際は中央にも大きなウィンドウがあってそこに情報を書き込んでいる だからその範囲外を超えて描画される事はない どうしてもというのなら描画範囲を拡大する事も出来るけど、気になるだけなら画像の位置調整で対応してくれ >あと左名前が映るのでけしたいと思っています! draw_actor_name( actor, x, y + line_height * 0, width) の削除、またはコメントアウト できればBustup_1の描画範囲を拡大を行いたいのですが 他のスプリクトが必要になってきますか? よくよく見たら元スクリプトの方ではwindow#opacityは255のままだな 他の箇所で透明度変更してるのか とりあえずstandard_padding(枠描画の為の余白)を削れば描画範囲は拡大されるが それ以前に下のゴールド表示ウィンドウとマップ名表示ウィンドウは使用する予定なのか? 描画が被るとかなり見づらくなるが必要ないなら取っ払った方が早いな 下のゴールド表示ウィンドウとマップ名表示ウィンドウは消しました! standard_paddingを削ると急に画像が映らなくなりました! 元のスクリプトがよく分からない処理をしているな… 下のウィンドウを両方削るならstandard_paddingじゃなくて #-------------------------------------------------------------------------- # ● ウィンドウ高さの取得 #-------------------------------------------------------------------------- def window_height Graphics.height - @top_y - fitting_height(1) end のfitting_height(1)を削るだけで良い HPの増減をトリガーにしてコモンイベントを起こすことってできませんか? 敵のHPをゲージで表示しようとしてるのですがターン終了後ではなくHPが減ったと同時にゲージも減らしたいのです 全部の攻撃スキルにコモンいれればいいんじゃないの? >>43 敵のHPゲージを表示するのは既存のスクリプトでは何か問題あったの? 「VXAce 敵 hp表示」で検索すればそれなりに出てくると思う。 それで出来ないことがあって独自に作りたいならまた相談に乗る。 >>44 それだと攻撃コマンドに対応できないかなあと >>45 ピクチャーの上にHPバー表示させたいのです >>46 これじゃだめなんか? 多分中身をぱっと見る限り、敵のグラフィックのサイズを読み取って敵のグラフィックの上の中央を原点にして表示してくれてるっぽい http://blog.livedoor.jp/kuremente-rgssscript/archives/42815838.html >>47 ありがとうございます でもこれだとHPゲージがピクチャに隠れてしまうのです >>48 えーと、敵のピクチャとは別になんかピクチャを表示させてて、それに隠れちゃうってこと? >>50 それだとコモンイベントとかの問題じゃない viewportの問題 内容さっぱり分かんねーなら読み飛ばしていいから最後の部分だけ見て ゲーム内の画像とか、メッセージを表示するウィンドウはviewportっていうものを持ってて、その中のzって数字の昇順に内容を表示してる 例えば100のzを持つHPゲージと200のzを持つピクチャを同時に表示させると、HPゲージの上にピクチャが表示されてしまってHPゲージが隠れるわけ 基本、バトル中にイベントコマンドもしくはスクリプトで画像を表示しようとした場合「$game_troop.screeen.pictures[任意の数字].show」という変数を弄ることになる ここでそれぞれ登場したワードを説明すると $game_troop:戦闘で敵に関するデータが集まったもの screen:画面の状態のデータが集まったもの picture:画像のデータ 「$game_troop.screen.picture」で戦闘に関するデータの中で画面上の画像のデータ、という意味になる んで、↑のはSpriteset_Battleという所で全て@viewport2という変数を使われている @viewport2.zの値は50なので、それが全てのピクチャの表示の優先度というわけになる んで敵キャラのスプライトは全て@viewport1で作られてて、@viewport.zの値は設定されてないので0となる ここからが本題なんだけどだいたいのバトル中にHP表示を行うプラグインはviewportに敵キャラの画像と同じ@viewport1を使用してるからピクチャを表示させるとピクチャの後ろに敵とHP表示が隠れてしまう それを解決するには、HP表示を行っているviewport.zピクチャより優先されれば良いので@viewport3をHP表示に使えばいい というのがプログラムのお話で、良く分からなかったら↓のテキストファイルをそのまま貼り付けて ##########ここを切り替える!!!!########## って書いてある所の#を上から下に付け替えて@viewport1を使ってるSprite_Infobar.newを無効にして@viewport3を有効にすればいい https://drive.google.com/file/d/1WZJ_ySySDQ5XCjWskH6c94H96fr2YB_n/view?usp=drivesdk ↑のはkureって人のスクリプトを流用して改変してるからもし作品として世に出すなら以下の利用規約を参照すること Readmeに著作権表記をするとか大事なのでよろしくな http://blog.livedoor.jp/kuremente-rgssscript/archives/1683467.html >>51 おおおおおおおおお ありがとうございます! SE再生して、その再生が終了するまでウェイトかけたいんですが ウェイトフレームの設定ではなく Fiber.yieldを使う感じで出来たりしないんでしょうか? マップのスクロールのウェイトだとこうやるみたいなんですが SE再生では同じようにやるにはどうしたらいいのかわからないです Fiber.yield while $game_map.scrolling? >>53 かなり難しい 何でかっていうと、その$game_mapってやつはグローバル変数(いつでもどこでも呼び出せる変数)で、いつ呼び出されてもいいように常に準備がされている よって「今スクロールしてる?」みたいな質問に応えられるような受け口を作ることができるし実際に作られている 逆にBGSはAudio.se_playってので動いてるんだけど、これが上の$game_mapみたいに変数として定義して使えるclassじゃなくてmoduleってのでできてるし、しかもそれが組み込みモジュールっていうのでスクリプトエディタから触ることができない >>54 なるほど・・・ SEの長さからフレーム数計算して 普通にウェイトかけるほうが無難ですね ありがとうございます スキル使用時またはコモンイベント、スクリプトでTPを下げる方法 または敵の攻撃によってTPを下げる方法はないでしょうか TP0のときでも使用できるようにしたいのでスキルにTP消費設定では不適当なのです ちなみに $game_actors[1].tp += 50 というスクリプトを見つけたのですがこれはエラー出ました 「スクリプト game_interpreter の1409行目でname errorが発生しました」 となります 新規プロジェクト作ってその方法やってもエラー出ないから何か誤字ってんじゃない? >>56 まずエラー出力スクリプトを導入することをお勧めする グーグルが自動翻訳してるかもしれんから内容が変な感じだったら英語翻訳に変えてからコピペしてくれ https://www.tktkgame.com/tkool/vxa/rgss3/errlog_vxa.txt これを入れた上でエラー情報書いてくれればなんかわかるかもしれん >>57 もう一度入れてみたらできました 凡ミスで申し訳ない お前ら和歌山県出身の下村拓郎様(35歳、元自衛隊)をご存知か、この方は将来素晴しい人物になるから覚えておいて損はないぞ 今スクリプトでWindow_ActorCommandをいじって、戦闘時のアクターコマンドを 戦う 防御 魔法 特技 道具 みたいに、5行分表示したいんだけど Window_ActorCommandの表示行数の取得を4から5に変更してみたら ウィンドウのビットマップが途中で切れちゃうんだよね スクリプトの何処をいじれば、ウィンドウをあと1行分増やせるのかわからない… どなたかわかる方ご指導いただけませんか? アクターコマンドだけ5行にしたいのであればビューポートなどもいじらねばならぬ #============================================================================== # ■ Window_ActorCommand #------------------------------------------------------------------------------ # バトル画面で、アクターの行動を選択するウィンドウです。 #============================================================================== class Window_ActorCommand < Window_Command #-------------------------------------------------------------------------- # ● 表示行数の取得 #-------------------------------------------------------------------------- def visible_line_number return 5 end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ # バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 情報表示ビューポートの移動 エイリアス #-------------------------------------------------------------------------- alias move_info_viewport_5ch move_info_viewport def move_info_viewport(ox) move_info_viewport_5ch(ox) @actor_command_viewport.ox = @info_viewport.ox end #-------------------------------------------------------------------------- # ● アクターコマンドウィンドウの作成 エイリアス # アクターコマンド専用ビューポートの作成 #-------------------------------------------------------------------------- alias create_actor_command_window_5ch create_actor_command_window def create_actor_command_window create_actor_command_window_5ch @actor_command_viewport = Viewport.new @actor_command_viewport.rect.y = Graphics.height - @actor_command_window.height @actor_command_viewport.rect.height = @actor_command_window.height @actor_command_viewport.z = 100 @actor_command_viewport.ox = 64 @actor_command_window.viewport = @actor_command_viewport end end おっと、開放は必ずすべし class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 終了処理 エイリアス # アクターコマンド専用ビューポートを開放 #-------------------------------------------------------------------------- alias terminate_5ch terminate def terminate terminate_5ch @actor_command_viewport.dispose end end これ以外にも既存の@info_viewportを改変するのも良い >>64 ありがとうございますッ! すげぇッ!何してるかわかりそうでわかんなくてちょっとだけわかるッ! スクリプトに導入して 比較しながら自分でなんとかできるように頑張りますッ!! 正直ここで質問することではないかもしれませんが、ここくらいしかVXAceのスレ見つけられなかったので質問させてください かなり久しぶりにツクールを開いたのですがVXAceのゲームだけが全て異常なほど重いです 新規プロジェクトで開いたただの大海原を歩くだけでも重いレベルです(大海原でFPS40代、一般的なゲームのマップで30以下 戦闘画面1桁代) 同時にキーの入力情報がずれるのかカーソルキーを長押しすればするほど長時間その方向に入力され続けて制御不能化します(Joytokeyを用いたゲームパッドだと何故かズレは起こりませんでした) プロパティの画面描画のちらつきもほとんど改善しなかったです スクリプトを大量に入れてるだろうMVやVXのゲームはちゃんとFPS60でぬるぬる動くのでスペックとかの問題ではなさそうですが改善方法を知っている方はいらっしゃいませんか VXace自体はsteamで購入したもので、2〜3年前に触ったときは正常に動いていたはずです スペックはCPU i5-8300H メモリ8GB GPU GTX1060 のゲーミングノートです おま環でどうしようもないなら諦めて新しいパソコン買うまでVXaceは封印します スレ汚しすみません >>70 RTPの入れ直しだけでは解決しませんでしたがツクールVxace本体の配置場所をDドライブからCドライブに変えたら解決しました お騒がせしました... 並列処理でピクチャー1のピクチャーを切り替えて 画面がちらついている演出を表現したいんだが、 文章を表示している途中だけその並列処理イベントの処理が止まってしまう… なんとかならないだろうか? スクリプト弄って特定の番号のピクチャを常に点滅するように変えては 点滅させたい時はその番号を使うと 「メニューを開く」ってのをすっ飛ばして、 装備ウィンドウを開かせることって出来る? そこからキャンセルしたらメニュー画面じゃなくてフィールドに戻る感じで。 俺も今日たまたまそれやりたくてググったけどスクリプトコマンドだとキャラを指定できないから素材で入れるしかないらしいよ やり方あるかもしれないけど >>77 イベントからなら SceneManager.call(Scene_Equip) で良いんじゃないの SceneManager.call(Scene_Skill)で特定のスキルタイプだけ表示する方法ないですか? >>80 表示する方法、というかスキルタイプウィンドウを消したいならScene_SkillのUI改造しないと無理でしょ ヘルプに載ってるスクリプト入門実践編まで修了すれば 自力で改造出来るくらい初歩的なものだから練習がてら読み進めると良い 格ゲーのように自分のHPバーと敵のHPバーを画面上部に表示することは可能でしょうか? プレイヤーのキャラは全員でなく一人のHPを表示すること前提です そりゃ勿論、出来るか出来ないかで言ったら出来るだろうけど具体的な仕様が分からない事にはなんとも エネミーの方は一体だけ? ゲージ作り込み始めると際限無さそうだからなんか飽きてきた 基本は大して難しくないからあとはスクリプトリファレンス片手に弄ってくれ https://wandbox.org/permlink/Qiea2Og5VXMB00jF 敵キャラを作ってるんやが、行動パターンに攻撃が入ってないのに他のスキルを無視してひたすら攻撃してくる… 試しに攻撃を入れてレーティング下げたけど変わらん MPもたっぷりあるんやがどういうことやろか… スクショでもしてくれんとわからん 恐らくなにか余計な設定してるんだとおもうけど >>89 よく見たらだいぶ前に自動戦闘系スクリプトを導入しててそのせいだったみたいです すみません、ありがとうございます 挙動がおかしくなったらまず完全新規プロジェクトで再現するか試してみるといい それで再現しなければ100%スクリプトが悪さしてる 今までは最後に開いたプロジェクトが次回起動時に自動で開いていたのですが いつのまにかProject3が毎回開くようになっていました 不便なので以前のように戻したいのですが解る方いらしたら方法を教えてください 左上の「ファイル」からプロジェクトを閉じる→プロジェクトを開くで直るんじゃないか というか直接.projファイルを開くと記憶されない 直にプロジェクト開いてるからその仕様をしらなかった どこから開いてるんだ >>93 返信ありがとうございます やってみましたけど直らないですね・・・ >>94 vxaceを開いて ファイル→プロジェクトを開く でやってました 1回フォルダの位置をずらして開けない状態で起動してみたら? >>86 このゲージをピクチャの上に表示することってできますか? スプライトウィンドウはz値で表示優先順位が管理されてるから適当に弄れ 既存のz値はヘルプの「スプライトの管理」に書いてある @main_sprite = Sprite.new の下に @main_sprite.z = 101 >>98 >>99 できました! ありがとうございます 質問 Win10でVXace製のゲームやってるんだけど ゲーム中盤ごろからマップ移動中に一瞬止まったり戦闘開始時に強制終了したりする Win7の時は全く起きなかったのにおま環? ちなみにセーブしながら進めると発生しない バトル中ターン開始時にイベント発生させると 防御などの速度補正2000よりも先に来てしまうのですが 補正2000よりも後にイベント発生させる方法ってあるんでしょうか? ひとつ前のターンで敵がHP50%以下になったら 大技はなつ予兆のイベントが発生し、主人公サイドが 防御で耐えろみたいな感じの会話が発生して 次のターンで大技を強制的に放つようにイベント組んだんですが 速度補正2000の行動よりも先にイベント発生で大技来てしまうため 防御しろって会話が意味を成さなくて困っているといったところです 答えようかと思ったけどツクマテにもマルチポストしたんなら必要無いか 質問させてください。急いでます 1.ニューゲームを開始すると特定のスクリプト処理でNoMethodErrorが起きる 2.ある程度プレイしたセーブデータからロードすると起きない。 これを回避するために ニューゲームをロードに置き換えて1を回避するために2のセーブデータを 初期状態に近いようにテストプレイなどで変えた すると1のエラーが出る どうすれば解決しますかね? それ以外方法ないでしょうか? セーブデータからなら全てのスクリプトが動いているのがおかしくありませんか? お願いします。 アイテム合成で「防具」を選んだときだけNoMethodErrorが 出てるみたいなんです。object= 考えられるのはニューゲームとかの状態ではメソッドなくて 後でメソッドを追加するようなスクリプトがあるってことでしょうけど 防具だけっていう状態で起きるものなんですかね? ありえなくないですか? エースというのが 800円で セール なんですけど買いでしょうか? ツクールの購入を検討しています KODOMOプラザで買うのとSteamで買うのとでは何が違いますか? >>110 小窓で買うとスチームのシリアルがついてくる スチームで買うと そのまま アクティベーションされる 相当昔の話ですが、 データベースの内容(スキル等)をcsvに出力するツールがありました。 一括で計算式等を変更するのにすごい便利だったのですが 当時出力したファイルともども紛失してしまって困っています。 ご存じの方いらっしゃいましたら、DL先を教えていただけないでしょうか。 よろしくお願いいたします。 とはるAceのゲームのテキストをサクラエディタで改造しようと(自分用なので作者さんから許諾済み)試みていますが、 何やらサクラエディタでRvdata2を開けたあと、特に何も改造ぜずにセーブするとArgumentErrorが出てくるみたいです。 これの解決策、または他にテキストを改造する方法などはあるのでしょうか? 因みにエラーメッセージのウィンドウが小さすぎてとても読めた物ではないと思いますが、一応こちらとなります:https://imgur.com/a/nqMWAIE ご教示の程宜しくお願い致します。 rvdata2は「暗号化」ってほど複雑な仕組みではないけど 単純なtextファイルではないからサクラエディタで直接編集は出来ないよ データベースを弄りたいのかマップファイルを弄りたいのか、 スクリプトファイルを弄りたいのか、セーブファイルを弄りたいのかで色々と話は異なるけど これ読んでピンと来ないなら諦めろん セーブファイルを弄るだけなら探せば色々出て来るでしょ https://clairvoyance.hatena (多分直リンを張ろうとするとエラーが出る)blog.com/entry/2015/06/22/163432 プロジェクトファイル付きで公開している、って意味なら 当然RPGツクールVXAceで開けるとは思う(セーブファイル以外) >>0114 返信有難うございます。主にコモンやマップのイベントスクリプトを弄りたいです。 ピンと来ていると思ってもよろしいでしょうか、、、? >>0115 返信有難うございます。説明不足ですみません、そういう意味ではないのです。 言葉の綾ですが、、、まあ、作者のブログにもゲームのレドミにも「このゲームの改造を禁ずる」という注意書きがなかった上、 あくまで自分用なので、勝手に許諾済みと解釈しておりました。 因みにもちろんRvdata2をテキストに変換する方法を英語圏で探しては見ましたが、 RubyMarshalに関するのコードをいっぱい見つかったのは良いものの、 コーディング関連にはさっぱりなので、何か他にツールはないかと。。。 とことん他力本願ですが、お助け頂ければ幸いです。 >>116 基本的に解析とかってやってはダメなのでは 直接許可とってないなら尚更 改造とかしてはダメとか普通は書かないし なんなら市販されてるゲームの解説書などに必ず書いてあるかと言うとそうでは無いと思いますし ノウハウの流出嫌う人もいるから やはり素材として配布されてないものなら 許可とるのが妥当かと >>0118 そうですよね、、、許可を取ってから出直してきます。 お騒がせして申し訳ございませんでした。 質問です CACAO SOFT様のカスタムメニューステータスというスクリプトを使用しています 複数のアクターの立ち絵の上に、それぞれの装備に合わせたピクチャを重ねて表示したいと考えています。そこで ITEM_PARAMS << [:bust, 2, 0] ITEM_PARAMS << [:pict, 2, 0, "Equips%d",*"actor.id % 8 * 100 + actor.equips[3].id"] として百の位にアクターを8通りの体格に分類し、十と一の位で身に着けた身体装備を判別しようと考えました。 このままでは身体装備が空のときにnilエラーが出てしまうので、 ITEM_PARAMS << [:pict, 2, 0, "Equips%d",*"actor.id % 8 * 100 + actor.equips[3].id if actor.equips[3].id != nil"] と条件分岐を付け足したところ、身体装備が空のときなぜか"Equips(アクターID)"が出力されてしまいます これはなぜですか? また、身体装備が空の際、共通で0を出力か又は画像を出力しないようにする方法はないでしょうか > r, f1, f2 = script && eval(script), *file 元スクリプト見る限りこんなテクい書き方していれば想定外の挙動にもなるわな 一行条件式がどのように作用するのか、なんて考える気も起きない *"actor.id % 8 * 100 + actor.equips[3].id" これ自体が真偽判定の条件式なら *"actor.equips[3] && actor.id % 8 * 100 + actor.equips[3].id" で良いんじゃないの というか何をしたいのかよく分からないけど 「として百の位にアクターを8通りの体格に分類し、十と一の位で身に着けた身体装備を判別しようと考えました。」 の説明と計算式が合致しているようには見えない >>0121 無事想定通りの挙動になりました。ありがとうございます。 私が望んでいたのは、actor.idを8で割った余りを100倍して000,100,200,...,700に分け、そこに防具id01~99を足せば三桁の整数で示せると考えたのですが、 この計算式だとそうならないですか? 現状目に見えて不具合などはないのですが…… ともあれ、これで先に進めそうです、重ねてお礼申し上げます。 8で割った余り、つまり8周期のデータというのがイマイチ想像出来なかったけど想定通りなら良いや こういうのは10進数の一桁目の抽出(% 10)と混同して計算式が変になるパターンを度々見掛ける >>0119 やっと制作者様からの返信と許可を頂けたので、どなたかAceVXのdataファイルをテキスト形式に変換する方法を教えては下さいませんか? https://imgur.com/a/mTFXofV シリアスエラーは 法やエビデンスに基づかないのかな クレカ登録して オリンピック金と車をぶつけて修理出したらこんな感じがするな。 前に結婚 未成年メンバーいるのも知らないのに握ってるの草 運営の人間とのギャップ read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる