Discuss Scratch

TakahashiHarumi
Scratcher
2 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

質問です。
x,y軸の角度を180度変えたときにx軸なら左右が、y軸なら上下が反転したものが表示されてしまいます。
それと、自分の視点を左右と上下に変えるためにx,y軸の角度値を変更しているのでが、視点を上下に変えようとしてy軸角度を変えると、z=0を中心に回転してしまいます。これを自分中心で回転させたいです。
この2つをかいけつするためにはどうすればいいでしょうか?
KimiruHamiru
New Scratcher
500+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

TakahashiHarumi wrote:

x,y軸の角度を180度変えたときにx軸なら左右が、y軸なら上下が反転したものが表示されてしまいます。
視点を上下に変えようとしてy軸角度を変えると、z=0を中心に回転してしまいます。これを自分中心で回転させたいです。
https://scratch.mit.edu/projects/1041991062/
について言えば、

TakahashiHarumi wrote:

x,y軸の角度を180度変えたときにx軸なら左右が、y軸なら上下が反転した~
は、正しい動作、で、その次の

TakahashiHarumi wrote:

~ものが表示されて
の部分、の問題と思われます。

現状で「表示するかどうか」は、
ある点が画面内にあるかどうか(2dxが-240から240、2dyが-180から180)の判定をしていると思いますが、ここで、
「距離(=視点、瞳、ピンホールカメラの穴の位置からの距離。二乗する計算上常にプラスになる)」ではなくて
「回転と移動操作後の点が、視点の前にあるか後ろにあるか(見ている方向が関係するのでマイナスにもなる)」による判定をする
必要があるかと思います。

現状では細かい問題があるように思えるので簡単に直すのは難しいのですが、
すごく大雑把には
定義 3次元→2次元(x)(y)(z)
...
[2dx v]を(((view)*(x))/(距離))にする
[2dy v]を(((view)*(y))/(距離))にする
[2dz v]を(((view)*(z))/(距離))にする
みたいなことをして2dzが0より大きいか、みたいな判定することになると思います。

TakahashiHarumi wrote:

視点を上下に変えようとしてy軸角度を変えると、z=0を中心に回転してしまいます。これを自分中心で回転させたいです。
の部分は、ごめんなさい。
どう操作するとどうなることが問題で、どうしたいのか、がよくわかりませんでした。
KimiruHamiru
New Scratcher
500+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

補足:

どう直すかは難しいのですが、
「視点の前にあるか後ろにあるかの判定」のコードを追加しようとした時に
障害となりそうな「細かい問題」と思うのは、

・変数「距離」の値を求める部分で、「x,y,z」のブロックが「引数(赤紫色)」じゃなく「変数(オレンジ色)」である。このため、(恐らく)意図した値になっていない
・座標変換後(回転と移動の操作をしたあと)の計算結果の座標値は2dx,2dyだけ残って、zの値が捨てられている(「画面座標系でのz=奥行」が使えない)
(派生して、「2dzをview*z/zにする」などと書くと計算上常にプラスになる)

という辺りです。

oligami
Scratcher
100+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

#261

TakahashiHarumi wrote:

質問です。
それと、自分の視点を左右と上下に変えるためにx,y軸の角度値を変更しているのでが、視点を上下に変えようとしてy軸角度を変えると、z=0を中心に回転してしまいます。これを自分中心で回転させたいです。
座標変換を行ってから回転行列を掛け(回転処理)、その後逆の座標変換を行うことによりできます。

後輩にRust(プログラミング言語)やろうぜと言ったらゲームのRustと勘違いされた()
そんな流行ってんのそのゲーム?
kirby0805
Scratcher
18 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

3Dって簡単に言うなら「奥行き(距離)は大きさで表現している」みたいな認識で合ってますか?
KimiruHamiru
New Scratcher
500+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

kirby0805 wrote:

3Dって簡単に言うなら「奥行き(距離)は大きさで表現している」みたいな認識で合ってますか?
画面上の縦横位置をx、y座標で表現する世界で
「3つ目の数字(奥行)、を、どう画面上で表現するか」
という3D描画の話に関しては、
「奥行き(距離)は大きさで表現している」で、合ってると思います。

手前にあるものと奥にあるものが元々同じ大きさとは限らないとか
描かれるものの一番手前と一番奥の物の大きさの違いが、画面上の1ドットの違いより小さい場合もある
し、
大きさ以外でも遠くの景色はかすんでみえる、洞窟の奥は暗く見える
みたいな表現もあるし、
重なった奥の物は手前のものに隠れる
みたいな話もあるので
大きさで表現する以外の方法もある、とも思います。
TakahashiHarumi
Scratcher
2 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

左右上下が逆さになる問題はz/距離で解決できました。
ですが、視点の方の解決策が分かりません。イメージしているものは
517100829←この番号の人のものです。
1043293205←これが今の自分のものです。
kokkun1
Scratcher
20 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

TakahashiHarumi wrote:

左右上下が逆さになる問題はz/距離で解決できました。
ですが、視点の方の解決策が分かりません。イメージしているものは
517100829←この番号の人のものです。
1043293205←これが今の自分のものです。

カメラの移動以前に、まだ描画部分にバグがあるのでそれを直さないとカメラの移動のバグを実際にテストして探すことは難しいと思います。
xとyを距離ではなくzで割る必要があります。
定義 3次元→2次元(x)(y)(z)
[2dx]を((view)*((x)/(z)))にする
[2dy]を((view)*((y)/(z)))にする
[2dz]を(z)にする

立体四目並べをAI (CPU)と対戦できるプロジェクトを作りました。
https://turbowarp.org/834076649/fullscreen?hqpen&fps=60
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

▢とかを3Dにしてるんだけどぷれいやーと一緒に動かしたりする方法って知ってる?数値のxyzに何らかの計算がひつようだけどそのけいさんのしくみおしえてほしい

Your text to link here…⬅でフォローしてね
sei6sei
Scratcher
100+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

#269
もう少し詳しくお願いします


  /ヽ   /ヽ
       ‘:’ ゙''“”  `':, にゃ
  ミ   ・ω・  ;,
 :; .    っ    ,つ
  `:;      ,;'
   `'∪“” '"∪
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

3dデータ(数字)にプレイヤーの座標といっしょに動いてプレイヤーの向きに向くけいさんの仕方を知りたいです

Your text to link here…⬅でフォローしてね
sei6sei
Scratcher
100+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

#271
その3Dデータは何を示していますか?


  /ヽ   /ヽ
       ‘:’ ゙''“”  `':, にゃ
  ミ   ・ω・  ;,
 :; .    っ    ,つ
  `:;      ,;'
   `'∪“” '"∪
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

へんしんおくれた
後で変えるけど戦闘機を表してる

Your text to link here…⬅でフォローしてね
sei6sei
Scratcher
100+ posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

#273
まず、どのような動きをさせたいのか明確に説明してくれますか?


  /ヽ   /ヽ
       ‘:’ ゙''“”  `':, にゃ
  ミ   ・ω・  ;,
 :; .    っ    ,つ
  `:;      ,;'
   `'∪“” '"∪
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

sei6sei wrote:

#271
その3Dデータは何を示していますか?
返信気づくようにうつだけだから

Your text to link here…⬅でフォローしてね
kokkun1
Scratcher
20 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

#271
プレーヤーの位置に敵を向かせるもの(自機狙い)を作りたいということですか?

立体四目並べをAI (CPU)と対戦できるプロジェクトを作りました。
https://turbowarp.org/834076649/fullscreen?hqpen&fps=60
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

kokkun1 wrote:

#271
プレーヤーの位置に敵を向かせるもの(自機狙い)を作りたいということですか?
プレイヤーのむきに戦闘機をむけるから カメラx かめらy のところに ▢の先端を向ける方法 ていったらわかる?

Your text to link here…⬅でフォローしてね
kokkun1
Scratcher
20 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

HARINEZUMINOKETU wrote:

kokkun1 wrote:

#271
プレーヤーの位置に敵を向かせるもの(自機狙い)を作りたいということですか?
プレイヤーのむきに戦闘機をむけるから カメラx かめらy のところに ▢の先端を向ける方法 ていったらわかる?
3Dということなので、ちゃんと書くと
プレイヤーの位置Pと戦闘機の位置Qがあるとき、QからPを向くときの縦と横の角度がほしいと言うことであっていますか?

立体四目並べをAI (CPU)と対戦できるプロジェクトを作りました。
https://turbowarp.org/834076649/fullscreen?hqpen&fps=60
HARINEZUMINOKETU
Scratcher
66 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

kokkun1 wrote:

HARINEZUMINOKETU wrote:

kokkun1 wrote:

#271
プレーヤーの位置に敵を向かせるもの(自機狙い)を作りたいということですか?
プレイヤーのむきに戦闘機をむけるから カメラx かめらy のところに ▢の先端を向ける方法 ていったらわかる?
3Dということなので、ちゃんと書くと
プレイヤーの位置Pと戦闘機の位置Qがあるとき、QからPを向くときの縦と横の角度がほしいと言うことであっていますか?
pの向きにQの向きを合わせるプログラムを知りたい

Your text to link here…⬅でフォローしてね
kokkun1
Scratcher
20 posts

3Dについて話し合うトピック ※最初に#1を必ず読もう※

HARINEZUMINOKETU wrote:

kokkun1 wrote:

HARINEZUMINOKETU wrote:

kokkun1 wrote:

#271
プレーヤーの位置に敵を向かせるもの(自機狙い)を作りたいということですか?
プレイヤーのむきに戦闘機をむけるから カメラx かめらy のところに ▢の先端を向ける方法 ていったらわかる?
3Dということなので、ちゃんと書くと
プレイヤーの位置Pと戦闘機の位置Qがあるとき、QからPを向くときの縦と横の角度がほしいと言うことであっていますか?
pの向きにQの向きを合わせるプログラムを知りたい
PとQの3次元座標から計算するということですか?
また、向きというのは角度の情報で合っていますか?

立体四目並べをAI (CPU)と対戦できるプロジェクトを作りました。
https://turbowarp.org/834076649/fullscreen?hqpen&fps=60

Powered by DjangoBB