ツクールVX Ace 初心者救済、質問スレ Part.4
スクリプトやイベントの組み方などが苦手な人を救済するスレです。 このスレが繁栄する事はAceの繁栄につながり、過疎スレとなるとAceの衰退につながります。 質問者を煽ったり、馬鹿にするような書き込みはしないでください。 あまり酷い場合はアクセス禁止依頼を出します。 前スレ https://mao.5ch.net/test/read.cgi/gameama/1504418487/ >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ちゃんねる