一括表示

記事No: 21435
タイトルキャラクター斜め移動角度変更について
投稿日: 2022/06/29 13:45
投稿者ウディタ初心者 [FreiOeO877(海外)]

はじめまして、最近ウディタでRPGを作り始めました。
その際、クォータービュータイプのマップチップを使用しているのですが、キャラクターが斜めに移動する際、移動角度が鋭利なため、マップチップの道なりに沿って歩くことが出来ません。

ウディタではRPGツクールの様にクォータービュータイプは無理なのかなと諦めかけていたのですが、自分なりに調べたところ、RPGツクールの様に道なりに沿って、ゆるく斜めに移動しているキャラクターの動画がありました。
(Twitterにて、#ウディタなどで 検索して探しました)

しかし、どうすれば斜め移動の角度を変えられるのかが分からず、こちらに相談させていただきました。
ご存知の方がいましたら、ご教授いただけますと助かります…!

[やりたいこと]

キャラクターの斜め移動の角度変更。
(よくある角度のクォータービューマップチップに沿わせて歩かせたい)

[やってみたこと]
[やってみた結果、どううまくいかないか]

主人公の位置情報などを取得すればいいのかなと思ったりもしましたが、取得したところでそれをどうすればよいのか自分では判断できず。
ネット上にも斜め移動に関する情報はほぼなく、どうすればいいのか分かりませんでした。申し訳ないです…


記事No: 21451
タイトルRe: キャラクター斜め移動角度変更について
投稿日: 2022/07/24 08:33
投稿者へんぷく [rrgi1038(海外)]

はじめまして。
残念ながらウディタの移動機能は設定を変えられないのです。
その動画では、デフォルトの主人公を透明にしてピクチャで主人公と同じ画像を表示させているのではないでしょうか。
そうすれば自由に動かせますが、動かせる範囲の計算・他イベントとの重なり順・画面スクロールなど全てを自分で計算するしかありません。


記事No: 21452
タイトルRe: キャラクター斜め移動角度変更について
投稿日: 2022/07/24 12:43
投稿者はるしし [reWrpeLd256(海外)]

はじめまして。
クォータービュー用のマップチップを表示できているようなので、ある程度ウディタが扱える、という前提で簡単に手順をまとめてみました。

1)主人公の情報を取得
 ・主人公画面X座標
 ・主人公画面Y座標
 ・主人公の向き
 ・主人公のアニメパターン

2)クォータービュー用に座標や向きを変換
 a)使用しているマップチップ表示コモンがあれば、その座標変換計算式を使う
  一般的なものであれば以下のような計算式になっていると思います
  たいていの場合、表示座標を合わせるためになにかしらの補正が入ります
  ・変換座標X = 画面座標X + 画面座標Y
  ・変換座標Y = 画面座標Y - 画面座標X

 b)向きの変換
  4方向のキャラチップのパターン番号を8方向のキャラチップのパターン番号に変換する
  例えば、4方向で左向きなら8方向で左下向きになる等

 c)アニメーションを反映
  変換後の向きに応じたアニメパターンになるように補正する

3)ピクチャで表示

このコモンを並列実行(常時)で実行すればとりあえず近いものになると思います。お使いのマップチップに合わせて変換座標とピクチャ番号は調整してください。

■ウェイト:1 フレーム
■変数操作: CSelf10[ピクチャ番号] = 10000 + 0
▼ 主人公の情報を取得
■変数操作+: CSelf20[画面座標X] = 主人公 の 画面X座標
■変数操作+: CSelf21[画面座標Y] = 主人公 の 画面Y座標
■変数操作+: CSelf22[主人公向き] = 主人公 の 向き(1〜9)
■変数操作+: CSelf23[アニメパターン] = 主人公 の アニメパターン[0-4]
▼ クォータービュー用に変換
■変数操作: CSelf40[変換座標X] = CSelf20[画面座標X] + CSelf21[画面座標Y]
■変数操作: CSelf40[変換座標X] /= 3 + 0
■変数操作: CSelf40[変換座標X] += 100 + 0
■変数操作: CSelf41[変換座標Y] = CSelf21[画面座標Y] - CSelf20[画面座標X]
■変数操作: CSelf41[変換座標Y] /= 3 + 0
■変数操作: CSelf41[変換座標Y] += 130 + 0
■条件分岐(変数): 【1】 CSelf22[主人公向き] が 2 と同じ
-◇分岐: 【1】 [ CSelf22[主人公向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf42[変換向き] = 10 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf22[主人公向き] が 4 と同じ
-◇分岐: 【1】 [ CSelf22[主人公向き] が 4 と同じ ]の場合↓
|■変数操作: CSelf42[変換向き] = 4 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf22[主人公向き] が 6 と同じ
-◇分岐: 【1】 [ CSelf22[主人公向き] が 6 と同じ ]の場合↓
|■変数操作: CSelf42[変換向き] = 22 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf22[主人公向き] が 8 と同じ
-◇分岐: 【1】 [ CSelf22[主人公向き] が 8 と同じ ]の場合↓
|■変数操作: CSelf42[変換向き] = 16 + 0
|■
◇分岐終了◇
■変数操作: CSelf42[変換向き] += CSelf23[アニメパターン] + 0
▼ ピクチャで表示
■ピクチャ表示:CSelf10[ピクチャ番号] [中心]ファイル「CharaChip/[Special]Wolfarl.png」 X:CSelf40[変換座標X] Y:CSelf41
[変換座標Y] / 0(0)フレーム / パターン CSelf42[変換向き] / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


WoditorEvCOMMAND_START
[180][1,0]<0>(1)()
[121][4,0]<0>(1600010,10000,0,0)()
[103][0,1]<0>()("主人公の情報を取得")
[124][4,0]<0>(1600020,4096,-2,6)()
[124][4,0]<0>(1600021,4096,-2,7)()
[124][4,0]<0>(1600022,4096,-2,5)()
[124][4,0]<0>(1600023,4096,-2,16)()
[103][0,1]<0>()("クォータービュー用に変換")
[121][4,0]<0>(1600040,1600020,1600021,0)()
[121][4,0]<0>(1600040,3,0,1024)()
[121][4,0]<0>(1600040,100,0,256)()
[121][4,0]<0>(1600041,1600021,1600020,4096)()
[121][4,0]<0>(1600041,3,0,1024)()
[121][4,0]<0>(1600041,130,0,256)()
[111][4,0]<0>(1,1600022,2,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600042,10,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[111][4,0]<0>(1,1600022,4,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600042,4,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[111][4,0]<0>(1,1600022,6,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600042,22,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[111][4,0]<0>(1,1600022,8,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600042,16,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[121][4,0]<0>(1600042,1600023,0,256)()
[103][0,1]<0>()("ピクチャで表示")
[150][11,1]<0>(4096,1600010,0,6,4,1600042,255,1600040,1600041,100,0)("CharaChip/[Special]Wolfarl.png")
WoditorEvCOMMAND_END


記事No: 21453
タイトルRe: キャラクター斜め移動角度変更について
投稿日: 2022/07/25 19:55
投稿者ウディタ初心者 [erdrreeee387(海外)]

へんぷくさん、はるししさん、ご返答ありがとうございます!

やはりピクチャに置き換えないと、斜め移動の角度変更は出来ないんですね。
なんとなくイメージが沸いて、納得できました。

また、はるししさん。
ご丁寧に、コモンの組み立てありがとうございます…!
ご自分で、パッと作れてしまうなんて、すごいですね!!
皆様のコモン頼りの私にとっては、本当にありがたいです…(o_ _)o!

パッと読んだ感じでは、すぐに理解が出来なかったのですが、
ひとつづつゆっくりと確認しながら、確かめてみたいと思います…!
(なん箇所か意味が分かるところもあるので、さらに調べつつ試しつつ、頑張ります!)

ご尽力くださり、感謝いたします!