WOLF RPGエディター 質問スレ 其の10 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
フリーソフトのRPG製作ソフトWOLF RPGエディターの質問者のためのスレッドです。
教えられる方はできる範囲で教えてあげてください。
・ここは質問スレです。質問者や回答者を煽るようなレスは禁止です。
・もしあなたが憤りを感じたり荒らしだと思っても、放置もしくは>>1とだけレスしてください。
それ以上のことを書くと、それ自体が『荒らし行為となります』。ご注意ください。
・質問者もマナーを守り、回答がつきやすい質問の仕方をしましょう。
【良い質問の例】
・〜がやりたくて・・・までしたのですが、〇〇がうまくいきません。
【悪い質問の例】
・〜できますか → 大概できます。問題は「どうすればできるか」のはずです。実のない質問はやめましょう。
・〜のようなことがやりたい → 丸投げはやめましょう。1から全部教えてくれる人はまずいません。
何が分からないか分かるまで努力しましょう。全部分からないのなら、まずは講座サイトで勉強しましょう。
・コモンイベント集から○○のコモンイベントをダウンロードしましたがエラーが出ますor使い方が分かりませんor動きません等
→まずはそのコモンイベントの作者と連絡を取って下さい。ここにはそのコモンイベントの内容を詳しく理解している人が居ないため、あなたが望むような回答はできません。
◆WOLF RPGエディター公式サイト
http://www.silversecond.com/WolfRPGEditor/
◇本スレ
【ウディタ】WOLF RPGエディター 其の61
http://echo.2ch.net/test/read.cgi/gamedev/1463100951/
◇前スレ
WOLF RPGエディター 質問スレ 其の9
http://echo.2ch.net/test/read.cgi/gamedev/1447399763/
次スレは>>980が立てて下さい。
立てられない場合は質問を自重して本スレに報告して下さい。 >>951
ありがとうございます
おっしゃるとおりにしたらできました
感謝いたします チップの位置に関する質問です。
イベントチップの高さが微妙で、テーブルの良い位置にうまく物が乗らない時に
「キャラクターの動作指定」コマンドの右方にある「[入力値]に高さ変更」を使用して
チップの位置調節を行っているのですが、主人公が場所移動をすると元の高さに戻ってしまいます。
じゃあ毎回マップ遷移時にイベントが移動してある状態にしようと
イベントのルートをカスタムにして、毎回高さ変更の動作が入るようにしたのですが
これがうまくいかず、マップ遷移時には元の高さのままで、主人公が場所移動しきってから高さ変更を始めるので
主人公が扉から入ってきた瞬間テーブルの上にあるチップが急に移動するような処理になってしまいました。
主人公が移動してもイベントの高さを維持したい・固定したい場合の処理を教えて頂きたいです
(それともこの手の問題はチップ自体を修正して高さ調整したものを新たに作る方が手っ取り早いのでしょうか……?) マップイベントのオプション項目にある半歩上に設置にチェック入れるんじゃダメなん? 実は私もその方法を思いついたのですがチップを置きたい場所は実際マス位置よりも下で、
上ではなく下に、つまり「高さ:-15」のようにマイナス値で設定しているので、
「半歩下に設置」があれば一番良かったのですが……
(イベント位置をあえて1マス下に下げてから半歩上設置にしてもそれはそれでテーブルと位置がジャストフィットしない) >>954さん
すみません間違えました、もしあるなら「1/4歩下」くらいですね……非常にビミョーな位置にテーブルがあるので
ガッツリ半歩下にすると多分テーブルから物が浮きます。
(半歩上でも半歩下でも気に食わない位置になってしまうので、高さ調整で数ピクセル分だけ移動させるとベストな位置にいく)
やっぱりチップ自体をペイントでいじって、少し高さを下げたものを作るのがいちばん賢い気がしてきました……
動作指定・場所移動で動かしたイベントって主人公が場所移動するとイベント移動後の位置ではなく
イベントを作った最初の位置へ戻ってしまうんですね。勉強になりました……。
動作指定で動かした位置にそのままイベントを固定できたら一番スマートだったんですが
固定方法が私の頭では思いつかない……! ■トランジション準備 ←ここで画面停止
■場所移動:主人公 ▲マップID1[サンプルマップA] X:15 Y:1 [トランジションなし] ← マップチェンジ
■変数操作: このEvのセルフ変数0 = 9100284 + 0
■変数操作: V[このEvのセルフ変数0] = 6 + 0 ←ここで高さ変更処理が入る
■トランジション実行 ←ここで画面が切り替わる
例えばこんな風にすれば高さの変更処理は見えない。変更したいチップがあるマップではなく、別のマップからそのマップへ移動する時の処理に工夫しないといけないのが面倒だけど
そういう微調整をしたいイベントチップが沢山あるなら、高さ変更処理を一括で変更する処理をコモンイベントで作って移動の度に逐一呼び出すのが良い。
例えば影グラフィック11番〜42番は高さを+1〜+32するって処理なら下みたいな感じ.イベントは100個までしか置かないって仮定で作ったもの.
■変数操作: CSelf10 = 0 + 0
■回数付きループ [ 100 ]回
|■変数操作+: CSelf11 = キャラ[CSelf10] の 影グラフィック番号
|■条件分岐(変数): 【1】CSelf11 が 10以下 【2】CSelf11 が 42以下
|-◇分岐: 【1】 [ CSelf11 が 10以下 ]の場合↓
| |■
|-◇分岐: 【2】 [ CSelf11 が 42以下 ]の場合↓
| |▼ 10超かつ42以下の分岐
| |■変数操作: CSelf12 = 9100000 + 4
| |■変数操作: CSelf12 += CSelf10 * 10
| |■変数操作: V[CSelf12] = CSelf11 - 10
| |■
|◇分岐終了◇
|■変数操作: CSelf10 += 1 + 0
|■
◇ループここまで◇◇ >>957
ああああああああああああ!!なるほど!!
トランジションしている内で高さの変更処理を行ってしまえば
高さの変更処理が見えなくなるから自然に移動したように見えますね……!
完全に盲点でした、ありがとうございます!ドアの処理に一斉チップ高さ変更コモンを作って仕込んでみます。
本当にありがとうございました!! 文字数を取得して、数だけ音を鳴らすコモンを使用しているのですが、
これを改造して特殊文字(\.)は文字数としてカウントせず、その代わりにウェイトを適用させたいです。
どのような処理をすればいいのかどうか教授ください。
現在使用している一文字ごとに音が鳴るコモン→(https://1drv.ms/u/s!AmVWE09T1yEahUZLnvH3TJg0Klig)
文章表示は高機能吹き出しコモンを使用しています→(http://www.silversecond.com/WolfRPGEditor/CommonList/html/files/14384428148701/!ReadME.html) >>960
今使っているコモンは作ったり改造したりしたので丸投げしているつもりはなかったのですが…。すみません。 普通に1文字ずつ条件分岐にかけりゃええんちゃう
\の文字があったら文字カウントせずにフラグ立てる→フラグ立った状態で次の文字を調べて . なら特殊処理、 . 以外なら前の\の分含めて文字カウント2つ とか
特殊文字が読めるかどうかは忘れた.\nとか\.とかは1文字としてカウントされるんだったっけ? ちょっと調べてみるわ \.とか\!とかのウディタの仕様書に書かれている特殊文字は1文字扱いだったわ
\.で分岐条件にすれば判定できる。\nの改行コードだけは実際に改行した文字列で比較するしかない
つか今コモン見てみたけどその辺は分かってるっぽいじゃん
全部読み取ってから音処理してるからわかんなくなってるだけやぞ
1文字読み取り→音だす→1文字読み取り→音出す って処理にすりゃええやろ >>963
お答えくださり、ありがとうございます!頭が固くて申し訳ないのですが、「一文字読み取り」とは
■文字列操作:Cself7[文章]=SysS25[[読]文章表示の内容]
■変数操作:Cself21[文字数]=0+0
で処理しているのでしょうか?私はネットに公開されていた他の方のコモンをそれっぽく組み合わせただけなので
よく理解ができていないのです・・・お手数かけてすみません。
\.の条件分岐は文字列操作で1文字切出を選び、コモンセルフに代入するような形でしょうか?
自分で書いていて更によく分からなくなってきたので、処理が重くならなければ文字の数だけ回数付きループで設定しようと思っています;; >>964
自分で作ったんじゃなかったんかい
何を試したかも、どこで詰まったかも書かずにに処理教えろってのは丸投げだと思わない?
>>1読もうよ
まぁ小言はこの辺にして
音鳴らすコモンみたけど962-963と同じ感想だった
高機能なんちゃらがどんな動きするかわからんけど
空データからならコレで動くよ ※行数の都合でちょっと加工
起動:並列常時
■ループ開始
|■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ
|-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
| |■変数操作: CSelf11[前フレーム表示] = 0 + 0
| |■変数操作: CSelf10[ウェイト設定] = 1 + 0
|-◇上記以外
| |■条件分岐(変数): 【1】 CSelf11[前フレーム表示] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf11[前フレーム表示] が 0 と同じ ]の場合↓
| | |■文字列操作:CSelf7[文章] = SysS25[[読]文章表示の内容]
| | |■変数操作: CSelf10[ウェイト設定] = 12 + 0
| |-◇上記以外
| |◇分岐終了◇
| |■条件分岐(文字): 【1】 CSelf7[文章]が "" 以外
| |-◇分岐: 【1】 [ CSelf7[文章] "" 以外 ]の場合↓
| | |■文字列操作:CSelf8[ダミー] =<1文字切出> CSelf7[文章]
| | |■条件分岐(文字): 【1】 CSelf8[ダミー]が "\." と同じ
| | |-◇分岐: 【1】 [ CSelf8[ダミー] "\." と同じ ]の場合↓
| | |-◇上記以外
| | | |▼ ここでSE鳴らす
| | |◇分岐終了◇
| |◇分岐終了◇
| |■変数操作: CSelf11[前フレーム表示] = 1 + 0
|◇分岐終了◇
|■ウェイト:CSelf10[ウェイト設定] フレーム
◇ループここまで◇◇ >>966
コメントで呆れられていたので、答えてもらえないのかな…と思って大口叩いてしまいました。>>1もちゃんと読んでおらずすみませんでした。
やり方を書いてくださって本当にありがとうございます!今から仕事なので、後で確認させていただきます! 回答に費やす時間の5〜7割ぐらいは、質問者の意図を推理する時間だったりする
質問する側は、何がしたいのか、何が聞きたいのか、何故その発送に至ったのか等をある程度明細且つ簡潔に書いてくれると結構助かる お陰様でセリフに音がつくようになりました!ありがとうございます!
書いてくださった処理を元に、どうしてこれができるようになったのか理解する努力をしようと思います。
>>968
そうなんですね。
またどうしてもできない場面に出くわしたら、言葉で簡潔に伝えられるように考えて質問します。 すいません、ウディタでマスク処理って出来ますかね… 画像なのかビットなのかそれとも他なのか分からん以上はなんとも言えません。 当たり判定用の条件分岐で質問なのですが
敵陣、主に3×3の9マス内に敵が3体居る時の条件分岐で
基準を自分のXY,敵1のXY,敵2のXY,敵3のXYで行おうとしているのですが、なかなか上手く行きません
敵123其々のYが自分と同じになったらXが自分Xより大きいなら攻撃が当たる
並んだ場合はXが一番前方に来ている敵に攻撃が当たるという形式にしたいのですが
処理を書いてる間に訳が分からなくなってしまいました(画像参照)
http://www.dotup.org/uploda/www.dotup.org1281564.png
こういった場合、1つ目は『3体並んだ場合』→『「1と3」、「1と2」が並んだ場合』→『1のみ』
(以後、2体目3体目も同様の処理)
という処理をした方が良いと思いやってみたのですが
ウディタの条件分岐で複雑に処理する場合どうやればいいか分かりません
いきなりこんな訳の分からない質問をしてしまって申し訳ありませんが
分かる方居たら教えて頂けたら幸いです
どうぞよろしくお願いいたします 「並んだ場合はXが一番前方に来ている敵に攻撃が当たるという形式にしたい」ならそういう処理しろよ 俺だったら座標計算メインでやるけど、イベントメインでやるなら敵にID振っておいて
最初にID_HOLD変数に-1を代入、X_HOLD変数に999999を代入
敵ID1のY座標が自分Y座標と同じ場合、かつ (敵X-自分X)^2 < X_HOLDの場合 → ID_HOLDに敵IDを代入、X_HOLDに(敵X-自分X)^2を代入
上の処理を敵の数だけ繰り返す
ID_HOLDが-1の場合攻撃は誰にも当たらない、-1以外の場合ID_HOLDに代入された敵IDに当たる
って感じで良いんじゃね >>974
途中でこんがらがってましたすみません
>>975
ありがとうございます
そういった手法もあるのですね、ダメだった場合に試してみます ええ……
このやり方なら敵が1体でも100体でも同じ処理だから汎用的に使えて良いと思うんだけど 3x3マスとは言った
言った……が、Z座標の指定まではしていない!
つまり我々がその気になれば3x3マスに1000体でも100000体でも詰め込むことは可能だろう……ということ……! 自分の前方に敵がいるか調べていけばいいんじゃないの
3×3の範囲とか敵が3体とか関係ないでしょ メッセージウィンドウではなく、メッセージ自体を非表示(透明)にする方法はあるのでしょうか。
エロゲのメッセージ非表示のようなものを作りたかったのですが・・・ 「文章の表示」を使わずにピクチャで文章を表示すれば良い >>984申し訳ありません。やりたいことの説明が足りてなかったです。
通常時に文章を読んでる時にキー入力したら、文章が見えなくなる、みたいな感じにしたかったんです。
メッセージウィンドウ画像を透明にしても文字が残るし、
出ている画像を100000↑のピクチャにもってきても隙間から文字が見えたりしてしまったので・・・。
画像に隙間があるので、100000↑のピクチュアに真っ黒のを置いても、後ろのマップがみえなくなってしまって・・・ 文章表示コマンドで表示される文章をピクチャで表示するコモンを作るのが一番楽だと思うで 文章表示の位置はシステム変数1,2で画面外に移動させることは可能だけど、文章表示中に切り替えるのは無理かな? 文章表示を行った後のものは弄れないからね
あとは文章表示コマンドの特性を利用した割り込み処理を行うぐらい?
例えば
■文章:こんにちわ1
■ウェイト:1 フレーム ←文章表示と文章表示の間にウェイトを1F入れるのが重要
■文章:こんにちわ2
こんな感じのマップイベントか何かがあって、
それとは別に並列実行イベントで
■キー入力:このコモンEvセルフ変数10 / 4方向 サブキー(12)
■条件分岐(変数): 【1】CSelf10 が 12と同じ
-◇分岐: 【1】 [ CSelf10 が 12と同じ ]の場合↓
|■デバッグ文:sub
|■文字列操作:CSelf5 = SysS25[[読]文章表示の内容]
|■条件分岐(文字): 【1】このコモンEvセルフ変数5 が"" 以外
|-◇分岐: 【1】 [ このコモンEvセルフ変数5 が"" 以外 ]の場合↓
| |■文章の強制中断
| |■文章:
| |■
|◇分岐終了◇
|■
◇分岐終了◇
みたいなプログラムを作った場合
文章表示コマンドは並列実行処理でも自動実行処理でも同じ処理を用いるために割り込みが発生するので
一時的に文章を表示していない文章表示処理を行うことが可能 これを利用すれば、あとはメッセージウィンドウ処理関係のピクチャさえ消せばメッセージの非表示はできる。
ただし消してしまった文章は次に送られてしまうため、エロゲのメッセージ非表示みたいなものを作るのであれば
これとは別に並列処理で消した文章をピクチャで表示するコモンと、キーの入力禁止等を組み合わせないといけない
それと、基本的に文章表示と文章表示の間でないと割り込みんだとしても勝手に次の処理が進んで行ってしまうので
■文章:こんにちわ
■ウェイト:1 フレーム
■動作指定:このイベント / 下 / 下
例えばこんな場合だと、こんにちわの文章表示コマンド部分で並列実行による割り込み処理を行っても
動作指定処理が入ってしまう
なので、最後にダミーの文章を作って
■文章:こんにちわ
■ウェイト:1 フレーム
■文章:\>\<\^
■動作指定:このイベント / 下 / 下
こんな感じにしないといけない そしてここまで言っておいてなんだけど、1Fウェイトを逐一挟まないといけなかったり、ダミーの文章を入れないといけなかったりと
コモンを作った後でも面倒くさい。しかも手作業なのでバグが発生しやすそう
なので、ピクチャで文章表示を行うコモンを自分で作ったほうが後々楽 >>986,987,988,989,990
すいません、いろいろありがとうざいます!
自分でも一日試してみましたがうまくいかず…………。
今つくってるのは結構途中までつくってしまったので、
ピクチャは次ので試してみたいと思います! 行動AIの2〜10ターンに一回行動みたいなのって10ターン設定してもループはしないの?
予備動作のある攻撃をさせたいんだけどやっぱコモンをいじるしかない? ループするはずだけど「Xの倍数マイナス1ターンで行動」とかは出来ないから予備動作は無理じゃないかと思う ウディタで20億以上の数値を扱える方法はないでしょうか
仕様上の限界が32bit限界の20億なので、桁ごとにわけて計算できないかな?と思い、
4桁毎に数値を万、億、兆、という具合に分けて計算できないかと弄っていたものの、なかなかうまくいきませんでした
20億(できれば100万)未満の桁数でうまくやりくりできる方法や、コモンをご存知の方はいませんか? 普通にその方法でできない?
変数0 (0〜10^4-1を扱う)、変数1((10^4〜10^8-1を扱う)、変数2 (10^8〜10^12-1を扱う)……変数n(10^(4n)〜10^(4n+4)-1)……て感じに用意すると仮定すると
加算減算の場合は各要素毎に足し引きして繰り上げと繰り下げをすればいい。4桁で考えた場合、変数nが10000以上だった場合は変数nから-10000して変数n+1に1を加算(繰り上げ)。変数nが0未満だった場合は変数n+1から-1して変数nに10000を加算(繰り下げ)
扱う値が負の場合はこの逆
乗算の場合は各要素毎に乗算して足し合わせればいい。ある数字の変数nとある数字の変数mを乗算して別に用意した変数m+n番目に加算して溢れた分を変数m+n+1番目に加算するってのを繰り返すだけ
乗算する変数の数が多すぎた場合はToom-Cook法とか使ったほうがいいけど
除算の場合は符号と桁を合わせて引いていけばいい 考え方自体はあってたみたいでした
そのまま打ち込もうとするとソースが長くなってしまいますが、とりあえず作り続けてみます
ありがとう もう残り少ないし次スレ建てるわ
めんどいしテンプレそのままで建てる このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 456日 8時間 9分 40秒 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。