WOLF RPGエディター 質問スレ 其の11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
フリーソフトのRPG製作ソフトWOLF RPGエディターの質問者のためのスレッドです。
教えられる方はできる範囲で教えてあげてください。
・ここは質問スレです。質問者や回答者を煽るようなレスは禁止です。
・もしあなたが憤りを感じたり荒らしだと思っても、放置もしくは>>1とだけレスしてください。
それ以上のことを書くと、それ自体が『荒らし行為となります』。ご注意ください。
・質問者もマナーを守り、回答がつきやすい質問の仕方をしましょう。
【良い質問の例】
・〜がやりたくて・・・までしたのですが、〇〇がうまくいきません。
【悪い質問の例】
・〜できますか → 大概できます。問題は「どうすればできるか」のはずです。実のない質問はやめましょう。
・〜のようなことがやりたい → 丸投げはやめましょう。1から全部教えてくれる人はまずいません。
何が分からないか分かるまで努力しましょう。全部分からないのなら、まずは講座サイトで勉強しましょう。
・コモンイベント集から○○のコモンイベントをダウンロードしましたがエラーが出ますor使い方が分かりませんor動きません等
→まずはそのコモンイベントの作者と連絡を取って下さい。ここにはそのコモンイベントの内容を詳しく理解している人が居ないため、あなたが望むような回答はできません。
◆WOLF RPGエディター公式サイト
http://www.silversecond.com/WolfRPGEditor/
◇本スレ
【ウディタ】WOLF RPGエディター 其の65 [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/gamedev/1502397455/
◇前スレ
WOLF RPGエディター 質問スレ 其の10 [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/gamedev/1463812471/
次スレは>>980が立てて下さい。
立てられない場合は質問を自重して本スレに報告して下さい。 >>713
質問スレで裸待機してるで!
http://mevius.2ch.net/test/read.cgi/gamedev/1503240024/
エスパーすぎると1読めって返されるのと抽象的過ぎると高度な返答来てエターナルから、
処理内容コピペするなりで質問したらちゃんと解決すると思うよ jrpg作るのってunityとかだと厳しいんですか 全く中身の伴わない質問はするだけ時間の無駄だぞ
unityの質問はunityのコミュニティでやれと言いたいが、あっちでも邪険に扱われそう 並んでる箱に1〜9までの数値を番号の重複無しでランダムで入れたいんだけど簡単に入れていく方法ありますかね?
今やってるのだと20行くらいは使ってます 簡単にやる方法ねぇぞ。やっていると思うけど、やるとしたら、こんな感じじゃあない?
WoditorEvCOMMAND_START
[121][4,0]<0>(1600010,1600020,0,4)()
[179][1,0]<0>(9)()
[170][0,0]<1>()()
[121][4,0]<2>(1600010,1,9,24592)()
[121][4,0]<2>(1600016,1600010,0,32)()
[121][4,0]<2>(1600011,1600010,1600020,4104)()
[121][4,0]<2>(1600012,0,0,0)()
[121][4,0]<2>(1600015,0,0,0)()
[179][1,0]<2>(1600011)()
[121][4,0]<3>(1600013,1600020,1600012,4)()
[121][4,0]<3>(1600014,1600013,0,32)()
[111][4,0]<3>(1,1600014,1600016,2)()
[401][1,0]<3>(1)()
[121][4,0]<4>(1600015,1,0,0)()
[499][0,0]<3>()()
[121][4,0]<3>(1600012,1,0,256)()
[498][0,0]<2>()()
[111][4,0]<2>(1,1600015,0,2)()
[401][1,0]<2>(1)()
[171][0,0]<3>()()
[499][0,0]<2>()()
[498][0,0]<1>()()
[121][4,0]<1>(1600010,1,0,256)()
[498][0,0]<0>()()
[106][0,1]<0>()("\cself[20] \cself[21] \cself[22] \cself[23] \cself[24] \cself[25] \cself[26] \cself[27] \cself[28]")
WoditorEvCOMMAND_END WoditorEvCOMMAND_START
[121][4,0]<0>(1600010,1600020,0,4)()
[121][4,0]<0>(1600011,1,0,0)()
[179][1,0]<0>(9)()
[121][4,0]<1>(1600010,1600011,0,16)()
[121][5,0]<1>(1600010,1,0,65792,1)()
[498][0,0]<0>()()
[179][1,0]<0>(50)()
[121][5,0]<1>(1600012,1600020,1600028,90124,1)()
[121][4,0]<1>(1600014,1600012,0,32)()
[121][4,0]<1>(1600012,1600013,0,48)()
[121][4,0]<1>(1600013,1600014,0,16)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[106][0,1]<0>()("\cself[20] \cself[21] \cself[22] \cself[23] \cself[24] \cself[25] \cself[26] \cself[27] \cself[28]")
WoditorEvCOMMAND_END ▼ 初期設定
■変数操作: CSelf10[配列数] = 9 + 0
■変数操作: CSelf11[配列先頭[vPtr]] = 1600050 + 0
▼ 配列に1〜9の値を順番に入れておく
■変数操作: CSelf20[i] = 0 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: V[CSelf30[tmp]] = CSelf20[i] + 1
|■変数操作: CSelf20[i] += 1 + 0
◇ループここまで◇◇
▼ fisher-yatesによるシャッフル
■変数操作: CSelf20[i] -= 1 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = 0 〜 CSelf20[i]
|■変数操作: CSelf37[配列1[vPtr]] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: CSelf38[配列2[vPtr]] = CSelf11[配列先頭[vPtr]] + CSelf30[tmp]
|■変数操作: CSelf39[HOLD] = V[CSelf37[配列1[vPtr]]] + 0
|■変数操作: V[CSelf37[配列1[vPtr]]] = V[CSelf38[配列2[vPtr]]] + 0
|■変数操作: V[CSelf38[配列2[vPtr]]] = CSelf39[HOLD] + 0
|■変数操作: CSelf20[i] -= 1 + 0
◇ループここまで◇◇
▼ 確認
■変数操作: CSelf20[i] = 0 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: CSelf30[tmp] = V[CSelf30[tmp]] + 0
|■デバッグ文:cself[\cself[20]] = [\cself[30]]
|■変数操作: CSelf20[i] += 1 + 0
◇ループここまで◇◇
■デバッグ文:------------------------ >>207が簡潔でいいね 11行か
運任せな16行が限界だったわ
WoditorEvCOMMAND_START
[122][2,1]<0>(1600005,0)("1,2,3,4,5,6,7,8,9")
[170][0,0]<0>()()
[121][4,0]<1>(1600011,1600020,8000008,4)()
[121][4,0]<1>(1600010,1600011,0,32)()
[111][4,0]<1>(1,1600010,0,2)()
[401][1,0]<1>(1)()
[121][4,0]<2>(1600011,1600005,0,16)()
[122][2,1]<2>(1600005,2816)(",")
[112][2,4]<2>(1,1600005)("<<NotFound>>","","","")
[401][1,0]<2>(1)()
[171][0,0]<3>()()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[498][0,0]<0>()()
[106][0,1]<0>()("\cself[20] \cself[21] \cself[22] \cself[23] \cself[24] \cself[25] \cself[26] \cself[27] \cself[28]")
WoditorEvCOMMAND_END なんか大喜利みたいになってんな
とりあえず簡単に解説しとくと
>>206
変数に1~9のランダムな数を入れる
今まで入れた変数と中身が被ったらもう一度ランダムな数を入れ直す
被らなかったら次の変数へ
>>207
9つの変数に1~9の数を順番に入れておく
無作為に選出した変数同士の中身を入れ替える。十分な回数シャッフルすればきちんと混ざるだろうという理屈
>>208
基本的な考え方は207と同じ
順番に選ばれた変数と無作為に選ばれた変数を入れ替える。必ず全ての変数がシャッフル対象に選ばれるのが特徴
>>210
変数を基準に数字を無作為に選ぶ207と逆に、数字を基準に変数を無作為に選ぶ。既に選出された変数を選んだ場合はもう一度変数を選び直す
ただこれは変数を初期化していないので、初回以外はループを抜け出せない。実際に使う場合は変数を初期化する処理を追加しておくように × 変数を基準に数字を無作為に選ぶ207
○ 変数を基準に数字を無作為に選ぶ206 まさに206〜の同じ流れで208に辿り着いたとこでしたw
どうしてもループ回数を最小限に抑えたい病なのと他の処理も噛ませるので大元のソースは出来るだけシンプルなのが良いので208方式で行こうと思います
210は発想に無かったので参考になりました
解説も助かりました
とりあえず自分の考えた処理がそこまでみんなと逸脱してないと確認できただけで収穫ですありがとでした! 文字列変数に値一覧入れて、ランダムで行を引っこ抜くというのも、思いついたけど、
これ、ウディタのデフォだけの文字列操作だけだと、行が長くなるだよなぁ
というか、正規表現を使った置換欲しいなぁ・・・ ・箱に順番にランダム値を被りなしで入れていく方法
・箱に1〜から順番に値を入れて行き無作為にシャッフルする方法
・箱に1〜から順番に値を入れて箱の順番で総当たりして交換先を無作為に選んでシャッフルする方法(ループは箱の数だけで済む)
・文字列変数に値を入れ無作為に箱に入れていく方法
色々な方法があるなぁ >>115
これ、セーブしてからテストプレイになるってウディタマニュアルのイベントマップのところにはっきり書いてあるわ 質問です。
並列処理にてキー入力の連打を阻止して長押しに対応するコモンを作ったのですが、
キャンセルキーの方は機能するのですが、決定キー(下記参照)の方が機能してくれません。
どのようにしたら機能するでしょうか。
(キャンセルキーの方は長押し対応させてるので別コモンでの処理にしています)
決定キーでは長押しじゃなく連打処理をさせないような形にしたいです。
| | | |▼ キー入力判定
| | | |■キー入力:変数V40[キー入力A] / 決定(10) キャンセル(11)
| | | |■条件分岐(変数): 【1】 V40[キー入力A] が 0 と同じ
| | | |-◇分岐: 【1】 [ V40[キー入力A] が 0 と同じ ]の場合↓
| | | | |■変数操作: V41[キー入力確認B ] = 0 + 0
| | | |◇分岐終了◇
| | | |▼ Bが0ならばキー入力確認
| | | |■条件分岐(変数): 【1】 V41[キー入力確認B ] が 0 と同じ 【2】 V41[キー入力確認B ] が 1 と同じ 【3】 V41[キー入力確認B ] が 2 と同じ
| | | |-◇分岐: 【1】 [ V41[キー入力確認B ] が 0 と同じ ]の場合↓
| | | | |
| | | | |■条件分岐(変数): 【1】 V40[キー入力A] が 10 と同じ 【2】 V40[キー入力A] が 11 と同じ
| | | | |-◇分岐: 【1】 [ V40[キー入力A] が 10 と同じ ]の場合↓
| | | | | |■変数操作: V41[キー入力確認B ] = 2 + 0
| | | | | |■イベントの挿入: コモン99:[ 攻撃 ]
| | | | | |■ウェイト:10 フレーム
| | | | |-◇分岐: 【2】 [ V40[キー入力A] が 11 と同じ ]の場合↓
| | | | | |■変数操作: V41[キー入力確認B ] = 1 + 0
| | | | | |■
| | | | |◇分岐終了◇
| | | | |■
| | | |-◇分岐: 【2】 [ V41[キー入力確認B ] が 1 と同じ ]の場合↓
| | | | |■
| | | |-◇分岐: 【3】 [ V41[キー入力確認B ] が 2 と同じ ]の場合↓
| | | | |■
| | | |◇分岐終了◇ パッと見だと特に問題ないけど
V41って通常変数だっけ? 別のコモンで書き換えている可能性あるんじゃない? 回答どうもです。
v41は通常変数ですね。
別コモンでも動作させる為にわざと通常変数使用してます。
攻撃のコモンだけ決定キーを押しっぱなしだと
勝手に二段三段と攻撃してしまうのでそこを何とか改善したいのです。
改善出来る箇所があったら教えて頂けたらと思ってます。 いや、だから別のコモンでV41を0に書き換えているんじゃない?
提示された範囲に限って言えば問題ないよ 確認してみましたが0にするような処理も見当たらなかったです
並列処理だからなんでしょうか 同じように作ってもやっぱり問題ないし、別の部分が悪さしてるよ
デバッグ文使って、値を見て自分で調べるか
他人にデバッグして欲しいならゲームデータ丸ごとアップロードした方が早い
並列処理だからとかは全く関係ない すみません、別コモンで操作を受付無いようにしていた事が原因でした。
無事解決です。
親切に回答ありがとうございました。 質問です。
マップチップの通行設定で困っています。
「▲」チップ座標より後ろに行くとキャラがマップチップの裏側に入るについて
階段の手すりを作ろうと
チップより手前側に居る時はキャラクターより後ろ、
チップより奥側にいる時はキャラクターより手前に表示されるようにしたのですが
▲でもつねにチップがキャラクターの後ろ側に表示されるようになってしまい
反映がなされていないように見えます。
(MAP遷移して確認したり
ゲームを起動しなおして最初から確認しても直りません)
過去このような事象が起きた方、解決法など教えていただけると嬉しいです。 すみません!!
チップの前面判定なんていじった覚えもないのに変だと思い
上から全イベント洗っていたらキャラクターの動作指定させた時に誤クリックしたのか
表示が最前面ONになってました……自己解決しました…… 基本的な質問で悪いんだけど
AIのアクションを判定ってどういうこと?
アクション12を判定にしたら12の後に必ずやるってことなの? アクション12 を判定にしたら、そらその通り、アクション12を判定するんでしょ
アクション12の条件(5%の確率で実行とか)を満たしているかどうかの判定を行うってこと
んで満たしていた場合はアクション12に設定されている行動を行って、満たしていない場合は、次に設定されているアクションの判定を行う 初心者ですが質問です
現在マップのBGMをコモンセルフに格納しようと試行錯誤したのですがやり方が分かりません…
現在再生中のBGMではなく現在マップのBGMを取得するにはどうしたらいいのでしょうか? 今確認できる状況じゃないからあやふやだけど
確かsysDB0のマップ設定に、使用するBGM番号を格納している所がある
現在いるマップ番号は変数操作+のその他から取得できる 初心者ですが質問です。
ロード後に同じ場所で敵が出るのを回避するために並列のコモンにcself0〜0を入れて乱数を無駄遣いしてみたのですが
それでも同じ位置が敵がでます・・・
ロード直後に同じところで敵がでないようにするためにはどこを変更するべきでしょうか 同じ場所? 同じ歩数ってこと?
コモン37のことだと仮定して話すと、乱数が介入するのはエンカウントした後に初期化するときだから、エンカウントするまでは乱数進めても意味ないよ
累積値が一定以上溜まった場合にエンカウントする仕組みだから、ロードから復帰した時にこれに乱数代入すれば良いんじゃね。累積値はCDB18のID65 コモン37です。説明が欠けてました、すみません
ロード後のエンカウント値に乱数を入れればよかったんですね。
ありがとうございます たびたびすみません。コモン37の続きです。
ロード直後の処理はコモン131のセーブ欄実行で行われてると思い、
コモン131のデータのロードCself12[対象のセーブデータ]の後にエンカウント値に乱数を入れてみました。
でも反映されてないみたいで・・・ロード処理の場所はここではないのでしょうか なぜ反映されてないのかを突き止めよう
エンカウント値を可視化して
毎回同じ値になるのか
ロード直後に乱数入れるまではうまくいってるのか
どこかでミスをしてないか、何が悪さしてるのか考えよう ロード後に見てみると毎回同じ値になってますね・・
マップ内で乱数を取るイベント置いて、値を呼び出してみるとエンカウント累積値が変化してるので、
ロード時に乱数を挟む位置が違うみたいです。
ありがとうございます。もう少し調べてみますね ロード直後のみに実行されるコモンイベントつくりゃええねん
udbはセーブデータに反映されないから、それ専用の項目作って、そのudbの初期値の値の場合に実行されるようにすりゃいい
udb書き換える時に必須の変数呼び出し値については公式見て.イベントコード書き換えでもいいけど
例)udb[18: 0: 0]が0の場合に実行
■変数操作: CSelf10[呼び出し値] = 1018000000 + 0
■変数操作: CSelf11[判断] = V[CSelf10[呼び出し値]] + 0
■条件分岐(変数): 【1】 CSelf11[判断] が 0 と同じ
-◇分岐: 【1】 [ CSelf11[判断] が 0 と同じ ]の場合↓
|▼ ロード直後実行のなんか
|■変数操作: V[CSelf10[呼び出し値]] = 1 + 0
|■
-◇上記以外
|■ウェイト:999999 フレーム
|■
◇分岐終了◇ 書き忘れてたけどコモンイベントの設定は並列実行(常時) ロード直後に呼び出すコモンを作る必要があったんですね。
長時間いじりまわしてできなかったので助かりました。
ここで質問してよかった・・ありがとう 初心者です
基本システム使ってます
顔グラを1倍の大きさにして左下に移すことはできたのですが、画面の一番下から少し上にずらすことができません
コモン63の数値をいじったりしてるのですが、全く変化しなかったり顔グラが消えたり上から下に落ちてきたりで上手くいきません 161〜163行目のX座標とY座標が最終的に表示される座標
どんな処理してんの? ってのは前スレ>>56辺りから見たらわかる。以前のverの説明だから、ちょい行数はズレてるけど ん?
左下に移すことができたなら、そこから更に位置をずらすことぐらい造作もないような気がするけど 左下に移すのはわかりやすいサイトがあったのでその通りやったらできました
だから根本はあんまりわかってないです
>>244
アドバイスありがとうございました
おかげで上手くいきました! ウディタのメッセージ欄の記号の質問なんですが、
♡のように、白抜きハートってどうやったらだせますか?
アイコンはうまく作れず、フォントはいいのが見つからず… ウディタはunicodeに対応していないから、普通にフォントで出そうとしても無理でしょ
数値参照文字はHTMLだけで使えるものだし
素直にアイコン描くか、絵文字用のフォント入れた方がいいよ 誰かいたら聞きたいんだけど
イベントが主人公から逃げるコモンを自分で作ろうとしてたんだけど、
壁に当たって動けなかったら指定した動きをするってシステムにしようとして、
1イベントの座標をCSelfに入れる
2キャラクターの動作指定でイベントを主人公から離れさせる
3もう一度別のCSelfにイベントの座標を入れる
4「1」の座標と「3」の座標が同じなら決めた動きをする
っていう風にしたら、なぜか壁に当たった時に主人公から離れて、
動けるときに決めた動きをするようになったんだけど、どうしてかわかる? 2の動作指定の時に動作完了までウェイトにチェックを入れれば普通に動くんだけど、
一つのコモンで大量のイベントを動かすために回数付きループを使ってて、
それでウェイトを入れちゃうとイベントが順番にしか動かないから
何とかしようとしてたら気づいたんだけど、なんでこうなってるのか理解できない。
一応このままでも動きを逆にすれば機能しそうだけど、できれば理解したい。 >>249
了解しました…できるだけ粘ってみます。 >>251
ウディタの仕様からの予想と俺なりの解釈なんで、間違っていたらすまん。と最初に言っておく
間違ってたら誰か修正してくれ
ウディタの動作指定の仕様は、【一次予約】と【二次予約】から成り立っているんや。
(A) キャラクターが動いていない(チップの間にいない)状況の場合(移動中?の変数が0の場合)
1. 移動処理が当たるまで処理を実行する
2. 移動処理が入っていた場合は移動先のマスが空いているかの確認
3. 移動先のマスが空いていた場合、Evの座標をそこへ移して、Evの移動処理を【一次予約】に書き込む。変数操作+の、対象Evの移動中?の変数を1にする
4. まだ行が残っていた場合、【二次予約】へ書き込む
※これはコモンEvの場合の処理。マップEvの場合、移動以外の処理にも頻度が影響するため、一番最初の行以外は【二次予約】行き(のハズ)
(B) キャラクターが動いている(チップの間にいる)状況の場合(移動中?の変数が1の場合)
1. 既に【二次予約】が存在していた場合は、全て消去
2. 全ての新しい動作指定を【二次予約】へ書き込む
んでウディタの処理順番は大雑把に言うと
マップ並列実行→自動実行→コモン並列実行→ウディタ側の処理→画面更新
って感じ。んでキャラクターを実際に画面上で移動させたりしているのが、このウディタ側の処理なのよ。
このウディタ側の処理がどんな感じで動いているかと言うと
1. 【一次予約】が残っていた場合は処理を行う
2. 【一次予約】の処理分が、この処理で終わった場合、【二次予約】から(A)の処理を行う
3. 既に何も残っていない場合、対象Evの移動中?の変数を0にする
ここで【二次予約】から【一次予約】への移し替えがあるわけ。しかも動作完了と同時に行われる。この処理が、全ての処理が終わった後に行われるっていうのがミソでな。
並列実行や自動実行、呼び出しなんかでは、【一次予約】は書き換えられないんだけど、【二次予約】は書き換えられるので、
キャラクターが動いていない場合は、最初の動作は一次予約に書き込まれるので、「先に実行された処理が優先」されて、キャラクターが動いている場合には「後に実行された処理が優先」される
ように見えるんや だから、250の処理を簡単のために
(I)逃げる処理、(II)行き止まり処理と割り振って説明すると
(A)の状況では、動けるために(I)の処理が【一次予約】に入れられる
(B)の状況では、(I)の処理が【二次予約】に入れられるが、(移動中で動けないために)同じ座標に存在するため(II)が【二次予約】に上書きされる
って感じで、最初の一歩は(I)の処理が実行されるけど、それ以降は(II)の処理が実行され続ける って感じになる
これを回避するために用いるのが変数操作+の移動中?って変数なんよ
だから、座標が同じ = 壁際 じゃなくて、 対象のEv移動中?の変数が0 = 壁際 って考えて処理するのが良い
もしくは移動中?の変数が0の場合のみ250の処理をするか のどちらか すぐ答えられなくてごめん
丁寧に説明してくれたおかげでかなり理解できたと思う。
移動中?の変数を使ったらうまく動かせたよ!
親身に対応してくれてありがとう!
ゲーム作りがんばるよ! >>253
こうすればレスを指定できるのか
本当にありがとう!
メモに残して似たようなことがあったら見れるようにしておくよ 質問です
基本システムのメニュー画面に新しく文字画像を追加したいのですが、
何故か追加した画像が背景の後ろに表示されてしまいます
これはどうやらコモンイベントで呼び出した際に起こる現象のようで、
直接(コモンEv88に)書き込んだ場合はそのような不具合は起こりませんでした
ですが、コモンEv88に書き込むと今度はメニューカーソルが正しく表示されなくなってしまいます
(キー入力の有無に関わらずずっと追加した画像に焦点を当て続けている)
どうにかしていずれかの不具合をなくしたいのですが、正直お手上げ状態です
誰か分かる方いたらお願いします
バージョンは2.21です ピクチャ番号が被ってんだろ
基本システム2 ピクチャ番号 で検索したら基本システムで使用しているピクチャ番号載せているブログとかあるから、そこ見て被らないように番号調整しろ 一応コモン88の最初の方のコメント文で使っている番号が説明されているから、それ見てもいいぞ。メニューのだけだけど
カーソルは基本ピクチャ番号+2って書いてあるから、多分10002のピクチャ番号使ってたんだろうな >>258
>>259
解決しました、ありがとうございます!
蓋を開けてみたらバカみたいに単純なことですね… 物事はえてしてそんなもんだよ
論理だてて推測しよう、という姿勢は凄く良いから頑張れ 質問です
変数の中身によって呼びだす変数を変えたいのですがうまくいきません
例えば変数0が11ならば変数11の値を表示するという処理の場合です
変数0=2000000+変数0としても22にしかならないです
変数0は0〜99の値をとる予定です
変数0によって分岐、呼びだす変数を指定する以外にどういったものがあるでしょうか? それでええやん
V[0] = 2000000 + V[0]
V1[0] = V[V[0]]
でV1[0]の値書き出せばいい なんで2000000を加算しているのに22が出てくるのかわからんけど そもそも変数100個も使うなら可変DB使ったほうがいい
呼び出し値使わなくてもDB操作けで値持ってこれるし
あと値取らなくてもよくて表示するだけなら特殊文字でいける
\v1[\v[0]]とか、\cdb[0:0:\v[0]]とか 実は表示だけじゃなくて変数によって処理を変えたいんです
262の例とは数字が異なってしまうのですが以下のような処理を試しました
V0[]=2+0
V1[]=2000000+V0[]
右辺の2000000の部分で『データを呼ばない』にチェックを入れると2000002が、入れないとV0[]+V0[]となってしまい4が表示されます
実際はV2[]を表示したいのです
この後V2[]の値によって処理を変える予定です
可変DBは使ったことがなかったので思いつきませんでした
これを機に使い方を勉強してみます >>267
データを呼ばないで変数呼出値を変数に入れてから、その呼出値の入った変数でX番の変数呼出をする必要がある
V0[]=2+0
V1[]=2000000+V0[] データを呼ばないにチェック
V1[]=V[V1[]] X番の変数呼出にチェック
これで通常変数1番に通常変数2番の中身の値が入る
と、まぁこんな感じでややこしいから基本的にDB使ったほうがいい https://i.imgur.com/Oh8EUzo.png
この機能は変数操作とセーブ・ロードでしか使えないから、
条件分岐なんかで用いたい場合は、一度別の変数に値を入れるなどしてワンクッション置く必要がある お二人とも詳しくありがとうございます
私が想定していた処理は>>268で書いていただいたものでした!
また、X番の変数呼出についても勘違いしていたようです
>>269の画像のおかげで少しわかったような気がします
可変DBも含めて色々試してみたいと思います
ありがとうございました 質問です。
ピクチャAを用いてピクチャ番号x〜yのいくつかを表示し
それぞれを時間差だったりでパターン変更(アニメーション)させながら表示したいのですが、やり方がなかなか思いつきません。
何か上手い方法無いでしょうか?
教えて頂けたら幸いです。 言ってることの意味がよくわからなくて何がしたいのか全く伝わってこないけど、
ピクチャを表示するときに発動ディレイを入れたら表示を遅らせることができるし、
イベントコマンドのエフェクトのとこにピクチャの自動パターン切替っていうのがある すみません、自己解決しました!
回答して貰ったのに申し訳ないです この画像のゲージって左に透過していってるけどどうやってるの?
https://i.imgur.com/bhKosGu.jpg 片道勇者か?
動画見たけど、左に透過していってはいないぞ
単に黒-赤のグラデに不透明度170〜200ぐらいのゲージなだけじゃね? やっぱウディタ側でグラデーション風に透過させていくことは無理だよね 1ドット刻みでピクチャ表示すりゃ無理ではないぞ
あとは自前で用意するしかねえな 初歩すぎる質問で恐縮ですが教えて頂けると幸いです
はじめてのウディタ2を参考に基本システム入の空dataでマップから作ってみようとしたのですが
サンプルゲームの履歴が残っていてマップ選択のツリーの中にサンプルマップA等の名前だけがある状態になっています
これらを消したくて「ツリーの変更を許可する」にチェックを入れて更新したり
エディタを再起動したりなどもやってみましたが変わりありません
どういった操作をすればこのマップツリー内の履歴を消せるかご教示頂ければと思います >>281
素早いご回答ありがとうございます
思いつく限りのキーワードで検索しても全く解らなかったので大変助かりました
ウディタ初心者というものにようやくなれそうです…本当にありがとうございました 質問です
ウディタで作ったゲームの更新を考えておりましたが
セーブデータを保持したままDBとかを弄っても大丈夫なのでしょうか?
もう1つ
アップデート特典としてアイテムなどを増やす、という事を
考えていたのですがそれは可能でしょうか?
分かる方、教えて頂けたら幸いです 何も考えず弄って大丈夫なもの:ユーザーデーターベース
弄れるけど注意が必要なもの:カスタムデーターベース・マップイベント
アップデート特典
→リリースする度に自分で設定するゲームバージョンのデータ(I)と、セーブ時のゲームバージョンのデータ(II)を保存しておく通常変数かカスタムDBを用意。
→2つを比べて違った場合(アップデートなら>や<で比較演算)はアップデート特典を付与して、(I)で(II)を上書き。一番手っ取り早いのはアップデート特典をくれるNPCを用意するなど
以下補足説明
セーブデータに保存されるデータは下記の通り
・カスタムデータベース
・コモンセルフ
・マップセルフ
・通常変数/予備変数/通常文字列
・表示中のピクチャ/マップエフェクト/画面エフェクト/色調変更等
・主人公の位置
まだ細かくあるかもしれないけど、ざっくりこんぐらいのものがセーブデータに保存される
そういうわけで、ユーザーデータベースはセーブデータに依存しないため、いくらでも弄って良い。
カスタムデータベースは弄ってもセーブデータの値が優先される。ただ、数を減らしても呼び出さなければエラーは起こらない(データ数であれば確か設定数以上を呼び出してもエラーにならない。項目番号はエラーになる)
セーブした時に存在しない項目番号があった場合、初期設定値ではなく初期値(タイプ内容を設定する画面で指定するもの)が用いられる
マップセルフはイベントIDに紐付けされている。だからマップIDを入れ替えたりすると、情報も一緒に入れ替わるので注意。
また、マップイベントとキャラチップのヒモ付けはセーブからの復帰時ではなく、マップ読み込み時に行われるため、セーブからの復帰時は想定と違うキャラチップになっていることがある。
増やすだけなら特に問題ない.存在しないマップイベントがあった場合、セーブ復帰時でもキャラチップとのヒモ付けが行われる >>284
ありがとうございます!
無事解決しました! どうでも良いけど可変データベースなんだからチェンジャブルかコンバーチブルあたりでしょ すまん、言われて気づいたわ。なんでカスタムだと思っとったんやろな。多分言いやすいからだと思うけど 質問
アイテム表示で縦にスクロールバーを作りたい
最大表示数が10個だとして手持ちが30個ある場合どのようにしたら作りやすいのでしょうか?
初歩的かもしれませんが、分からなかったので分かる人いたらお願いします 作りやすいってのはよくわからんけど
maxNumOfRow = 最大表示行数(Y方向)・1以上の定数
maxNumOfCol = 最大表示列数(X方向)・1以上の定数
numOfItem = アイテム所持数
numOfItemRow = アイテムを全て表示するために必要な行数(Y方向)
sizeOfAreaY = 縦方向のスクロールバー移動可能エリア・0以上の定数
sizeOfBarY = 縦方向のスクロールバーの大きさ
relativePosOfRow = 初期表示(全アイテム行数の一番上端にいる状態)における上端の行の位置を0とした場合の、現在表示している上端の行の位置(基本システムだと万能ウィンドウ縦スクロール位置とかそんな名前)
relativePosOfBarY = 移動可能エリア上端を0とした場合のスクロールバーの縦方向の相対画面座標
absPosOfAreaY = 移動可能エリア上端の画面座標(Y)・定数
barY = スクロールバーの上端の画面座標(Y)
として計算すると、
----------------------------------------
numOfItemRow = numOfItem / maxNumOfCol + (numOfItem % maxNumOfCol)
numOfItemRowはmaxNumOfRow未満の場合、maxNumOfRowまで引き上げる
sizeOfBarY = sizeOfAreaY * maxNumOfRow / numOfItemRow
relativePosOfBarY = relativePosOfRow * (sizeOfAreaY - sizeOfBarY) / (numOfItemRow - maxNumOfRow)
ウディタでは0除算は1除算として計算されるため、0除算の回避はしない
barY = relativePosOfBar + absPosOfAreaY
----------------------------------------
だいたいこんな感じで計算できる 日本語を変数名に使用できるウディタで他の言語仕様に従った変数の命名する人ってもはや癖なのそれ?
それともなにかメリットがあるの? 数式なら英数字のほうがいいかなー
からの
書いてみたら日本語名とあんまり変わらないけど、日本語名に直すの面倒だしこのまま書き込もう
ウディタで使うのは日本語と英語半々。よくある使用目的の変数とかは共通の名前つけるよ。日本語とか英語とかじゃなくて、そういう名前として認識している。むしろ使用するツール毎に頻繁に名前を変えると混乱する 初歩的かも知れないけど分からなかったので。
今、自作アイテムメニューを作ってて
縦スクロールで一覧を参照出来るように作っているんだが、
カーソルが1番下、1番上に来た時に
事前にピクチャ画面外に表示して隠れているピクチャを表示させたいのに上手くいかない。
相対座標で-yや+yとやっても何故か1行間が空いたりする。
そして1番上に項目が来てカーソルを動かすとそいつが隠れる、というのも上手くいかない。
一応、ピクチャ番号は可変DBに取得している。
良いやり方あったら教えて下さい。 何がしたいのかよくわからないし、中身でどんな処理して上手くいっていないのかもわからん
詳細な説明か仕様の説明、もしくは作っている中身の公開がないと答えられないわ
今の状況だと、どっか処理を間違えているだけとしか言えん 全部自作したいなら全部自作すればいいし、全部フリー素材でいいなら全部フリー素材でいいし、必要に応じて自作するなら必要に応じて自作すればいい 落ちている間に自己解決しました。
透過させたまままとめて画面外のピクチャを先に動かして
その後に対象のピクチャだけ透過の値を255にするだけで何とかなったよ。
スレ汚し失礼しました。 ピクチャをフェードさせる方法に変えたのか
解決したんなら良かった
ちなみに、中身の処理が分からんかったから言わなかったが
ズレるのは恐らくウディタの基本システムでよくある慣性移動をさせようとしていたからだと思う
相対座標でディレイかけた場合の座標計算は、指示が出た瞬間じゃなくてディレイが終了した瞬間だから、それ理由でズレる すみません
通常変数なんですが、セーブしたときは数値が維持されているのに、ゲーム終了してタイトルに戻ると0になってしまうんですが原因が分かりません
例えばhpに応じてキャラの立ち絵が変わるとかがやりたいです
DBとか使ったほうがいいんでしょうか‥ ■ このスレッドは過去ログ倉庫に格納されています