Discuss Scratch
- Discussion Forums
- » 日本語
- » 3Dについて話し合うトピック ※最初に#1を必ず読もう※
- yukku
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
質問です。
塗りつぶしありの3Dゲームを作っているのですが描画する順番は何を基準にソートしたらいいですか?
塗りつぶしありの3Dゲームを作っているのですが描画する順番は何を基準にソートしたらいいですか?
2022年くらいまで良く日本語フォーラムにいましたが今はもう手を引いてますね
- inoking
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
奥行きの深い順の一択と思います。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- yukku
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
「一番奥の点のz座標」をまだ試していませんでした。なんかいけそうなので試してきます。
2022年くらいまで良く日本語フォーラムにいましたが今はもう手を引いてますね
- inoking
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- oligami
- Scratcher
100+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
普通は奥から順でいいと思いますが(自分はzではなくx²+y²+z²派)、本当にちゃんとしたいなら、面と面※制限ありの交線を計算したり、あと何か(z-sort法だと、いい方法は思いつかないけど、すべての面 ※制限なし の交線を計算して、ぶつ切りにしてから、z-sortで描画するくらいでしょうか。x²+y²+z²ならば、すべての頂点を自分から距離と角度、※ベクトルで表して、三角関数で角度をいろいろした値が一定値を超えた場合は計算並びに画面から排除、その後、すべての面※制限ありと、“すべての頂点との距離ごとで”球との交線から、ぶつ切りにして、遠い順に描画するくらいかな)、ぱっと思いついたやつはこれくらいしかないし、うまく文章に著せなかったからたぶんかなりわかりづらいと思う。①,②とかそんな感じで書けばもっとわかりやすかった気がする。
後輩にRust(プログラミング言語)やろうぜと言ったらゲームのRustと勘違いされた()
そんな流行ってんのそのゲーム?
- sapphire-23
- Scratcher
4 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
(カメラx)の変数を作ることは、わかりますがその変数をどのように動かせばいいかわかりません。
(カメラy)
(カメラz)
(オブジェクトx)
(オブジェクトy)
(オブジェクトz)
(ワールドx)
(ワールドy)
(ワールドz)
Last edited by sapphire-23 (June 13, 2021 08:25:26)
- narita6gou
- Scratcher
37 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
とりあえず枠だけでも回転させなくてもいいから▢四角▢作りたい
これは署名と言って、手動で描いたものではありません。
無駄なトピック作成はやめましょう。
- KimiruHamiru
- New Scratcher
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
3Dに何を求めるかというのは人それぞれでいいと思うので、
「変数もペンも使わないけど3D」とかもできます。
https://scratch-mit-edu.ezproxy.canberra.edu.au/projects/571091320/
「変数もペンも使わないけど3D」とかもできます。
https://scratch-mit-edu.ezproxy.canberra.edu.au/projects/571091320/
- KimiruHamiru
- New Scratcher
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
ペンの使い方はもう知っている とりあえず枠だけでも回転させなくてもいいから▢四角▢作りたい
https://scratch-mit-edu.ezproxy.canberra.edu.au/projects/570598920/
のであれば、たぶんnarita6gouさんが3Dに向けて次に挑戦してみるべきことは
ペンを下ろすみたいなコードで「ペンで図形を描くこと」かなと思います。
x座標を(0)、y座標を(0)にする
x座標を(100)、y座標を(0)にする
x座標を(100)、y座標を(100)にする
x座標を(0)、y座標を(100)にする
x座標を(0)、y座標を(0)にする
ペンを上げる
どんな数字を入れるとどんな絵がかけるか、ということになれてくれば
「好きなように四角を作る」のはすぐできると思います。
3Dとなるとその「どんな数字を入れる」、のところをコンピュータに計算させるためにいろいろ計算が出てくると思いますが、
とにかく
数字を使って「ペンで図形を描くこと」に、なれるとよいと思います。
Last edited by KimiruHamiru (Sept. 16, 2021 12:10:54)
- mikan__s
- Scratcher
71 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
質問です。
2Dではx1,y1,x2,y2のようにして長方形の一面の当たり判定を考えますが、3D上でも6面をこのようにして計算できるんですか?
あと、出来たとしても3Dは6面あるので6*2(1面に対して2個の座標)でx1,y1,z1~x16,y16,z16まで必要になるという計算になりますが、もっと数値を減らす方法はありますか?
2Dではx1,y1,x2,y2のようにして長方形の一面の当たり判定を考えますが、3D上でも6面をこのようにして計算できるんですか?
あと、出来たとしても3Dは6面あるので6*2(1面に対して2個の座標)でx1,y1,z1~x16,y16,z16まで必要になるという計算になりますが、もっと数値を減らす方法はありますか?
- KimiruHamiru
- New Scratcher
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
どういう場面で、何をやりたいかによってプログラムの作りは違ってくると思うのですが、 2Dではx1,y1,x2,y2のようにして長方形の一面の当たり判定を考えますが、3D上でも6面をこのようにして計算できるんですか?
あと、出来たとしても3Dは6面あるので6*2(1面に対して2個の座標)でx1,y1,z1~x16,y16,z16まで必要になるという計算になりますが、もっと数値を減らす方法はありますか?
「x1,y1,x2,y2のようにして長方形の一面の当たり判定を考えます」
というのは、例えば
「左下の座標(x1, y1)と右上の座標(x2, y2)から、長方形の中か外か判断する」
言い換えると
「x1からx2の範囲」
「y1からy2の範囲」
という2つの式だけ、4つの数値で、
「長方形の中か外かを判定できる」
というとこまで、いいでしょうか?
この考え方を延長するなら、
「x1からx2の範囲」
「y1からy2の範囲」
「z1からz2の範囲」
という3つの式だけ、6つの数値で、
立方体の「中か外か」を判定できる、
ということは言えます。
立方体の「表面かどうか」を判定する
といった話になると、もうちょっと複雑な話になると思いますが、
「立方体の中か外かを判定」できればいいなら、そこそこ簡単、と言えると思います。
- mikan__s
- Scratcher
71 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
間違えました。
12個の頂点の数値を入れるとなると、立方体の頂点は8個なのでどれか1つはかぶりますね。
あと、
「x1からx2の範囲」
「y1からy2の範囲」
「z1からz2の範囲」
ということは、長方形は対角線でつなげるような点の数値があると形が決まります。
そして、立方体(直方体)の中の頂点と頂点を立方体(直方体)の中を通る線がつなげれるところの頂点の数値を入れると形が決まります。
これを使って当たり判定が作れる、ということですか?
12個の頂点の数値を入れるとなると、立方体の頂点は8個なのでどれか1つはかぶりますね。
あと、
「x1からx2の範囲」
「y1からy2の範囲」
「z1からz2の範囲」
ということは、長方形は対角線でつなげるような点の数値があると形が決まります。
そして、立方体(直方体)の中の頂点と頂点を立方体(直方体)の中を通る線がつなげれるところの頂点の数値を入れると形が決まります。
これを使って当たり判定が作れる、ということですか?
- KimiruHamiru
- New Scratcher
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
(直方体でしたね。やんわり指摘ありがとうございます) 「x1からx2の範囲」
「y1からy2の範囲」
「z1からz2の範囲」
ということは、長方形は対角線でつなげるような点の数値があると形が決まります。
そして、立方体(直方体)の中の頂点と頂点を立方体(直方体)の中を通る線がつなげれるところの頂点の数値を入れると形が決まります。
これを使って当たり判定が作れる、ということですか?
答えになるかわかりませんが、こんなプログラム
@greenFlagがクリックされたときを書いたことがなかったら試してみると良いです。大量のネコがステージ全体に分身します。
たくさんスタンプする // この定義を作るときは「画面を再描画せずに実行する」にチェックしとくと一瞬で描画がおわる
定義 たくさんスタンプする
消す
(1000)回繰り返す
(どこかの場所 v)へ行く
スタンプ
end
これを
@greenFlagがクリックされたときと書き換えると、ネコが「右の方にいるとき」だけスタンプされます。
消す
(1000)回繰り返す
(どこかの場所 v)へ行く
もし<(0)<(x座標)>なら
スタンプ
end
end
@greenFlagがクリックされたときとすると、ネコが帯状に並びます。
消す
(1000)回繰り返す
(どこかの場所 v)へ行く
もし<(0)<(x座標)>なら
もし<(x座標)<(100)>なら
スタンプ
end
end
end
これが「x1からx2の範囲」の、私のイメージです。
条件式は、
もし<<(0)<(x座標)>かつ<(x座標)<(100)>>ならこう書いてもいいです。
「xしかない1次元」から、「xとyがある2次元」へはこのまま話を拡張できると思います。
「xとyしかない2次元」から、「xとyとzがある3次元」へは、Scratchの仕様上、全体を「変数を使った書き方」に書き換えることになると思いますが、考え方はこの延長です。
「対角線」のイメージで言うなら、たとえば
直方体の対角線を「宙に浮いた、とても頑丈な針金」として、
世界の上下左右前後から壁が押し寄せて来て、針金に当たったら壁は止まる、
上下左右前後の6枚の壁が全部止まった時、残った空間が直方体、
という感じかなと思います。
実際問題として当たり判定が「作れるか」どうか、というのは「直方体と何が」当たった判定か、とか「どれだけの時間内に何回判定する必要があるか、どんな性能のコンピュータ上で実行するか」とか「xyz軸に沿わないような回転した直方体を考慮するか」とか「そもそも相手は点なのか直方体なのか球なのか動き回るイカなのか」とか条件がいろいろ出てくるので、文字通り「期待通り」に「できる」かは、何とも言えない、条件次第、期待する内容次第、ということになると思いますが、ロジックとしては「当たり判定は作れる」です。
- mikan__s
- Scratcher
71 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
ありがとうございます。
https://turbowarp.org/569367564/ これはTurbowarpですが、当たり判定が出来ました。
ですが、新しい問題も出てきて、当たったら元の場所に戻りますがガタガタします。
この問題はどう解決しますか。
https://turbowarp.org/569367564/ これはTurbowarpですが、当たり判定が出来ました。
ですが、新しい問題も出てきて、当たったら元の場所に戻りますがガタガタします。
この問題はどう解決しますか。
- oligami
- Scratcher
100+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
二次元の床の当たり判定とかと同じでいいと思います ありがとうございます。
https://turbowarp.org/569367564/ これはTurbowarpですが、当たり判定が出来ました。
ですが、新しい問題も出てきて、当たったら元の場所に戻りますがガタガタします。
この問題はどう解決しますか。
後輩にRust(プログラミング言語)やろうぜと言ったらゲームのRustと勘違いされた()
そんな流行ってんのそのゲーム?
- mikan__s
- Scratcher
71 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
二次元の床の当たり判定とかと同じでいいと思います一応二次元の床判定と同じようなプログラムです。
- KimiruHamiru
- New Scratcher
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
https://turbowarp.org/569367564/ これはTurbowarpですが、当たり判定が出来ました。「wキーを押し続けるとcamera_zの値が100と103で振動する」ということかと思うのですが、
ですが、新しい問題も出てきて、当たったら元の場所に戻りますがガタガタします。
この問題はどう解決しますか。
今のプログラムはおおざっぱに言えば、
描画
当たり判定
操作
戻す
の順になってる、
のがマズそうです。
戻すべきかどうかの判断が、操作前の情報に基づいている
ので正しく戻れてないようです。
「アレがコレを呼び出す」とか、「この定義の機能の範囲はここまで」、
とかいった辺りがちょっとフクザツなので、どう直すべきかは考え方次第と思いますが、
描画
操作
当たり判定
戻す
の順になれば、解決すると思います。