Discuss Scratch
- Discussion Forums
- » 日本語
- » 3Dについて話し合うトピック ※最初に#1を必ず読もう※
- gonnkirua3
- Scratcher
27 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
3Dの登っている様子を作りたいのですがどうすればいいですか?
使いたいゲームのURL https://scratch.mit.edu/projects/458200955/
使いたいゲームのURL https://scratch.mit.edu/projects/458200955/
- KimiruHamiru
- New to Scratch
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
3Dっぽさの基本は「 3Dの登っている様子を作りたいのですがどうすればいいですか?近いものは大きく見える」だと思うので、
使いたいゲームのURL https://scratch.mit.edu/projects/458200955/
「岩のデコボコ」が画面下に流れていく部分で
大きさを((大きさ)*(1.01))% にするみたいなことをすると、「3Dの登っている様子」のイメージに近いかなと思います。
その動きに合わせた背景を描くと、結構それっぽくなると思います。
そういう考え方で作ったのがこれ
https://scratch.mit.edu/projects/571091320
です。下のほうだけ切り取って見ると近いイメージになると思います。
「*1.01」よりも、もうちょっとガチ目な計算をするならこっち
https://scratch.mit.edu/projects/639695894
とか
https://scratch.mit.edu/projects/408575719/
が参考になるかも知れません。
y座標の変化の仕方(下に来るほど大きく速く動くはず)とか、落ちてくる岩の大きさや転がり方の考え方も変えると、よりリアルな感じになると思います。
ただ、ゲームの場合、リアルさとか正確な計算とかよりは、
かっこよさとか気持ちよさとか遊びやすさとかが重要かなと思います。
Last edited by KimiruHamiru (March 15, 2022 15:11:33)
- StrongPeanut
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
#63
Wiki にこんなページがあるので参考にしてみてください。
Wiki にこんなページがあるので参考にしてみてください。
やぁ、低浮上ラグビー部だよ.
みんなで日本代表を応援しよう!
みんなで日本代表を応援しよう!
- KimiruHamiru
- New to Scratch
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
「パララックス(parallax)」辺りのキーワード 簡単なのでいいので3Dって具体的にどのように作ればいいのでしょうか…
で探してみると簡単なプロジェクト例が見つかるかも、と思います。
「パララックスなんて3Dじゃない!」と考える人もいると思いますが、演算精度がゆるいことを除けば、パララックスも充分3Dです。
あと、「このトピック自体」にいろいろ参考になる情報は、かなりまとまってるはずです。
まだ4ページほどしかないので、全部読んでみても良いかも知れません。難しい話もあると思いますが、簡単な話もあると思います。
その上で、あらためて、
3Dの基本とは、
・遠いものは小さく見える
・遠いものは小さく動く
「だけ」
と言ってもよいです。
「ネコが表示されている画面」で、
「50%の大きさ」のネコをその隣に表示した場合、
「50%の大きさのネコ」は遠くにいるように感じる、あるいは読み取れるはずです。
1m先にいる猫は、2m先にいれば50%の大きさに見えます。
1m先にいる猫は、3m先にいれば33.3…%の大きさに見えます。
正確に計算するとよりよいですが、かなりゆるい計算でも、あるいは計算しなくても、
なんとなーく「これとこれは同じ大きさなはず!」と人間が予想できる絵であれば、人間の目は充分錯覚します。
「ネコが横に動く画面」で「50%の大きさのネコ」を
「50%の速度」で動かした場合、
「50%の大きさのネコ」は遠くで動いているように感じる、あるいは読み取れるはずです。
これは、電車の窓から外を眺めている時、「近くの電柱」は「すごいスピード」で動くように見えるのと同じです。
あとは、「大きさを変える、動かす」で、どう見せるとかっこいいか、どう見せるとリアルっぽいか、という話です。
私の考えで言えば、ScratchWikiの記述は激ムズです。
「時間をかければ一般常識から組み立てて自力でたどり着ける程度の知識を既に持っている人」でなければ、「テキストを読んで」理解するのは難しいと思います(コードを丸写しして動かせるようであれば、「コードを読んで」そこから理解を進めることはできると思いますが、それであるなら、既に動いているScratchのプロジェクトを探して読み込むのと大差ないです)。
- KimiruHamiru
- New to Scratch
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
「スプライトを好きな場所に動かせる、スプライトの大きさを変えられる」というのは普通にできるでしょうか。
例えば、こんなコード
ここに上の説明のような3Dの仕組みを取り入れるなら、
とりあえず上のコードみたいなのを動かしてみて「なんか3Dに見える!」と感じたら、
・どうコードを書くとどう見えるのか、どう感じるのか
とかをまずは試して改造したりしてみるのがいいと思います。
いろいろ作りこんでいくと「どんどん読みにくく、コードが多くなって、処理が重くなっていく」と思いますが、そこまで進んだら
・すでにあるプロジェクトでは、「複雑さ」とか「速度」にどう対応しているのか考える
とかいった方向に進むのがいいかなと思います。
例えば、こんなコード
@greenFlagがクリックされたときは動かせて、意味は分かるでしょうか。
<>まで繰り返す
[元の大きさ v]を(100)にする
[x v]を(マウスのx座標)にする
[y v]を(マウスのy座標)にする
end
@greenFlagがクリックされたとき
<>まで繰り返す
大きさを(元の大きさ) % にする
x座標を(x)、y座標を(y)にする
end
ここに上の説明のような3Dの仕組みを取り入れるなら、
@greenFlagがクリックされたときみたいな形になります。1とか2とかが「とおさ」です。遠くの物は小さく見えて、小さく動きます。
<>まで繰り返す
[元の大きさ v]を(100)にする
[x v]を(マウスのx座標)にする
[y v]を(マウスのy座標)にする
end
@greenFlagがクリックされたとき
<>まで繰り返す
大きさを((元の大きさ)/(1)) % にする
x座標を((x)/(1))、y座標を((y)/(1))にする
end
@greenFlagがクリックされたとき // これは別スプライトのコード
<>まで繰り返す
大きさを((元の大きさ)/(2)) % にする
x座標を((x)/(2))、y座標を((y)/(2))にする
end
とりあえず上のコードみたいなのを動かしてみて「なんか3Dに見える!」と感じたら、
・どうコードを書くとどう見えるのか、どう感じるのか
とかをまずは試して改造したりしてみるのがいいと思います。
いろいろ作りこんでいくと「どんどん読みにくく、コードが多くなって、処理が重くなっていく」と思いますが、そこまで進んだら
・すでにあるプロジェクトでは、「複雑さ」とか「速度」にどう対応しているのか考える
とかいった方向に進むのがいいかなと思います。
Last edited by KimiruHamiru (April 9, 2022 22:23:07)
- StrongPeanut
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
思いっきり平面ですが、3D っぽく見えるものを作っています。
Beautiful Ballシリーズです。
なぜ3Dのように見えるかというと、玉によってスピードが速かったり遅かったりします。
これで一定 3D らしきものは作れます。
Beautiful Ballシリーズです。
なぜ3Dのように見えるかというと、玉によってスピードが速かったり遅かったりします。
これで一定 3D らしきものは作れます。
やぁ、低浮上ラグビー部だよ.
みんなで日本代表を応援しよう!
みんなで日本代表を応援しよう!
- melon-budou
- Scratcher
28 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
@KimiruHamiru
最初の文がものすごく参考になりました!!
特に「遠くにあるものは小さく動く」が(プログラミングの本でやったのに…)思いつきませんでした…
ありがとうございます!
最初の文がものすごく参考になりました!!
特に「遠くにあるものは小さく動く」が(プログラミングの本でやったのに…)思いつきませんでした…
ありがとうございます!
- sansuu-daisuki1217
- Scratcher
64 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
3D無理…… xとyでもギリギリ
⚑ がクリックされたとき
ずっと
戸惑う
end
よろしく
まあintroが好きです^^
- koudai1209
- Scratcher
19 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
ディスカッションフォーラムの書き方(BBコード)↓
̰ ̰͇̰B̰͇̰B̰͇̰C̰͇̰o̰͇̰d̰͇̰ḛ͇̰の̰͇̰基̰͇̰本̰͇̰
͟ ͟͟͟文͟͟͟字͟͟͟列͟͟͟を͟͟͟扱͟͟͟う͟͟͟
[b]文字列[/b] 太字
[i]文字列[/i] 斜体
[u]文字列[/u] 下線
[s]文字列[/s] 取り消し線
[big]文字列[/big] 大きく(17px 通常は13px)[1]
[small]文字列[/small] 小さく(10px)[1]
[center]文字列[/center] 中央に表示
͟ ͟͟͟色͟͟͟を͟͟͟つ͟͟͟け͟͟͟る͟͟͟
[color=#888888]文字列[/color] 色をつける(16進数コード)
[color=red]文字列[/color] 色をつける(色名)
͟ ͟͟͟リ͟͟͟ン͟͟͟ク͟͟͟と͟͟͟画͟͟͟像͟͟͟
単純にURLを貼ってもリンクになるが、BBCodeを使うと表示文字列も自由にできる。New Scratcherは、Scratchウェブサイト外のリンクを貼ったり、
画像を挿入したりできない。(行うと、エラーになる)
リンク
[url=http://scratch.mit.edu/]リンク[/url] リンク
画像
[img]https://scratch.mit.edu/images/logo_sm.png[/img]
画像のリンクにはhttp:// または https:// を最初につけなければいけない。また、画像のホストの制限も適用され、限られたサイトの画像しか使え
ない。
by.scratch-wiki
、
- inoking
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
Wiki に 3Dプロジェクトの基本 というものがあります。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」ではない
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- sansuu-daisuki1217
- Scratcher
64 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
3Dプロジェクトの基本 というものがあります。Wiki に
それを読んだらバグだらけ…
よろしく
まあintroが好きです^^
- inoking
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
バグとは Wiki に書かれてあるとおりに作っても動かないということでしょうか? それを読んだらバグだらけ…
であれば Japanese Scratch-Wiki専用トピック で知らせてあげてください。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」ではない
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- sansuu-daisuki1217
- Scratcher
64 posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
バグとは Wiki に書かれてあるとおりに作っても動かないということでしょうか? それを読んだらバグだらけ…
であれば Japanese Scratch-Wiki専用トピック で知らせてあげてください。
そうでなく、3Dintroを作成すると、
大変なことになりました
よろしく
まあintroが好きです^^
- inoking
- Scratcher
1000+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
それは sansuu-daisuki1217 さんの問題です。 そうでなく、3Dintroを作成すると、
大変なことになりました
がんばってください。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」ではない
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- KimiruHamiru
- New to Scratch
500+ posts
3Dについて話し合うトピック ※最初に#1を必ず読もう※
画面上に表示されているものは、 3Dできません。解説求む
・小さく表示すると「遠く」
・大きく表示すると「近く」
にあるように感じられます。
極論ですが
・それが3Dの全て
・それ以上のことは「かざり」
です(極論ですが)。
テキトウに大きくしたり小さくしたりしても「案外3Dっぽい」です。
(「許されるテキトウさ加減」は、見る人の感じ方次第です)
それ以上のこと=「かざり」として、
「3倍遠くにあるものは1/3の大きさで見える」みたいな仕組み、つまりは、
見る人から画面までの距離 ÷ (見る人から画面までの距離 + 画面から描くものまでの距離)
みたいな計算をすると、「かなりもっともらしい」です。
もっと言えば、「テキトウさ加減」を調整する美的センスが不要なので、ある意味簡単です。
「見る人から画面までの距離」を「480ピクセル」
「画面から描くものまでの距離」を「z座標」
と表現するなら、
480/(480+z座標)
ブロックで言えば
[x v]を(マウスのx座標)にするみたいになります。上のコードは、
[y v]を(マウスのy座標)にする
[z v]を(0)にする
[w v]を((480)/((480)+(z)))にする
大きさを((100)*(w))% にする
x座標を((x)*(w))、y座標を((y)*(w))にする
「zはいつも0」つまり「描かれるものは全て画面と同じ奥行きにある」
としてるので、2Dです。
これの「zを0以外に」して「複数の物を描く」のが、「パララックス」の基礎になります。
zが変化するように、ひとひねりして、
@greenFlagがクリックされたときとかすると結構3Dっぽいと感じるかもと思います。
<>まで繰り返す
[x v]を(マウスのx座標)にする
[y v]を(0)にする
[z v]を(マウスのy座標)にする
[w v]を((480)/((480)+(z)))にする
大きさを((100)*(w))% にする
x座標を((x)*(w))、y座標を((y)*(w))にする
end
書き方や数字がちょっと違ってますが、
https://scratch.mit.edu/projects/570021949/
はこれを調整したものです。
ここまでくると「2Dでできることは3Dでもできる」、「2Dでできることを増やすと3Dが充実する」ようになると思います。