過去ログ [ 0066 ]

過去ログ:
ワード検索:
条件: 表示:  

記事No: 21512 [関連記事]
タイトルRe: メニュー画面のキャラクター画像について
投稿日: 2023/04/01 18:34
投稿者 [rrdeege781]

テストプレイの時 ゲーム中でセーブしたところから
コンティニューしていないでしょうか?



原因も解決方法もわかりませんが ピクチャが表示されないということなので
--------------------------------
WOLF RPGエディターWiki フォーラム 質問スレまとめ より抜粋
ピクチャが表示されない原因
(a)画像ファイルを移動して場所指定が間違っている。
(b)画像ファイルの名前を変えて再指定し忘れた。
(c)分割数が縦1横1になっていない。
(d)不透明度が0になっている。
(e)拡大率が0になっている。
(f)位置と座標がまずくて画面外に出てしまっている。
--------------------------------

問題の切り分け
メニュー画面表示中に F7を押した時

画像のピクチャ番号が存在している、その画像はウィンドウの中
(c)(d)(e)ピクチャ表示のパラメータがおかしい場合
→ 改造したコモンの内容より基本システムより変更されていない。
→ 可能性ほぼ無し(?)

画像のピクチャ番号が存在している、その画像はウィンドウの外
(a)(f)画像の表示座標がおかしい場合
→ 肩書や名前の位置は正しく変更済み。画像のみ座標計算を間違えた?
→ 可能性は低い

画像のピクチャ番号が存在していない
(b)画像ファイルのパスがおかしい場合
→ (1)CDBの項目59が存在しない → エラーが出る
→ (2)新しい画像のパスが間違っている → エラーが出る
→ (3)新しい画像のパスが登録されていない(パスが"") → エラーは出ない(顔画像消去)

→ エラーは出てないようなので(3)のパスが""になっている可能性が高いが
新しい画像を用意したのにパスを登録していない可能性は低い


その他原因
1.CDBに項目59を追加(初期値は"")。
2.この状態でテストプレイしてゲーム内でセーブ。
3.CDBの項目59に画像パスを入力 。
4.セーブしたところからコニティニューでテストプレイを再開して、
パス入力前のCDBが読み込まれたので画像が表示されない。


記事No: 21511 [関連記事]
タイトルRe: マウスの座標基準でピクチャ番号を取得したい
投稿日: 2023/04/01 17:20
投稿者 [rrdeege781]

計算で求めるのはどうでしょうか?

ピクチャ同士の相対位置が変化しないなら
全体をいくつかの区画に分割して
各区画に対応するピクチャ番号をDBに登録しておくことで
クリックした位置(区画)のピクチャを取得できると思います。

3x2分割の場合
-- X0 X1 X2
Y0 +0 +1 +2
Y1 +3 +4 +5

クリックした区画(0〜5)を求めて
DBのID=0〜5に登録されているピクチャを取得

(区画とピクチャが1対1で対応するならDBを使用しなくても
ピクチャ番号を 基本ピクチャ番号+0〜5 にする方法もあります。)


記事No: 21509 [関連記事]
タイトルマウスの座標基準でピクチャ番号を取得したい
投稿日: 2023/03/13 13:07
投稿者ぽめ [eeiriig1106]

[やりたいこと]
マウスを左クリック時に、マウス位置にある画像を取得したい

[やってみた結果、どううまくいかないか]
ピクチャ番号のMin〜Maxまで総当たりで「マウスカーソル重なってる?」を拾っていけばできますが、もっと軽く短い処理でできませんか?
ちょっと考えつかなかったので、誰かお知恵があれば拝借したい


記事No: 21508 [関連記事]
タイトル一部解決しました!
投稿日: 2023/03/10 23:07
投稿者猫大好き [rWidrFd355]

> こちらの動作テストは、ウディタ[3.164]プロ版で、新規マップを作成し、扉のマップイベントと扉用のコモンだけを設定してテストしています。
> ▼マップイベントの設定
> 起動条件:プレイヤー接触
> 待機時アニメ:チェック無し
> 接触範囲拡張:X=6、Y=6
> イベントコマンドは扉用のコモンを呼び出す設定のみ。
>
> テスト結果は「範囲内に入ると扉が開く」「範囲外になると扉が閉じる」となり、縦とか横とか関係なく、扉に近付けば開きっぱなしになります。
>
>
> 「横だけ開きっぱなし」などはよく分からない状態ですね。
>
> 現状の処理は、範囲内(近い)か範囲外(遠い)かで処理されるので、横とか縦とかは関係ないはずです。
>
> 範囲外なのに扉が開く場合は、範囲外を処理する設定に何らかの問題があるはずです。
>
>
> あと最初に書かれていたイベント設定は、手入力で書いたのでしょうか?
>
> 手入力だと入力ミスで実際のイベント設定とは異なる記載になる可能性があるので、
> イベントコマンドの上で右クリック→「コマンド文→クリップボードへコピー」でコピーしたものを貼り付けて記載した方が良いでしょう。

お返事ありがとうございます。
お恥ずかしながら手入力以外に入力方法があるとは知らず、地道にポチポチ打っておりました。仰るとおりの方法でコピペしたのが次のものになります。


▼ 呼出元マップイベントと主人公の距離を算出
■変数操作+: CSelf10[接触範囲X] = このマップイベント の 接触範囲拡張X
■変数操作+: CSelf11[接触範囲Y] = このマップイベント の 接触範囲拡張Y
■変数操作+: CSelf12[呼出元X] = このマップイベント の X座標(精密)
■変数操作+: CSelf13[呼出元Y] = このマップイベント の Y座標(精密)
■変数操作+: CSelf14[主人公X] = 主人公 の X座標(精密)
■変数操作+: CSelf15[主人公Y] = 主人公 の Y座標(精密)
■変数操作: CSelf16[Evとの距離X] 絶対値= CSelf14[主人公X] - CSelf12[呼出元X]
■変数操作: CSelf17[Evとの距離Y] 絶対値= CSelf15[主人公Y] - CSelf13[呼出元Y]
▼ 接触範囲外なら「0」を返す(停止)
■変数操作+: CSelf0[マップEvID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf16[Evとの距離X] が CSelf10[接触範囲X] 以上 【2】 CSelf17[Evとの距離Y] が CSelf11[接触範囲Y] 以上
-◇分岐: 【1】 [ CSelf16[Evとの距離X] が CSelf10[接触範囲X] 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf4[起動/停止] が 1 以上
|-◇分岐: 【1】 [ CSelf4[起動/停止] が 1 以上 ]の場合↓
| |■サウンド:SE ファイル[SE/ドア開ける音.mp3] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
| |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
| |■変数操作: CSelf4[起動/停止] = 0 + 0
| |■
|◇分岐終了◇
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf17[Evとの距離Y] が CSelf11[接触範囲Y] 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf4[起動/停止] が 1 以上
|-◇分岐: 【1】 [ CSelf4[起動/停止] が 1 以上 ]の場合↓
| |■サウンド:SE ファイル[SE/ドア開ける音.mp3] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
| |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
| |■変数操作: CSelf4[起動/停止] = 0 + 0
| |■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf4[起動/停止] が 0 と同じ 【2】 CSelf4[起動/停止] が 1 以上
-◇分岐: 【1】 [ CSelf4[起動/停止] が 0 と同じ ]の場合↓
|▼ 接触範囲内で未起動なら「1」を返す(起動)
|■サウンド:SE ファイル[SE/ドア・閉める音.mp3] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|■動作指定:このイベント / 下向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 上向 / すり抜けON
|■動作完了までウェイト
|■変数操作: CSelf4[起動/停止] = 1 + 0
|■
-◇分岐: 【2】 [ CSelf4[起動/停止] が 1 以上 ]の場合↓
|▼ 接触範囲内且つすでに起動しているなら「2」を返す(起動済み)
|■変数操作: CSelf4[起動/停止] = 2 + 0
|■
◇分岐終了◇


仰る通り近いか遠いかだけで判定されるはずでどうして横方向だけ駄目なのかさっぱりで……。
ですが、試しに仰っていたとおりに接触範囲拡張をX=6Y=6にしたら正常に反応しました!
私はX=3Y=3でやっていたのですが、確認したところ私の環境ではX、Yどちらかが3以下だと正常に反応しないようで、私はそこでドツボにはまっていたみたいです!
4×4以上にすれば正常に反応してくれるようなので、これ以上変に質問を長引かせるのも申し訳ないですし、このまま使用してみようと思います。
こんなつたない質問にも丁寧に答えていただき、とても助かりました。
本当にありがとうございました!


記事No: 21507 [関連記事]
タイトルRe: 範囲内に入ると反応する自動ドアのようなイベントをコモンで作りたい
投稿日: 2023/03/09 22:33
投稿者YADO [LerLWW459]

> ただ、横を通り抜けた時に開きっぱなしになるのは変わらずでした……。
> 自分は他のコモンを改造したりとかして手をつけていないのでなにか悪さをしているとは思えないのですが、試しにこの制作中のこの自動ドア以外の自作コモンを削除し、挙動を確認してもやはり変わらず。
> もしかして覚えてないだけでいじっちゃったかな?と思ってこの自動ドアのコモンを出力し一度ウディタをアンインストールして最新のものを再インストールしてからコモンを読み込み、挙動を確認しても変わらず横に横切る時だけ扉が開きっぱなしになってしまいます。
> 縦も横も開きっぱなしになるならいざ知らず、横だけ開きっぱなしになるのはもう私の問題解決能力の範疇を超えていて、原因すら思い浮かびません。
> 原因としては何が考えられるでしょうか?
> もし宜しければ、引き続きお知恵を拝借させていただけたらと思います。


こちらの動作テストは、ウディタ[3.164]プロ版で、新規マップを作成し、扉のマップイベントと扉用のコモンだけを設定してテストしています。
▼マップイベントの設定
起動条件:プレイヤー接触
待機時アニメ:チェック無し
接触範囲拡張:X=6、Y=6
イベントコマンドは扉用のコモンを呼び出す設定のみ。

テスト結果は「範囲内に入ると扉が開く」「範囲外になると扉が閉じる」となり、縦とか横とか関係なく、扉に近付けば開きっぱなしになります。


「横だけ開きっぱなし」などはよく分からない状態ですね。

現状の処理は、範囲内(近い)か範囲外(遠い)かで処理されるので、横とか縦とかは関係ないはずです。

範囲外なのに扉が開く場合は、範囲外を処理する設定に何らかの問題があるはずです。


あと最初に書かれていたイベント設定は、手入力で書いたのでしょうか?

手入力だと入力ミスで実際のイベント設定とは異なる記載になる可能性があるので、
イベントコマンドの上で右クリック→「コマンド文→クリップボードへコピー」でコピーしたものを貼り付けて記載した方が良いでしょう。


記事No: 21506 [関連記事]
タイトルRe: 範囲内に入ると反応する自動ドアのようなイベントをコモンで作りたい
投稿日: 2023/03/09 06:49
投稿者猫大好き [rWidrF569]

> ■ウェイト:1フレーム
> を設定すると、マップイベントが主人公の方を向いてしまうので、全て削除した良いです。
>
> 範囲外に出る時の処理は、セルフ4が1以上の時だけ実行するようにした方が良いです。
> ■条件分岐(変数): 【1】 CSelf16 が CSelf10 以上 【2】 CSelf17 が CSelf11 以上
> -◇分岐: 【1】 [ CSelf16 が CSelf10 以上 ]の場合↓
> |■条件分岐(変数): 【1】 CSelf4 が 1 以上
> |-◇分岐: 【1】 [ CSelf4 が 1 以上 ]の場合↓
> | |■サウンド:SE ファイル[SE/[System]Get1_default.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
> | |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
> | |■変数操作: CSelf4 = 0 + 0
> | |■
> |◇分岐終了◇
> |■イベント処理中断
> |■
> -◇分岐: 【2】 [ CSelf17 が CSelf11 以上 ]の場合↓
> |■条件分岐(変数): 【1】 CSelf4 が 1 以上
> |-◇分岐: 【1】 [ CSelf4 が 1 以上 ]の場合↓
> | |■サウンド:SE ファイル[SE/[System]Get1_default.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
> | |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
> | |■変数操作: CSelf4 = 0 + 0
> | |■
> |◇分岐終了◇
> |■イベント処理中断
> |■
> ◇分岐終了◇

おっしゃる通りウェイトを全て削除し、範囲外に出る時の処理はCSelf4が1以上になった時になるよう変えてみたら、扉がガチャガチャしなくなりました!
凄い!ありがとうございます!
ただ、横を通り抜けた時に開きっぱなしになるのは変わらずでした……。
自分は他のコモンを改造したりとかして手をつけていないのでなにか悪さをしているとは思えないのですが、試しにこの制作中のこの自動ドア以外の自作コモンを削除し、挙動を確認してもやはり変わらず。
もしかして覚えてないだけでいじっちゃったかな?と思ってこの自動ドアのコモンを出力し一度ウディタをアンインストールして最新のものを再インストールしてからコモンを読み込み、挙動を確認しても変わらず横に横切る時だけ扉が開きっぱなしになってしまいます。
縦も横も開きっぱなしになるならいざ知らず、横だけ開きっぱなしになるのはもう私の問題解決能力の範疇を超えていて、原因すら思い浮かびません。
原因としては何が考えられるでしょうか?
もし宜しければ、引き続きお知恵を拝借させていただけたらと思います。


記事No: 21505 [関連記事]
タイトルRe: 範囲内に入ると反応する自動ドアのようなイベントをコモンで作りたい
投稿日: 2023/03/08 21:11
投稿者YADO [LerLWW459]

> [やりたいこと]
> プロ版で一定範囲内に入るとSEと共にイベントにセットされたチップが変化して扉が開き、範囲内にいる間は開き続け範囲外に出るとSEと共に閉じる、というのをコモンでやりたいです。
> [やってみたこと]
> レビニアさんの「【ウディタ解説】近づくと起動して離れると停止するコモンを作る【自作】」と未知広さんの「ウディタでお手軽にドアを開け閉めする演出コモンを作成! めっちゃ丁寧に解説します」を参考に以下のコモンを作りました。
>
> 起動条件 呼び出しのみ
>
> ▼呼出元マップイベントと主人公の距離を算出
> ■変数操作+:CSelf10[接触範囲X]=このマップイベントの接触範囲拡張X
> ■変数操作+:CSelf11[接触範囲Y]=このマップイベントの接触範囲拡張Y
> ■変数操作+:CSelf12[呼出元X]=このマップイベントのX座標(精密)
> ■変数操作+:CSelf13[呼出元Y]=このマップイベントのY座標(精密)
> ■変数操作+:CSelf14[主人公X]=主人公のX座標(精密)
> ■変数操作+:CSelf15[主人公Y]=主人公のY座標(精密)
> ■変数操作+:CSelf16[Evとの距離X]絶対値=Cself14[主人公X]-CSelf12[呼出元X]
> ■変数操作+:CSelf17[Evとの距離Y]絶対値=Cself15[主人公X]-CSelf13[呼出元Y]
> ▼接触範囲外なら「0」を返す(停止)
> ■変数操作+:CSelf0[マップEvID]=現在のマップID
> ■ウェイト:1フレーム
> ■条件分岐(変数):【1】CSelf16[Evとの距離X]がCSelf10[接触範囲X]以上【2】CSelf17[Evとの距離Y]がCSelf11[接触範囲Y]以上
> ◇分岐:【1】[CSelf16[Evとの距離X]がCSelf10[接触範囲X]以上]の場合↓
> │■サウンド:SEファイル[SE/開く音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
> │■ウェイト:1フレーム
> │■動作指定:このイベント/上向/ウエイト2フレーム/右向/ウェイト2フレーム/左向/ウェイト2フレーム/下向/すり抜けOFF
> │■変数操作:Cself4[起動/停止]=0+0
> │■イベント処理中断
> │■
> ◇分岐【2】[CSelf17[Evとの距離Y]がCSelf11[接触範囲Y]以上]の場合↓
> │■サウンド:SEファイル[SE/開く音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
> │■ウェイト:1フレーム
> │■動作指定:このイベント/上向/ウエイト2フレーム/右向/ウェイト2フレーム/左向/ウェイト2フレーム/下向/すり抜けOFF
> │■変数操作:Cself4[起動/停止]=0+0
> │■イベント処理中断
> │■
> ◇分岐終了◇
> ■条件分岐(変数):【1】Cself4【起動/停止】が0と同じ【2】Cself4【起動/停止】が1以上
> │◇分岐:【1】Cself4【起動/停止】が0と同じの場合↓
> │▼接触範囲内で未起動なら「1」を返す(起動)
> │■サウンド:SEファイル[SE/閉まる音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
> │■ウェイト:1フレーム
> │■動作指定このイベント/下向/ウエイト2フレーム/左向/ウェイト2フレーム/右向/ウェイト2フレーム/上向/すり抜けON
> │■変数操作:Cself4[起動/停止]=1+0
> │■
> ◇分岐:【2】[CSelf4[起動/停止]が1以上]の場合↓
> │▼接触範囲内且つ既に起動しているなら「2」を返す(起動済み)
> │■ウェイト1フレーム
> │■変数操作:CSelf4[起動/停止]=2+0
> │■
> ◇分岐終了◇
> ■
>
> イベントには上から順に
> 1:閉じているドア
> 2:少し開いているドア
> 3:更に開いているドア
> 4:開ききったドア
> と、なっているマップチップをセットしました。
> [やってみた結果、どううまくいかないか]
> 縦に扉のイベント上を通り抜けようとするとSEはちゃんとなるのですが扉がガチャガチャ動いて自然に開いているように見えません。その時SEが何度も重なって聞こえてしまったりもします。イベント横を縦に通ると扉がビクビク動いているような挙動をしてしまいます。
> また、イベントを横に通り抜けると今度はSEが鳴った後扉が開きっぱなしになってしまいます。こうなると縦に通り抜け直さないと範囲内に入った時びくつくだけでSEも鳴らず、上手く動きません。
> 別のコモンを使ってこの自動ドアのコモンのCSelf4の起動/停止をピクチャ表示して監視したところ、縦に通り抜けた時は範囲外で0、範囲内で1、横に通り抜けた時は1度通ってしまうと後の扉が開きっぱなしになっている時は2になり続けていました。
> スムーズに自然な動きで扉の開け閉めできるようにセットしたいのですが、私の知恵ではどこが悪いのか分かりません。
> 試しにウェイトを1フレームを所々に差し込んでみたり動作の後に動作完了までウェイトを差し込んでみたりしても改善しませんでした。
> 問題点が分からず、またいい解決策も思いつかず、ほとほと困り果てております。
> 皆様のお知恵をお借り出来たらと思います。
> よろしくお願い致します。

■ウェイト:1フレーム
を設定すると、マップイベントが主人公の方を向いてしまうので、全て削除した良いです。

範囲外に出る時の処理は、セルフ4が1以上の時だけ実行するようにした方が良いです。
■条件分岐(変数): 【1】 CSelf16 が CSelf10 以上 【2】 CSelf17 が CSelf11 以上
-◇分岐: 【1】 [ CSelf16 が CSelf10 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf4 が 1 以上
|-◇分岐: 【1】 [ CSelf4 が 1 以上 ]の場合↓
| |■サウンド:SE ファイル[SE/[System]Get1_default.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
| |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
| |■変数操作: CSelf4 = 0 + 0
| |■
|◇分岐終了◇
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf17 が CSelf11 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf4 が 1 以上
|-◇分岐: 【1】 [ CSelf4 が 1 以上 ]の場合↓
| |■サウンド:SE ファイル[SE/[System]Get1_default.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
| |■動作指定:このイベント / 上向 / ウェイト 2フレーム / 右向 / ウェイト 2フレーム / 左向 / ウェイト 2フレーム / 下向 / すり抜けOFF
| |■変数操作: CSelf4 = 0 + 0
| |■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇


記事No: 21504 [関連記事]
タイトル範囲内に入ると反応する自動ドアのようなイベントをコモンで作りたい
投稿日: 2023/03/07 15:13
投稿者猫大好き [erdriprW988]

[やりたいこと]
プロ版で一定範囲内に入るとSEと共にイベントにセットされたチップが変化して扉が開き、範囲内にいる間は開き続け範囲外に出るとSEと共に閉じる、というのをコモンでやりたいです。
[やってみたこと]
レビニアさんの「【ウディタ解説】近づくと起動して離れると停止するコモンを作る【自作】」と未知広さんの「ウディタでお手軽にドアを開け閉めする演出コモンを作成! めっちゃ丁寧に解説します」を参考に以下のコモンを作りました。

起動条件 呼び出しのみ

▼呼出元マップイベントと主人公の距離を算出
■変数操作+:CSelf10[接触範囲X]=このマップイベントの接触範囲拡張X
■変数操作+:CSelf11[接触範囲Y]=このマップイベントの接触範囲拡張Y
■変数操作+:CSelf12[呼出元X]=このマップイベントのX座標(精密)
■変数操作+:CSelf13[呼出元Y]=このマップイベントのY座標(精密)
■変数操作+:CSelf14[主人公X]=主人公のX座標(精密)
■変数操作+:CSelf15[主人公Y]=主人公のY座標(精密)
■変数操作+:CSelf16[Evとの距離X]絶対値=Cself14[主人公X]-CSelf12[呼出元X]
■変数操作+:CSelf17[Evとの距離Y]絶対値=Cself15[主人公X]-CSelf13[呼出元Y]
▼接触範囲外なら「0」を返す(停止)
■変数操作+:CSelf0[マップEvID]=現在のマップID
■ウェイト:1フレーム
■条件分岐(変数):【1】CSelf16[Evとの距離X]がCSelf10[接触範囲X]以上【2】CSelf17[Evとの距離Y]がCSelf11[接触範囲Y]以上
◇分岐:【1】[CSelf16[Evとの距離X]がCSelf10[接触範囲X]以上]の場合↓
│■サウンド:SEファイル[SE/開く音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
│■ウェイト:1フレーム
│■動作指定:このイベント/上向/ウエイト2フレーム/右向/ウェイト2フレーム/左向/ウェイト2フレーム/下向/すり抜けOFF
│■変数操作:Cself4[起動/停止]=0+0
│■イベント処理中断
│■
◇分岐【2】[CSelf17[Evとの距離Y]がCSelf11[接触範囲Y]以上]の場合↓
│■サウンド:SEファイル[SE/開く音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
│■ウェイト:1フレーム
│■動作指定:このイベント/上向/ウエイト2フレーム/右向/ウェイト2フレーム/左向/ウェイト2フレーム/下向/すり抜けOFF
│■変数操作:Cself4[起動/停止]=0+0
│■イベント処理中断
│■
◇分岐終了◇
■条件分岐(変数):【1】Cself4【起動/停止】が0と同じ【2】Cself4【起動/停止】が1以上
│◇分岐:【1】Cself4【起動/停止】が0と同じの場合↓
│▼接触範囲内で未起動なら「1」を返す(起動)
│■サウンド:SEファイル[SE/閉まる音.mp3]音100%(0チャンネル)再生/遅延:0フレーム
│■ウェイト:1フレーム
│■動作指定このイベント/下向/ウエイト2フレーム/左向/ウェイト2フレーム/右向/ウェイト2フレーム/上向/すり抜けON
│■変数操作:Cself4[起動/停止]=1+0
│■
◇分岐:【2】[CSelf4[起動/停止]が1以上]の場合↓
│▼接触範囲内且つ既に起動しているなら「2」を返す(起動済み)
│■ウェイト1フレーム
│■変数操作:CSelf4[起動/停止]=2+0
│■
◇分岐終了◇


イベントには上から順に
1:閉じているドア
2:少し開いているドア
3:更に開いているドア
4:開ききったドア
と、なっているマップチップをセットしました。
[やってみた結果、どううまくいかないか]
縦に扉のイベント上を通り抜けようとするとSEはちゃんとなるのですが扉がガチャガチャ動いて自然に開いているように見えません。その時SEが何度も重なって聞こえてしまったりもします。イベント横を縦に通ると扉がビクビク動いているような挙動をしてしまいます。
また、イベントを横に通り抜けると今度はSEが鳴った後扉が開きっぱなしになってしまいます。こうなると縦に通り抜け直さないと範囲内に入った時びくつくだけでSEも鳴らず、上手く動きません。
別のコモンを使ってこの自動ドアのコモンのCSelf4の起動/停止をピクチャ表示して監視したところ、縦に通り抜けた時は範囲外で0、範囲内で1、横に通り抜けた時は1度通ってしまうと後の扉が開きっぱなしになっている時は2になり続けていました。
スムーズに自然な動きで扉の開け閉めできるようにセットしたいのですが、私の知恵ではどこが悪いのか分かりません。
試しにウェイトを1フレームを所々に差し込んでみたり動作の後に動作完了までウェイトを差し込んでみたりしても改善しませんでした。
問題点が分からず、またいい解決策も思いつかず、ほとほと困り果てております。
皆様のお知恵をお借り出来たらと思います。
よろしくお願い致します。


記事No: 21503 [関連記事]
タイトルできました!【解決】
投稿日: 2023/02/20 17:53
投稿者ウディタ初心者 [erdrreeri430]

あ様、ご丁寧にありがとうございます…!

解説を元に試してみたところ、

(2)「Ev172 X[戦]敵/味方・勝敗判定」19行目〜の 味方が全滅しているかチェック
している部分が無効になっている場合

ご指摘の通り、こちらのコモンが上手く動いていなかったようで、最新版のものと入れ替えたところ、エラーが出ることなくゲームオーバーイベントに行くことが出来ました!
(元のコモンと使用しているコモンを見比べたところ、内容が違うところがありましたので、そのせいだったのかなと思います)

自分の力では解決できなかったところでしたので、とても助かりました!
エラー再現までしてくださいまして、本当にありがとうございます!!


記事No: 21502 [関連記事]
タイトルRe: 戦闘勝利時、敵と相打ちで全滅するとエラーが出る
投稿日: 2023/02/19 18:07
投稿者 [rrdeege781]

サンプルゲームで相打ちになる設定にしても
ちゃんとゲームオーバーになるようです。
改造したコモンがうまく動作していない可能性が高いと思います。

設定
ウルファール:レベル=1,HP=1,最大HP=1,基本防御力=3,基本敏捷性=1
ゴブリン:最大HP=1,防御力=1,敏捷性=100
ゴブリン 行動AI:ポイズンミストを常に実行(100%)
ポイズンミスト:成功率100%,┏ 何に影響する?=-1なし,毒状態付加,付与率=100%
状態設定 毒:HP増減±[固定]/1ターン終 = -100

ゴブリンがポイズンミストを唱えてウルファールが毒状態になる

ウルファールが通常攻撃でゴブリンを撃破

毒ダメージでウルファールが戦闘不能

「Ev213 ゲームオーバーイベント」発生


下記(1)(2)のいずれかで 、無限ループに入る状況は再現できました。
(1)「Ev188 X◆戦闘処理」の73行目,120行目,164行目で「Ev172 X[戦]敵/味方・勝敗判定」を
呼び出している部分の3か所すべてが無効になっている場合(削除したなど)
(2)「Ev172 X[戦]敵/味方・勝敗判定」19行目〜の 味方が全滅しているかチェック
している部分が無効になっている場合

(1)は3か所すべてを無効にしないといけないので (2)の可能性が高いのかなと思います。


他の理由で無限ループに入る可能性もあると思いますが、
原因がパッと思い浮かびません。
Ev191,192でコマンド入力できなくても、Ev188まで戻ってくるようですし、
Ev188やEv172を改造していない場合、これ以上わかりません。
他の人にも聞いてみてください。


| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |


- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No 削除キー