Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
<訂正>・23:13 28:38 W0の中身の(1.94-h)/3にlog(0.99)が掛け算されていませんでした。正しくは、W0の中身は f(θ)e^(f(θ)+((1.94-h)/3)log(0.99)) です。GeoGebraでは正しい方が入力されていたので、結果は正しいものが出力されています。<補足>・logの底はeです。・「~ブロック」と「~m」で表記揺れがありますが、どちらも同じ長さです。<追記>・ver1.16.1でのエンダーパールの初速の違いについて視聴者さんが調査してくださいました!ありがとうございます。これに伴いver1.9~1.20用の飛距離計算ツールを新たに作成しました。説明欄にリンクを追加しています。
logの底がeならlnで表した方がいいのではないでしょうか
それなできるだけ専門知識がない人にもわかりやすくするために、高校数学でもよく見るlogの形にしたのですが…W関数とか出てくるので意味なかった
@@ShoBoBon 草
へーなにいってんのかまったくわかんねー
0度のときのズレがtickで説明されたとき感動した
こんな場面でLambertW関数が出てくるとは思わなんだ
地味にwikiにゲーム内の初速とかがちゃんと記載されてるのすごすぎる
10:13 ワープする時にちょっと上にワープする理由がきれいにわかったのおもしろい
バージョンで法則が変わってくるとはこれまた厄介な...
コード解析なしの差分方程式からの導出でここまでの解を得られるのは凄い
いずれ村人たちも数学を思い付いてこの事実にたどり着くんだろうなぁ
シミュレーション仮説みたいだなシミュレーションされた中の世界の人が外の世界に気付いたらどうなるのだろうか…
@@いっぬ-v4yもし私達と同等の知的好奇心がその人たちのプログラムに書き込まれてるとすれば、絶望とかは無く、外の世界のまた外の世界への探究に向かうだけな気がする。
どうもなんらん。そもそもシュミレーションされてる世界でこちらを観測して何かを考えられるほど発達することが現代では考えられない
@@cyan4454それな
@@cyan4454 それを言い始めたらそもそもが成り立たないんですよねこれはあくまでシミュレーション“仮説”であって、現代で実現できるか否かは議論対象外ですから
あんたすげぇよ。俺文系だから数学はよくわかんねぇけどよ、こうやって気になったものを労力かけて検証していく人間が文明を進めてきたんだと思うぜ。
いうてほぼ高校の内容なんだから食わず嫌いすんなよ。主の動画、教材としても一級品なんだから文系云々で諦めるの勿体無い。
優しいヤンキーすき
話し方いたたたたた😅
@@しす-e1d現状寒いのお前だから気を付けな
@@しす-e1dネタはネタであると見抜ける人でないと(掲示板を使うのは)難しい
漸化式と床関数によって山が二つある分布になる理由を説明できたのは天晴と思った
物理法則は現実と違っても数学は同じものが使えるのがよくわかる
じゃなくて数学は未来永劫、たとえ宇宙が変わったとしても不変な論理によって作られてるからやで。
血反吐を吐きながら実験レポート書いたことを思い出す
こういうゲームの仕様とかひたすら検証するタイプの動画いいよね
ちょっとまとめただけで論文になりそうな内容ですごい(小並感)マイクラに限らず、離散的な空間での物理学は今後バーチャルスポーツが発展するきっかけにもなるだろうし、新しいゲームのアイデアにもなりそうちゃんとこういう研究が認められる学会ができるといいですね
普通のRTAに限らずスカイブロックRTAとか特にエンパ使うからこの情報めっちゃ大切になりそう(予約エンパとかミスがタイムロスやデスにつながりやすいし)
17:17だから階段をダッシュジャンプするとめっちゃ速く登れるのか、なるほど
マイクラでここまで論理的で洗練された動画初めて見て脱帽した! 文理問わずこの動画が拡散されてほしい。
9:17 ここ鳥肌立った
0:00~0:30入りの導入が論文とか学会発表のBackgroundすぎる。さては本職だな?
9:17しかもこの部分、二重スリット実験の量子化みたいなことが起こっててマジでおもろいこの場合量子化されてる量が時間を含むっていうのもおもろい
“入りの導入”とはなんですか?
@@aba-b7597 「(動画の)入り=最初」にある「導入」の章という意味ですね最初に来るのが導入ではなく閑話だったりAbstractだったりすることもあります
@@cromeakanami9602いや、ピークが2つあるのでどちらかと言えばStern-Gerlach実験だ。この場合の時間分割量子化は量子化されたスピン角運動量に対応するものだと思われる。
人間が作ったゲームなんだから法則があるのは当然だけど自然でこういう法則を最初に発見したら興奮して鼻血出そう
緻密すぎる動画!!これは伸びる
投稿お疲れ様です。こういう計算ができるようになりたいです。
こうやって突き詰めてくの大好き
mod制作者です。1.20.1と1.16.1で投げの仕様について比較してみました。## 初速の仕様// 1.20.1 net/minecraft/world/entity/projectile/Projectile// 1.16.1 net/minecraft/entity/projectile/ProjectileEntity速度ベクトル = (視点ベクトル + ランダムなベクトル * ばらつき定数 * アイテムのばらつきやすさ) * 投げ速度定数 + プレイヤーの移動べクトル## 視点ベクトル視点ベクトルは正規化されたプレイヤーの向いている方向のベクトルになります。一部のエンダーパール以外のアイテム(経験値瓶/ポーション)は視点ベクトルのy成分のみ実際の視点より20度上を向いた時の値になります。## プレイヤーの移動べクトル地面に触れているときは計算に使われるプレイヤーの移動ベクトルのy成分が0に設定されます。これはプレイヤーを地面に触れさせ続けるために与えている重力を計算から含めなくするためと思われます。地面に触れている時でもy軸方向に-0.0784000015258789の速度があります。## 定数エンダーパールの場合アイテムのばらつきやすさ = 1.0投げ速度定数 = 1.5## バージョン間の違い1.20.1の場合ばらつき定数 = 0.0172275ランダムベクトルはそれぞれの成分で-1から1の間のランダムな値を取る3次元ベクトル1.16.1の場合ばらつき定数 = 0.0075ランダムベクトルはそれぞれの成分で-1から1の間の正規分布のランダムな値を取る3次元ベクトルになります。これ以外に1.16.1と1.20.1で初速に影響する思われるコードは見つけられませんでした。## tickごとの動きの仕様// 1.20.1 net/minecraft/world/entity/projectile/ThrowableProjectile// 1.16.1 net/minecraft/entity/projectile/ThrowableEntity次のtickの速度ベクトル = 速度ベクトル * (1 - 抗力) - 重力定数## (1 - 抗力)(1 - 抗力)は水中の場合は0.8になり、空中の場合は0.99になります## 重力定数エンダーパールの場合 = 0.03ポーションの場合0.05経験値瓶の場合0.07## 投げられる高さ投げられる高さ = (エンティティの目線の高さ = エンティティの高さ * 0.85) - 0.1になります。## エンティティの高さプレイヤーの場合立っている時に1.8睡眠時/死亡時に0.2エリトラ飛行/水泳/スピンアタック(トライデント)時に0.6しゃがんでいる時に1.5## 目線の高さしかしすべて上の計算式から高さが計算されるわけではなく、プレイヤーなどはあらかじめ決まっていますエリトラ飛行/水泳/スピンアタック(トライデント)時に0.4しゃがんでいる時に1.27それ以外の全てで1.62## 当たり方の仕様投擲アイテムの1tick処理の擬似コードとしてはこのような処理になっています。 当たったか = 範囲内で当たるかどうか( どこから: 現在の位置, どこまで: 現在の位置 + 現在の速度ベクトル ) if (当たったか) { 現在の位置にレポート() // そのアイテムの当たった時の挙動 } 次の位置 = 現在の位置 + 現在の速度ベクトル 現在の速度ベクトル = 現在の速度ベクトル * (1 - 抗力) - 重力定数 現在の位置 = 次の位置このコードで注目する点は、tick処理内で更新された速度ベクトルがその直後で座標に加算されるわけではなく、次のtickの当たり判定検出のあとに速度ベクトルが座標に加算されている事です。これによって当たった場所の1tick前にてレポートするようになっています。## 注釈などここに書いたことは私が見た範囲のみで、もしかしたら見てない場所の処理で少し変わっているかもしれません。用語などは私が翻訳したもので、数学/物理で一般に使われる用語とはあまり正確ではないかもしれません。本来マイクラのプログラム内の変数などは難読化によってランダムな文字列に置き換えられているのでもし自分で読みたければ、MCP-Rebornなどを使ってマイクラのプログラムを元のコードにできるだけ変形してくれるツールを使うことをおすすめします。mod開発環境でもソースコードを見ることは可能ですが、これはすぐに変形して扱える形になっていますのでわかりやすいように自分が読みやすい形に整形することも出来ます。まさかこんなしっかりとした良い解説が日本語で見れるとは思ってなかったのでとても驚きました、面白かったです!
追記です範囲内で当たるかどうかですが、ブロックに対する当たり判定は光線をどこからどこまで飛ばしてその間で当たるかが判定されますが、エンティティに対してはエンダーパール自体の大きさが計算に含まれます。エンダーパールの大きさは縦横それぞれ0.25です
情報提供ありがとうございます!!検証で分からなかった部分もだいぶ補えそうですね…
こういう一般人には全く理解できない動画は睡眠用に最適です
4:36プログラミングで微分方程式を解く時の基礎ですな。
これはおもろいな。フレームレートがある以上確かに連続じゃないわw
今まで適当に投げていたので助かります
エンダーパールを投げたあと、ちょっと落下するのはそういうことだったんですね!分かってすっきりしました!
自分用ノート・4:30dv/dt=-kv+mgdvと、dtの幅を有限にとってΔv/Δt=-kv+mgここでtを、1tickを目盛りにとることとする。(v(t+1)-v(t))/t+1-t=-kv(t)+mgv(t+1)-v(t)=-kv(t)+mgv(t+1)=(1-k)v(t)+mg・・・・・・・・・①α=(1-k)α+mgなるαを求める。α=mg/kしたがってmg/k=(1-k)mg/k+mg・・・・・・・・・②①-②してv(t+1)-mg/k=(1-k)(v(t)-mg/k)∴v(t)=(v(0)-mg/k)(1-k)^t+mg/k
微積分を使用したい。まず初めの運動方程式だが、d*v*/dt=-k*v*+mg(0,1)つまりdv(x)/dt=-kv(x)dv(y)/dt=-kv(y)+mgよってdv(x)/v(x)=-kdtd(v(y)-mg/k)/v(y)-mg/k=-kdt両辺積分しlog(v(x)/v(x0))=-ktlog((v(y)-mg/k)/v(y0)-mg/k)=-ktよってv(x)=v(x0)e^-ktv(y)=(v(y0)-mg/k)e^-kt+mg/kここで、dx=v(x0)e^-ktdtdy=((v(y0)-mg/k)e^-kt+mg/k)dt両辺積分し、x=kv(x0)e^-kt+c1
Other than RTA this is way more useful in TASing since you can throw ender pearls at arbitrary precision
マイクラ物理学会の宝
プログラム書いてる時に割と気づきにくいミスだよね、、乱数入れても水平に投げれば投げるほど偏ってしまうたぶんこの振舞いに気づいたら、地面にめり込むtickとその時点の-1tickの時の座標の差に対してθが0に近づくにつれて増大する乱数を仕込んで座標を決めるだろうね
よくわからないけどとても面白かったです
チート作るのにこの辺の知識が必要なんだろうなぁ。ハードルタカスギ
演算処理がアナログになるMODとかがあればまた違ってくるんでしょうね
パールの着弾地点とワープ先の関係性の話は特に面白かった。考えてみれば当たり前だけど20チックなのを考慮すれば地面に着弾した瞬間の地点がワープ先になることはまずないよな
運動方程式の話とか懐かしい…あとエリトラロケットとか激流トライデントとかトロッコとかで速く移動してる場合の飛距離も長くなるのかな?スナップショットでトロッコの最大速度変えられるからそれでめっちゃ速くなった状態で投げたら凄い遠くまで行けるのかな?
いつものサバイバルでも役に立つ知識だし、tasさんならこの仕様を利用して各種TAの記録を縮められそう
微分型使ってるのめちゃくちゃ嬉ちい
投稿者さんがすごいのはもちろんのことwikiにアイテムごとの抵抗が載ってるのもすごい多種多様なジャンルのガチ勢がいるんだなと思った
マイクラは数学で説明できる。すげぇ
マイクラはもちろんゲームは数学的な論理で構成されてますからねぇ
計算式最後までやってしまうの恐ろしいなほんと
こんなにしっかりとした理論と検証で感動しました。本当にお疲れ様でした。壁抜けの理論がわかったときスッキリしました
ゆかりさんかあかりさん、ずんだもんのボイス使ってる人は大抵天才って事が分かりました。ありがとうございます。
全部使ってなくて草
@@kod-bs8ip 合成音声って言った方が良かったわこれ
なんだ、ただの天才か…
ひれんぞくなゲームでは、運動を計算する式の計算に、自分の代わりに漸化式を用いるのか言われてみれば当たり前だけど面白い文系なので途中でついていけなくなった...
マイクラガチ勢にも数学勢にも普通の人にとっても神動画
計算の所は全く分からなかったけど凄く面白かったです!!すり抜けの話は知っていたけどそういう理由だったんですね〜!
なんか30度あたりが最適って偉い人が言ってたのがちゃんと証明されて感動した
数学ってこういうことを考える為に勉強するのか
投稿ありがとうございます。非常に興味深い動画でした。素朴な疑問なのですが、今回の動画で示されていた最適な条件でShoBoBonさんのようなRTA走者は投げることができるのでしょうか? 私は全くの門外漢なのですが1秒を争う(と私が思っている)RTA界隈では最適な条件でエンパを投げることが今後は技能の一つになるのではないかと思いました。
RTAでは一部のカテゴリを除いて、F3を押して角度などの情報を見ることが許可されているので、最適な角度に合わせるのは難しくないと思います。また、連続で投げる場合は着弾するのを待つ間に準備できるので、時間的にも余裕はあると思います。
あ、ダッシュジャンプの1tick後に投げるのはちょっとだけ難しいです
@@ShoBoBon ありがとうございました。ShoBoBonさんがRTA走者として己の感覚だけではなく理論と実験を仮定を立てつつ検証し、分かりやすく動画にまとめて発表する姿勢に感動しました。
動画構成が学会の発表の動画バージョンって感じで面白かったさては本職の方…?
うぽつです!大変興味深い動画をありがとうございます。この動画ですが、今後海外の方も多く見られることが予想されますので、そういった方向けに英語字幕を付けるのはどうでしょうか?
自動翻訳で英語字幕にできるみたいなので、それに頼ることにします…あと私が英語苦手なのもありまして
この動画質が高すぎる・・・・
労力エグいっすね...投稿お疲れ様ですサムネだけで斜方投射でいけるかなと思いましたがゲームの仕様上漸化式を使って解いていくのは驚きました理系高2で数学物理得意だから理解したかったけどW関数で( ・᷄ὢ・᷅ )???ってなった大変おもしろかったです!!!
FTLとかの技術にも有用な知識で有難い!!
学部の卒論ぐらいだったら余裕で通用しそう
なんで突然エンパのの動画がおすすめされたんだと思ったらやばい縛りの人だったか
やっぱり数学ってすごいね
なんなんだこの忍耐力はと思ったけどキーボード禁止マイクラの人だった
テレポート先でちょっと浮く理屈はそういう仕組みだったのか…
(すでに誰かが指摘したように)コードを見なくても、ハードワークを通じてこれらの関係を見つけることは常に満足のいくものです。このやり方は、今年、英語版ウィキを強化したいと思ったときに大いに役立ちましたし、自分でツールを作ることも後押ししてくれました。 おめでとう! (また、私はあなたが英語が嫌いなのを読んだので、これは自動翻訳されています : P )。
11:55 すり抜けエンパの仕組みってそういうことか…某スカブロRTAでめっちゃ役にたつやん
素晴らしい着眼点ですね!エンダーパールで不思議だったことがわかってスッキリしました!まぁ、何に役立つかはわかりま(ry
なんか凄すぎてよくわからんからエンダーマン狩ってくる
理系って凄いなって思ったわ
整理するとこの式になります文系わい「全然整理されてない…」ってずっとなってたほんとに理系ってすごいんだな…
minecraft学会員だ
天才、、か?
エンパの最適な投げ方だと思ってみたら数学始まった
最大距離の角度が45度じゃないの直感に反する
空気抵抗を考慮してるからね考慮してないなら45°で合ってるよ
@@Sophia_HANSHIN はええそうなんだ
最大の角度が45度になる時は地面から投げた場合だから、プレイヤー分高い状態で投げればほんの少し変わるよ
@@SAENS_yellow なるほど!!なら着地点が目線と同じ高さだとするなら45で合ってるのかな
ブラグマティック的に考えると命題を仮定してから今までに矛盾が発生していないなら命題は真理とみなしていいし数理論理学的にもある命題が偽と証明されることは命題を仮定したときに矛盾も証明されうることと同値だから決定的な矛盾が現れるまで主の1tick前仮説を真理としてマイクラ生活謳歌させていただくぜ!
えらい人がソースコードを解析してくれて1tick前仮説が正しいことが証明されました✌️
それはめでてぇ!
すごい!
何言ってるかわからんけど面白いから見ちゃうんだよね
めちゃくちゃいい動画
ゲーム×数学はやっぱり面白い。あと、個人的に「け゜とま」さんと同じ人な気がした。
同じ合成音声を使用していますが違う人です
ここまで厳密にやってるからこそ、グラフのプロットにエラーバーを反映してほしかったと思う
まとめ方が論文発表すぎて好き
はえー理系すぎるな
雪玉も例外じゃ無くね?wにしてもすげえな
文系のわい「1:1:√2だから45°やろ」公式「35°」文系わい「!?」
空気抵抗を考慮しなかったら斜方投射は45°が水平距離最大になるから合ってるよ
こういうゲームの実験でデータ取る時とかの精密な動きをするときにTASが使えるのか(?)
エンダーパールの速度の計算式ってwikiに乗ってるのかプレイヤーの歩行の計算式は見たことあるけど、トロッコとかボートの計算式もどっかに乗ってんのかな前までパワードレール上のトロッコは最高速度達するまで等加速度で動くもんだと思ってた
同じwikiのページに載ってました!
面白すぎる
English comment here and I think you are amazing! That's a lot you undercovered without even digging into source code
Bed warsとかでエンパ復帰するのに新しめのverだともろに加速度の影響受けて復帰しづらいの思い出した
1.9くらいからプレイヤーの垂直速度が影響するようになったので、落下中に投げると思ったより下に飛びますね
数学もマイクラも面白いな
ナポレオンをマイクラに転生させてエンドラ討伐させよう!
すげええええええええええええええ
字幕があると8:10見やすい
大学1年の初学期にプログラミングで微分方程式(漸化式)解かされたの思いだしたわ
2:08 上りがなく下りだけだと2択くらいのズレになるのかなぁ
数学と物理とマイクラ好きな自分、大興奮
昔のマイクラでできた圧縮ボートを使用した発射装置使って投げたら万行きそう......
着眼点が面白いw
素人質問で大変恐縮なのですが、パールを投げる角度を調節して、歩くことが一切ないようにすればもっと早くなるのではないでしょうか
パール移動だけで目的地ぴったりの位置に到達するということでしょうか。投げる角度を調整して歩くことなく移動したとき、その角度が29°未満なら、動画でいう「目的地が29°の飛距離より短い場合」に該当するので29°が最適ではありません。もっと少ないパール数で比較する必要があります。角度が29°より大きいなら、直感に反しますが29°の方が早いです。計算上29°より大きい角度で1投しパールが着弾するとき、29°ではそれより早くその位置に到達します。しかしそれは計算上の話で、ダッシュジャンプは最初から最高速度で走れるわけではなく、それまで加速する必要があるので、それを考えると29°より大きい角度が最適になることが稀に起こり得ます。
大学で学んでてよかったぁ
この分野では素人なので恐縮ですが、運動方程式で粘性抵抗を組み込まれておられましたが、慣性抵抗にしなかった理由は何かあるのでしょうか。差分方程式で数値計算を行うのでは非線形でも問題ないようにも思うのですが、いかがでしょうか。
ゲームの処理がそのようになっているからです。ゲーム内部での速度の計算が粘性抵抗のみを考えた計算式になっています。
この人絶対物理科だろw
何も理解できてない人間がいうのはおこがましいかもしれませんが、移動時間が最短になる角度の計算結果と実測結果に若干差があったのは、ガウス関数を無視したことに起因する可能性はないのでしょうか……?
平均をとる前の3回の計測タイムがほぼ同じであればガウス関数の影響も考えられますが、同じ31°で投げてもそれぞれのタイムに大きなばらつきがあったので、乱数の影響が大きいと考えました。
@@ShoBoBonお返事ありがとうございます。なるほどです。ガウス関数を取り入れた時に出てきた不連続な斜め線が効いてきたりしないかなと思いましたが、よくみたら斜め線の周期が1回/1°くらいなので2°の誤差にはあまり関係なさそうですかね。大変失礼しました。
<訂正>
・23:13 28:38 W0の中身の(1.94-h)/3にlog(0.99)が掛け算されていませんでした。正しくは、W0の中身は f(θ)e^(f(θ)+((1.94-h)/3)log(0.99)) です。GeoGebraでは正しい方が入力されていたので、結果は正しいものが出力されています。
<補足>
・logの底はeです。
・「~ブロック」と「~m」で表記揺れがありますが、どちらも同じ長さです。
<追記>
・ver1.16.1でのエンダーパールの初速の違いについて視聴者さんが調査してくださいました!ありがとうございます。これに伴いver1.9~1.20用の飛距離計算ツールを新たに作成しました。説明欄にリンクを追加しています。
logの底がeならlnで表した方がいいのではないでしょうか
それな
できるだけ専門知識がない人にもわかりやすくするために、高校数学でもよく見るlogの形にしたのですが…
W関数とか出てくるので意味なかった
@@ShoBoBon 草
へー
なにいってんのかまったくわかんねー
0度のときのズレがtickで説明されたとき感動した
こんな場面でLambertW関数が出てくるとは思わなんだ
地味にwikiにゲーム内の初速とかがちゃんと記載されてるのすごすぎる
10:13 ワープする時にちょっと上にワープする理由がきれいにわかったのおもしろい
バージョンで法則が変わってくるとはこれまた厄介な...
コード解析なしの差分方程式からの導出でここまでの解を得られるのは凄い
いずれ村人たちも数学を思い付いてこの事実にたどり着くんだろうなぁ
シミュレーション仮説みたいだな
シミュレーションされた中の世界の人が外の世界に気付いたらどうなるのだろうか…
@@いっぬ-v4yもし私達と同等の知的好奇心がその人たちのプログラムに書き込まれてるとすれば、絶望とかは無く、外の世界のまた外の世界への探究に向かうだけな気がする。
どうもなんらん。そもそもシュミレーションされてる世界でこちらを観測して何かを考えられるほど発達することが現代では考えられない
@@cyan4454それな
@@cyan4454 それを言い始めたらそもそもが成り立たないんですよね
これはあくまでシミュレーション“仮説”であって、現代で実現できるか否かは議論対象外ですから
あんたすげぇよ。俺文系だから数学はよくわかんねぇけどよ、こうやって気になったものを労力かけて検証していく人間が文明を進めてきたんだと思うぜ。
いうてほぼ高校の内容なんだから食わず嫌いすんなよ。
主の動画、教材としても一級品なんだから文系云々で諦めるの勿体無い。
優しいヤンキーすき
話し方いたたたたた😅
@@しす-e1d現状寒いのお前だから気を付けな
@@しす-e1d
ネタはネタであると見抜ける人でないと(掲示板を使うのは)難しい
漸化式と床関数によって山が二つある分布になる理由を説明できたのは天晴と思った
物理法則は現実と違っても数学は同じものが使えるのがよくわかる
じゃなくて数学は未来永劫、たとえ宇宙が変わったとしても不変な論理によって作られてるからやで。
血反吐を吐きながら実験レポート書いたことを思い出す
こういうゲームの仕様とかひたすら検証するタイプの動画いいよね
ちょっとまとめただけで論文になりそうな内容ですごい(小並感)
マイクラに限らず、離散的な空間での物理学は今後バーチャルスポーツが発展するきっかけにもなるだろうし、新しいゲームのアイデアにもなりそう
ちゃんとこういう研究が認められる学会ができるといいですね
普通のRTAに限らずスカイブロックRTAとか特にエンパ使うからこの情報めっちゃ大切になりそう(予約エンパとかミスがタイムロスやデスにつながりやすいし)
17:17
だから階段をダッシュジャンプするとめっちゃ速く登れるのか、なるほど
マイクラでここまで論理的で洗練された動画初めて見て脱帽した! 文理問わずこの動画が拡散されてほしい。
9:17 ここ鳥肌立った
0:00~0:30
入りの導入が論文とか学会発表のBackgroundすぎる。さては本職だな?
9:17
しかもこの部分、二重スリット実験の量子化みたいなことが起こっててマジでおもろい
この場合量子化されてる量が時間を含むっていうのもおもろい
“入りの導入”とはなんですか?
@@aba-b7597
「(動画の)入り=最初」にある「導入」の章という意味ですね
最初に来るのが導入ではなく閑話だったりAbstractだったりすることもあります
@@cromeakanami9602
いや、ピークが2つあるのでどちらかと言えばStern-Gerlach実験だ。この場合の時間分割量子化は量子化されたスピン角運動量に対応するものだと思われる。
人間が作ったゲームなんだから法則があるのは当然だけど自然でこういう法則を最初に発見したら興奮して鼻血出そう
緻密すぎる動画!!これは伸びる
投稿お疲れ様です。こういう計算ができるようになりたいです。
こうやって突き詰めてくの大好き
mod制作者です。
1.20.1と1.16.1で投げの仕様について比較してみました。
## 初速の仕様
// 1.20.1 net/minecraft/world/entity/projectile/Projectile
// 1.16.1 net/minecraft/entity/projectile/ProjectileEntity
速度ベクトル = (視点ベクトル + ランダムなベクトル * ばらつき定数 * アイテムのばらつきやすさ) * 投げ速度定数 + プレイヤーの移動べクトル
## 視点ベクトル
視点ベクトルは正規化されたプレイヤーの向いている方向のベクトルになります。
一部のエンダーパール以外のアイテム(経験値瓶/ポーション)は視点ベクトルのy成分のみ実際の視点より20度上を向いた時の値になります。
## プレイヤーの移動べクトル
地面に触れているときは計算に使われるプレイヤーの移動ベクトルのy成分が0に設定されます。
これはプレイヤーを地面に触れさせ続けるために与えている重力を計算から含めなくするためと思われます。
地面に触れている時でもy軸方向に-0.0784000015258789の速度があります。
## 定数
エンダーパールの場合
アイテムのばらつきやすさ = 1.0
投げ速度定数 = 1.5
## バージョン間の違い
1.20.1の場合
ばらつき定数 = 0.0172275
ランダムベクトルはそれぞれの成分で-1から1の間のランダムな値を取る3次元ベクトル
1.16.1の場合
ばらつき定数 = 0.0075
ランダムベクトルはそれぞれの成分で-1から1の間の正規分布のランダムな値を取る3次元ベクトル
になります。
これ以外に1.16.1と1.20.1で初速に影響する思われるコードは見つけられませんでした。
## tickごとの動きの仕様
// 1.20.1 net/minecraft/world/entity/projectile/ThrowableProjectile
// 1.16.1 net/minecraft/entity/projectile/ThrowableEntity
次のtickの速度ベクトル = 速度ベクトル * (1 - 抗力) - 重力定数
## (1 - 抗力)
(1 - 抗力)は水中の場合は0.8になり、空中の場合は0.99になります
## 重力定数
エンダーパールの場合 = 0.03
ポーションの場合0.05
経験値瓶の場合0.07
## 投げられる高さ
投げられる高さ = (エンティティの目線の高さ = エンティティの高さ * 0.85) - 0.1
になります。
## エンティティの高さ
プレイヤーの場合
立っている時に1.8
睡眠時/死亡時に0.2
エリトラ飛行/水泳/スピンアタック(トライデント)時に0.6
しゃがんでいる時に1.5
## 目線の高さ
しかしすべて上の計算式から高さが計算されるわけではなく、プレイヤーなどはあらかじめ決まっています
エリトラ飛行/水泳/スピンアタック(トライデント)時に0.4
しゃがんでいる時に1.27
それ以外の全てで1.62
## 当たり方の仕様
投擲アイテムの1tick処理の擬似コードとしてはこのような処理になっています。
当たったか = 範囲内で当たるかどうか(
どこから: 現在の位置,
どこまで: 現在の位置 + 現在の速度ベクトル
)
if (当たったか) {
現在の位置にレポート() // そのアイテムの当たった時の挙動
}
次の位置 = 現在の位置 + 現在の速度ベクトル
現在の速度ベクトル = 現在の速度ベクトル * (1 - 抗力) - 重力定数
現在の位置 = 次の位置
このコードで注目する点は、tick処理内で更新された速度ベクトルがその直後で座標に加算されるわけではなく、次のtickの当たり判定検出のあとに速度ベクトルが座標に加算されている事です。
これによって当たった場所の1tick前にてレポートするようになっています。
## 注釈など
ここに書いたことは私が見た範囲のみで、もしかしたら見てない場所の処理で少し変わっているかもしれません。
用語などは私が翻訳したもので、数学/物理で一般に使われる用語とはあまり正確ではないかもしれません。
本来マイクラのプログラム内の変数などは難読化によってランダムな文字列に置き換えられているのでもし自分で読みたければ、MCP-Rebornなどを使ってマイクラのプログラムを元のコードにできるだけ変形してくれるツールを使うことをおすすめします。
mod開発環境でもソースコードを見ることは可能ですが、これはすぐに変形して扱える形になっていますのでわかりやすいように自分が読みやすい形に整形することも出来ます。
まさかこんなしっかりとした良い解説が日本語で見れるとは思ってなかったのでとても驚きました、面白かったです!
追記です
範囲内で当たるかどうかですが、ブロックに対する当たり判定は光線をどこからどこまで飛ばしてその間で当たるかが判定されますが、エンティティに対してはエンダーパール自体の大きさが計算に含まれます。
エンダーパールの大きさは縦横それぞれ0.25です
情報提供ありがとうございます!!
検証で分からなかった部分もだいぶ補えそうですね…
こういう一般人には全く理解できない動画は睡眠用に最適です
4:36
プログラミングで微分方程式を解く時の基礎ですな。
これはおもろいな。フレームレートがある以上確かに連続じゃないわw
今まで適当に投げていたので助かります
エンダーパールを投げたあと、ちょっと落下するのはそういうことだったんですね!
分かってすっきりしました!
自分用ノート
・4:30
dv/dt=-kv+mg
dvと、dtの幅を有限にとって
Δv/Δt=-kv+mg
ここでtを、1tickを目盛りにとることとする。
(v(t+1)-v(t))/t+1-t=-kv(t)+mg
v(t+1)-v(t)=-kv(t)+mg
v(t+1)=(1-k)v(t)+mg・・・・・・・・・①
α=(1-k)α+mgなるαを求める。
α=mg/k
したがって
mg/k=(1-k)mg/k+mg・・・・・・・・・②
①-②して
v(t+1)-mg/k=(1-k)(v(t)-mg/k)
∴v(t)=(v(0)-mg/k)(1-k)^t+mg/k
微積分を使用したい。
まず初めの運動方程式だが、
d*v*/dt=-k*v*+mg(0,1)
つまり
dv(x)/dt=-kv(x)
dv(y)/dt=-kv(y)+mg
よって
dv(x)/v(x)=-kdt
d(v(y)-mg/k)/v(y)-mg/k=-kdt
両辺積分し
log(v(x)/v(x0))=-kt
log((v(y)-mg/k)/v(y0)-mg/k)=-kt
よって
v(x)=v(x0)e^-kt
v(y)=(v(y0)-mg/k)e^-kt+mg/k
ここで、
dx=v(x0)e^-ktdt
dy=((v(y0)-mg/k)e^-kt+mg/k)dt
両辺積分し、
x=kv(x0)e^-kt+c1
Other than RTA this is way more useful in TASing since you can throw ender pearls at arbitrary precision
マイクラ物理学会の宝
プログラム書いてる時に割と気づきにくいミスだよね、、
乱数入れても水平に投げれば投げるほど偏ってしまう
たぶんこの振舞いに気づいたら、地面にめり込むtickとその時点の-1tickの時の座標の差に対してθが0に近づくにつれて増大する乱数を仕込んで座標を決めるだろうね
よくわからないけどとても面白かったです
チート作るのにこの辺の知識が必要なんだろうなぁ。ハードルタカスギ
演算処理がアナログになるMODとかがあればまた違ってくるんでしょうね
パールの着弾地点とワープ先の関係性の話は特に面白かった。考えてみれば当たり前だけど20チックなのを考慮すれば地面に着弾した瞬間の地点がワープ先になることはまずないよな
運動方程式の話とか懐かしい…
あとエリトラロケットとか激流トライデントとかトロッコとかで速く移動してる場合の飛距離も長くなるのかな?
スナップショットでトロッコの最大速度変えられるからそれでめっちゃ速くなった状態で投げたら凄い遠くまで行けるのかな?
いつものサバイバルでも役に立つ知識だし、tasさんならこの仕様を利用して各種TAの記録を縮められそう
微分型使ってるのめちゃくちゃ嬉ちい
投稿者さんがすごいのはもちろんのことwikiにアイテムごとの抵抗が載ってるのもすごい
多種多様なジャンルのガチ勢がいるんだなと思った
マイクラは数学で説明できる。すげぇ
マイクラはもちろんゲームは数学的な論理で構成されてますからねぇ
計算式最後までやってしまうの恐ろしいなほんと
こんなにしっかりとした理論と検証で感動しました。本当にお疲れ様でした。
壁抜けの理論がわかったときスッキリしました
ゆかりさんかあかりさん、ずんだもんのボイス使ってる人は大抵天才って事が分かりました。ありがとうございます。
全部使ってなくて草
@@kod-bs8ip 合成音声って言った方が良かったわこれ
なんだ、ただの天才か…
ひれんぞくなゲームでは、運動を計算する式の計算に、自分の代わりに漸化式を用いるのか
言われてみれば当たり前だけど面白い
文系なので途中でついていけなくなった...
マイクラガチ勢にも数学勢にも普通の人にとっても神動画
計算の所は全く分からなかったけど凄く面白かったです!!すり抜けの話は知っていたけどそういう理由だったんですね〜!
なんか30度あたりが最適って偉い人が言ってたのがちゃんと証明されて感動した
数学ってこういうことを考える為に勉強するのか
投稿ありがとうございます。非常に興味深い動画でした。素朴な疑問なのですが、今回の動画で示されていた最適な条件でShoBoBonさんのようなRTA走者は投げることができるのでしょうか? 私は全くの門外漢なのですが1秒を争う(と私が思っている)RTA界隈では最適な条件でエンパを投げることが今後は技能の一つになるのではないかと思いました。
RTAでは一部のカテゴリを除いて、F3を押して角度などの情報を見ることが許可されているので、最適な角度に合わせるのは難しくないと思います。
また、連続で投げる場合は着弾するのを待つ間に準備できるので、時間的にも余裕はあると思います。
あ、ダッシュジャンプの1tick後に投げるのはちょっとだけ難しいです
@@ShoBoBon ありがとうございました。ShoBoBonさんがRTA走者として己の感覚だけではなく理論と実験を仮定を立てつつ検証し、分かりやすく動画にまとめて発表する姿勢に感動しました。
動画構成が学会の発表の動画バージョンって感じで面白かった
さては本職の方…?
うぽつです!大変興味深い動画をありがとうございます。
この動画ですが、今後海外の方も多く見られることが予想されますので、そういった方向けに英語字幕を付けるのはどうでしょうか?
自動翻訳で英語字幕にできるみたいなので、それに頼ることにします…
あと私が英語苦手なのもありまして
この動画質が高すぎる・・・・
労力エグいっすね...投稿お疲れ様です
サムネだけで斜方投射でいけるかなと思いましたがゲームの仕様上漸化式を使って解いていくのは驚きました
理系高2で数学物理得意だから理解したかったけどW関数で( ・᷄ὢ・᷅ )???ってなった
大変おもしろかったです!!!
FTLとかの技術にも有用な知識で有難い!!
学部の卒論ぐらいだったら余裕で通用しそう
なんで突然エンパのの動画がおすすめされたんだと思ったらやばい縛りの人だったか
やっぱり数学ってすごいね
なんなんだこの忍耐力はと思ったけどキーボード禁止マイクラの人だった
テレポート先でちょっと浮く理屈はそういう仕組みだったのか…
(すでに誰かが指摘したように)コードを見なくても、ハードワークを通じてこれらの関係を見つけることは常に満足のいくものです。このやり方は、今年、英語版ウィキを強化したいと思ったときに大いに役立ちましたし、自分でツールを作ることも後押ししてくれました。
おめでとう!
(また、私はあなたが英語が嫌いなのを読んだので、これは自動翻訳されています : P )。
11:55 すり抜けエンパの仕組みってそういうことか…某スカブロRTAでめっちゃ役にたつやん
素晴らしい着眼点ですね!
エンダーパールで不思議だったことがわかってスッキリしました!
まぁ、何に役立つかはわかりま(ry
なんか凄すぎてよくわからんからエンダーマン狩ってくる
理系って凄いなって思ったわ
整理するとこの式になります
文系わい「全然整理されてない…」ってずっとなってた
ほんとに理系ってすごいんだな…
minecraft学会員だ
天才、、か?
エンパの最適な投げ方だと思ってみたら数学始まった
最大距離の角度が45度じゃないの直感に反する
空気抵抗を考慮してるからね
考慮してないなら45°で合ってるよ
@@Sophia_HANSHIN はええそうなんだ
最大の角度が45度になる時は地面から投げた場合だから、プレイヤー分高い状態で投げればほんの少し変わるよ
@@SAENS_yellow なるほど!!なら着地点が目線と同じ高さだとするなら45で合ってるのかな
ブラグマティック的に考えると命題を仮定してから今までに矛盾が発生していないなら命題は真理とみなしていいし
数理論理学的にもある命題が偽と証明されることは命題を仮定したときに矛盾も証明されうることと同値だから
決定的な矛盾が現れるまで主の1tick前仮説を真理としてマイクラ生活謳歌させていただくぜ!
えらい人がソースコードを解析してくれて1tick前仮説が正しいことが証明されました✌️
それはめでてぇ!
すごい!
何言ってるかわからんけど面白いから見ちゃうんだよね
めちゃくちゃいい動画
ゲーム×数学はやっぱり面白い。
あと、個人的に「け゜とま」さんと同じ人な気がした。
同じ合成音声を使用していますが違う人です
ここまで厳密にやってるからこそ、グラフのプロットにエラーバーを反映してほしかったと思う
まとめ方が論文発表すぎて好き
はえー理系すぎるな
雪玉も例外じゃ無くね?wにしてもすげえな
文系のわい「1:1:√2だから45°やろ」
公式「35°」
文系わい「!?」
空気抵抗を考慮しなかったら
斜方投射は45°が水平距離最大になるから合ってるよ
こういうゲームの実験でデータ取る時とかの精密な動きをするときにTASが使えるのか(?)
エンダーパールの速度の計算式ってwikiに乗ってるのか
プレイヤーの歩行の計算式は見たことあるけど、トロッコとかボートの計算式もどっかに乗ってんのかな
前までパワードレール上のトロッコは最高速度達するまで等加速度で動くもんだと思ってた
同じwikiのページに載ってました!
面白すぎる
English comment here and I think you are amazing! That's a lot you undercovered without even digging into source code
Bed warsとかでエンパ復帰するのに新しめのverだともろに加速度の影響受けて復帰しづらいの思い出した
1.9くらいからプレイヤーの垂直速度が影響するようになったので、落下中に投げると思ったより下に飛びますね
数学もマイクラも面白いな
ナポレオンをマイクラに転生させてエンドラ討伐させよう!
すげええええええええええええええ
字幕があると8:10見やすい
大学1年の初学期にプログラミングで微分方程式(漸化式)解かされたの思いだしたわ
2:08 上りがなく下りだけだと2択くらいのズレになるのかなぁ
数学と物理とマイクラ好きな自分、大興奮
昔のマイクラでできた圧縮ボートを使用した発射装置使って投げたら万行きそう......
着眼点が面白いw
素人質問で大変恐縮なのですが、パールを投げる角度を調節して、歩くことが一切ないようにすればもっと早くなるのではないでしょうか
パール移動だけで目的地ぴったりの位置に到達するということでしょうか。
投げる角度を調整して歩くことなく移動したとき、その角度が29°未満なら、動画でいう「目的地が29°の飛距離より短い場合」に該当するので29°が最適ではありません。もっと少ないパール数で比較する必要があります。角度が29°より大きいなら、直感に反しますが29°の方が早いです。計算上29°より大きい角度で1投しパールが着弾するとき、29°ではそれより早くその位置に到達します。
しかしそれは計算上の話で、ダッシュジャンプは最初から最高速度で走れるわけではなく、それまで加速する必要があるので、それを考えると29°より大きい角度が最適になることが稀に起こり得ます。
大学で学んでてよかったぁ
この分野では素人なので恐縮ですが、
運動方程式で粘性抵抗を組み込まれておられましたが、慣性抵抗にしなかった理由は何かあるのでしょうか。
差分方程式で数値計算を行うのでは非線形でも問題ないようにも思うのですが、いかがでしょうか。
ゲームの処理がそのようになっているからです。ゲーム内部での速度の計算が粘性抵抗のみを考えた計算式になっています。
この人絶対物理科だろw
何も理解できてない人間がいうのはおこがましいかもしれませんが、
移動時間が最短になる角度の計算結果と実測結果に若干差があったのは、ガウス関数を無視したことに起因する可能性はないのでしょうか……?
平均をとる前の3回の計測タイムがほぼ同じであればガウス関数の影響も考えられますが、同じ31°で投げてもそれぞれのタイムに大きなばらつきがあったので、乱数の影響が大きいと考えました。
@@ShoBoBon
お返事ありがとうございます。
なるほどです。
ガウス関数を取り入れた時に出てきた不連続な斜め線が効いてきたりしないかなと思いましたが、
よくみたら斜め線の周期が1回/1°くらいなので2°の誤差にはあまり関係なさそうですかね。
大変失礼しました。