2013/10/17(木) [n年前の日記]
#1 [unity][anime][neta] 2Dゲームと3Dゲームのジャンプの解釈で悩んだり
Unityでアクションゲームっぽい動作を書いていて気になったことがあったのでメモ。
この話、「3DCGゲーム全盛のこの時代に今頃何を言ってるんだ?」とdisられそうな気も。PS1、SS、N64が出てきた頃に、それぞれ悩んで、世間様はとうの昔に解を見つけているはずの話なので、「20年間、お前の時間は止まってたのか?」と叩かれそう。…PS1等が出たのって、もう20年ぐらい前だよね? なんだか落ち込んでくるなあ…。そんなに時間が経ったのか…。
それはともかく。2Dゲームの場合、以下のような操作仕様があって。
これを3DCGゲームでやろうとしたら、なんだか妙なことに。
「…お前は一体、何を突き抜けて、何に乗っているんだ?」という気がしてきたり。
「いやいや、それは解釈がおかしい。本当は奥に向かって飛んでいるんだ」という考えもありそうな。
でも、これもこれでおかしい。2Dゲームで言えば、これは「ライン移動」だよなと。ライン移動してるのに、敵や敵弾がプレイヤーキャラに当たったり、自弾が敵に当たるのは、やっぱりおかしい。
てなわけで、2Dゲームってこういうところでも独特の表現を獲得してきたジャンルなのだなと再認識というか。
漫画やアニメ、もちろん実写映画でも、こんな不可解なジャンプの挙動を見せる瞬間はないわけで。こんな謎ジャンプが許されるのは、2Dゲームの中だけでしょう。子供の頃から何も考えずに遊んでたけど、よく考えてみると、2Dゲームって奇怪・珍妙な映像表現の宝庫だったのだなあ、と思えてきたのでした。
それはともかく。どうすりゃいいんだ、コレ。
この話、「3DCGゲーム全盛のこの時代に今頃何を言ってるんだ?」とdisられそうな気も。PS1、SS、N64が出てきた頃に、それぞれ悩んで、世間様はとうの昔に解を見つけているはずの話なので、「20年間、お前の時間は止まってたのか?」と叩かれそう。…PS1等が出たのって、もう20年ぐらい前だよね? なんだか落ち込んでくるなあ…。そんなに時間が経ったのか…。
それはともかく。2Dゲームの場合、以下のような操作仕様があって。
- ジャンプボタンで、頭上の足場に飛び乗れる。
- 下キー+ジャンプボタンで、足場から真下に降りられる。
これを3DCGゲームでやろうとしたら、なんだか妙なことに。
「いやいや、それは解釈がおかしい。本当は奥に向かって飛んでいるんだ」という考えもありそうな。
てなわけで、2Dゲームってこういうところでも独特の表現を獲得してきたジャンルなのだなと再認識というか。
漫画やアニメ、もちろん実写映画でも、こんな不可解なジャンプの挙動を見せる瞬間はないわけで。こんな謎ジャンプが許されるのは、2Dゲームの中だけでしょう。子供の頃から何も考えずに遊んでたけど、よく考えてみると、2Dゲームって奇怪・珍妙な映像表現の宝庫だったのだなあ、と思えてきたのでした。
それはともかく。どうすりゃいいんだ、コレ。
◎ スーパーマリオは結構しっかりしていた気がしてきた。 :
そういや、スーパーマリオはこのへんしっかりしていたなと思い出したり。
例外は、彼が死んだ時だけ。その時だけは、あらゆるものを突き抜けて、どこまでも下に落ちていく。生者の世界と死者の世界は物理法則が違うのだ、霊体になれば現実世界の物質も貫通できるのだ、てな意味合いを持った表現だったのだろうか。でも、霊体マリオの動きにも重力加速度は影響するんだよな…。
考えてみれば、彼が死後、下に向かって落ちていく点も興味深い。例えば海外のカートゥーンアニメでは、キャラが霊体になるとえてして天へと昇っていく ―― 天使が周囲にまとわりついて神が居る世界へと導かれるのが定番だけど。しかしマリオは、死後、上ではなく、下に落ちていく。
何故、下なのか? 下には一体何の世界があるのか?
ここに、欧米人と日本人の、死後の世界、あるいは人間の業に対する捉え方の違いがあったりするのではあるまいか。あるいは、映画やTV番組等の映像コンテンツとTVゲームの間には大きな文化の違いがあるのだろうか。
何にせよ、そんな感じで、スーパーマリオは色々な面でしっかりしていのだなあ、と。
ああ、いや、言いたいことはわかります。「どうして何もない空間にブロックが浮いているの?」「どうしてキノコを食べると大きくなるの?」…そうですね。「どこが『しっかりしている』んだよ!」って感じですねハイ。
ブロックの謎はわからんけど、キノコは…アレは毒キノコという説をどこかで聞いた記憶が。毒キノコを食べて自分が巨大化した幻覚を ―― マリオの精神世界を我々は目撃しているのだ、現実世界の彼はキノコを食べた瞬間その場でばったり倒れて実は一歩も先に進んでいないのだ、とかなんとか。
スーパーマリオって、奥が深いな…。
- ジャンプしても、ブロックに頭をゴッチンコ。
- 頭をぶつけるほどに硬さも厚みもあるブロックから真下に降りられるわけもなく。降りるときは、端まで行って横方向に飛び降りないといけない。
例外は、彼が死んだ時だけ。その時だけは、あらゆるものを突き抜けて、どこまでも下に落ちていく。生者の世界と死者の世界は物理法則が違うのだ、霊体になれば現実世界の物質も貫通できるのだ、てな意味合いを持った表現だったのだろうか。でも、霊体マリオの動きにも重力加速度は影響するんだよな…。
考えてみれば、彼が死後、下に向かって落ちていく点も興味深い。例えば海外のカートゥーンアニメでは、キャラが霊体になるとえてして天へと昇っていく ―― 天使が周囲にまとわりついて神が居る世界へと導かれるのが定番だけど。しかしマリオは、死後、上ではなく、下に落ちていく。
何故、下なのか? 下には一体何の世界があるのか?
ここに、欧米人と日本人の、死後の世界、あるいは人間の業に対する捉え方の違いがあったりするのではあるまいか。あるいは、映画やTV番組等の映像コンテンツとTVゲームの間には大きな文化の違いがあるのだろうか。
何にせよ、そんな感じで、スーパーマリオは色々な面でしっかりしていのだなあ、と。
ああ、いや、言いたいことはわかります。「どうして何もない空間にブロックが浮いているの?」「どうしてキノコを食べると大きくなるの?」…そうですね。「どこが『しっかりしている』んだよ!」って感じですねハイ。
ブロックの謎はわからんけど、キノコは…アレは毒キノコという説をどこかで聞いた記憶が。毒キノコを食べて自分が巨大化した幻覚を ―― マリオの精神世界を我々は目撃しているのだ、現実世界の彼はキノコを食べた瞬間その場でばったり倒れて実は一歩も先に進んでいないのだ、とかなんとか。
スーパーマリオって、奥が深いな…。
[ ツッコむ ]
#2 [anime][neta] 1stガンダムの最終回の上と下が気になる
上の世界と下の世界云々を書いていて、ふと別のことを思い出したのでメモ。
1stガンダムの最終回で、アムロが下に向かって落ちていくカットが気になっていて。わざわざコアファイターをグルンと回してそういうカットにしているわけだから、何か意味があったのかなと…。
上には誰が居て、どんな世界があるのか。下には誰が居て、どんな世界があるのか。あの瞬間、アムロは下に落ちていくわけだけど。実はそういった意味が ―― アムロはこっちの世界を選択したんですよ、みたいな意味が込められてたりもするのかしらと。いや、考え過ぎかもしれないけど。たまたま偶然そういうレイアウトになっただけかもしれんけど。
あそこでアムロが上に向かっていったら、たぶんZガンダムや逆襲のシャアのような展開は無かったんだろうな、みたいなことも思ったり。結局、1stガンダムのラストでそういう選択肢を選んだからああなりました、ということになるのだろうし。
もし、アムロが今時のアニメの主人公だったら、「シャア! お前も僕も、あの時フラグを立て間違えたんだ!」とか叫んだり…いや、どうだろ…。
1stガンダムの最終回で、アムロが下に向かって落ちていくカットが気になっていて。わざわざコアファイターをグルンと回してそういうカットにしているわけだから、何か意味があったのかなと…。
上には誰が居て、どんな世界があるのか。下には誰が居て、どんな世界があるのか。あの瞬間、アムロは下に落ちていくわけだけど。実はそういった意味が ―― アムロはこっちの世界を選択したんですよ、みたいな意味が込められてたりもするのかしらと。いや、考え過ぎかもしれないけど。たまたま偶然そういうレイアウトになっただけかもしれんけど。
あそこでアムロが上に向かっていったら、たぶんZガンダムや逆襲のシャアのような展開は無かったんだろうな、みたいなことも思ったり。結局、1stガンダムのラストでそういう選択肢を選んだからああなりました、ということになるのだろうし。
もし、アムロが今時のアニメの主人公だったら、「シャア! お前も僕も、あの時フラグを立て間違えたんだ!」とか叫んだり…いや、どうだろ…。
[ ツッコむ ]
#3 [unity] Unityとblenderの画角だか視野角だかField Of Viewだかそのへんの話
Unity上の見た目と同じようにblender側も表示ができたら作業が捗るのかなと思えてきたのでそのあたりを調べたり。要するに、画角(視野角?、Field Of View) の設定を合わせることができれば、と。
ちなみに、Unity側の画角は、Main Cameraを選択して、Field Of View で設定できる。
blender側も、Cameraを選択して、レンズ単位を「視野」にすれば角度を指定できる。英語UIなら、「Field Of View」と表示されてた気がする。
画角と言っても3種類あるようで。 垂直方向、水平方向、対角線。
Unity側の画角は、ググった感じでは垂直方向の画角らしい。上図で言えば、一番左。
blender側の画角・視野角は、どの種類か分からない。ググっても情報に辿り着けなかった。少なくとも、垂直方向ではない模様。Unity側と同じ画角値を指定しても見た目が同じにならなかったので…。となると、水平画角か、対角線の画角か、どちらかが該当するのだろう。
少し実験してみたけれど、おそらくblender側の「視野」の値は、水平画角を示している、ような気がする。Unity側の画角値 ―― 垂直画角の値を元にして計算で求めた水平画角を指定してみたら、Unity側と見た目が同じになったので。
ということで、水平画角を求めれば、目的は果たせる。たぶん。
一応、JavsScriptで計算するページを書いてみたり。
_Unityの画角からblender用の画角を計算するページ
Unity側で60度と45度を指定してみた結果と、blender側でレンダリングした結果を比較してみたけど、たぶん合ってる…気がする。
ちなみに、Unity側の画角は、Main Cameraを選択して、Field Of View で設定できる。
blender側も、Cameraを選択して、レンズ単位を「視野」にすれば角度を指定できる。英語UIなら、「Field Of View」と表示されてた気がする。
画角と言っても3種類あるようで。 垂直方向、水平方向、対角線。
Unity側の画角は、ググった感じでは垂直方向の画角らしい。上図で言えば、一番左。
blender側の画角・視野角は、どの種類か分からない。ググっても情報に辿り着けなかった。少なくとも、垂直方向ではない模様。Unity側と同じ画角値を指定しても見た目が同じにならなかったので…。となると、水平画角か、対角線の画角か、どちらかが該当するのだろう。
少し実験してみたけれど、おそらくblender側の「視野」の値は、水平画角を示している、ような気がする。Unity側の画角値 ―― 垂直画角の値を元にして計算で求めた水平画角を指定してみたら、Unity側と見た目が同じになったので。
ということで、水平画角を求めれば、目的は果たせる。たぶん。
w = 画面横幅 h = 画面縦幅 ang = 垂直画角 dist = cos(ang/2) * (h/2) / sin(ang/2) angle_horizontal = arctan((w/2) / dist)) * 2…本当に合ってるのかな、コレ。
一応、JavsScriptで計算するページを書いてみたり。
_Unityの画角からblender用の画角を計算するページ
Unity側で60度と45度を指定してみた結果と、blender側でレンダリングした結果を比較してみたけど、たぶん合ってる…気がする。
[ ツッコむ ]
#4 [cg_tools] 作図用の便利なツールってないのかな
前述の図を Inkscape で描いたものの、なんだか面倒臭いなと。もっとサクサク描けるツールってないものか。
作図と言っても、その都度求められる図形その他が違うから、なかなか難しいか…。
作図と言っても、その都度求められる図形その他が違うから、なかなか難しいか…。
[ ツッコむ ]
以上、1 日分です。