ニートが頑張るブログ

ニートが現実逃避するために創作活動など色々とカオスに頑張ってみる
ニートが頑張るブログ TOP  >  Flash作成過程 >  生まれたての子鹿みたいにしてやろうか

生まれたての子鹿みたいにしてやろうか

そこそこ進んだので
「動物歩かせプロジェクト」の途中経過です。


◆操作方法
方向キーで歩く
Zキーで注視モード (新機能)
シフトキーで平行移動
スペースキーで走る
Xキーで高いところから落とす  Cキーで地面にめり込ます  Vキーで横からどついてみる 
胴体をドラッグで全身を引きずる
足をクリックで四肢切断
Dキーでキャラの複製 (新機能 バグ多し)



まだまだですが、それでも見どころは多いつもりです。
とりあえずは動物を見せられるようになりましたが、エディタ的な部分は一切出来ていません。
それ以前にまだまだ挙動を頑張らないといけないのです。

これを見てから前回のを見返すと、全然ダメダメな動きに見えるようになりますね。
このサイクルを繰り返さないとイカンのです。

全画面とか


◆やったこと

・動物を選択できるようになった
 まだまだ出来の悪い奴も多いけど、
 とにかく、いろんな動物を実際に作って、どんどん追加していけることの証明です。

 「ある一つの動物のために特別な処理や特定のモーションを用意したりすることなく、
 パラメーターをちょいと弄るだけで、あらゆる動物に対応できる」、そんなモノを目指しているのです。

・キャラの全身を、移動方向と速度に応じて傾けることが出来るようになった
 キャラクターが、今進んでいる方向に向けて全身を傾けることが出来るようになりました。
 といっても、そんなに単純な回転ではありません。
 自分の正面にだけ倒れていればいいワケではないからです。 (横や後ろにのけぞることもある)
 だから、全身のY軸回転とは更に別の、X軸Y軸Z軸回転を「足以外にも」用意しないといけないのです。

 そしてこの倒れ方は動物によって性質が違います。
 例えば「ステゴサウルス」を選択すれば、
 歩こうとする方向に「逆に上方を向くようにしながら加速する」のが確認できます。

 この、「正面以外にもキャラが加速に応じて倒れる」というのは、それだけで
 生々しさがグンと上がります。 今回一番生々しさを上げたのはこの点だと思います。
 (「人間」を振り向かせた時の肩の「ひねり」のような動きは、ほぼここから生まれています)

 キャラクターを歩かせることに関して、
 このことをリアルタイムにキチンと表現できているゲームは、実は少ないと思います。
 (少なくとも、一昔前のゲームでは) (殆どのゲームが「キャラが前のめりになるモーション」を流すだけ)

 表現できている古い例としては、「MGS1」のスネークなんかでは、
 キャラを走らせながら旋回させようとすると「ちょっとだけ横方向にZ軸回転が入る」のが確認できます。

 とにかくこの「全身回転要素」により、最終的にキャラが転ぶようになったり
 投げ飛ばしたり、側転したり、そういう方向での応用が出来るようになるのです。



◆あとはホントに細かいこと

・足の付根を振れるようになった
 腰振り要素です。 これもちょっとだけ生々しさが上がります。
 これを応用すれば、かなり激しく肩を動かしながら移動する動物にも対応出来ます。(ロボット的な動きにも)

・旋回の大幅強化
 キャラを旋回させた時の足の動き、足が次に向くべき方向の計算、
 そして自動的に歩を進める、そんな動きを実現できるようになりました。

 「もののけ姫」タタリ神が方向転換をするときに、
 カチャカチャと足を「再接地」させてから旋回していたと思います。 要は、あれを目指しているのです。 
 「アリ」がそれに近い動きをさせられます。
 改めて前回のを見れば、テキトーにY軸回転してるだけなのが分かりますね。

・接地感強化
 旋回と合わせて、頑張らんとイカンのが、これ。
 「人間」を選択してスペースキーで走りながら180度踵を返すときの動きが結構気に入っています。

・二足歩行以外にも対応
 1本足だろうが8本足だろうが何本足でも来やがれです。

・足を根本中心に回転させるパラメーター、X軸回転・Y軸回転・Z軸回転が出来るようになった
 人間とか直立二足歩行してる恐竜は、足が真下にしか付いてないけど、
 これにより、変な方向、あらゆる向きに足を生やすことが出来るようになりました。
 この回転がかかった上で足をY軸回転させ、
 それプラス、本体のY軸回転とその本体の「進ませたい方向」に応じて「足を振る向き」を変え、
 更に、本体の加速度によって「傾き」も発生させなきゃならない。
 頭がパーンしそうになりました。

 
・パラメーターを吟味しつつ、色々追加
 地面を蹴る能力差 足の伸び縮み度 足の回転の位相差 やら何やらカニやら。

・足を振るスピードも弄れるようになった 
 (最終的に可変fps、時間停止や、時間をゆっくりにしたりしても対応できたら嬉しい)

・キャラの旋回スピードも考える

・新機能 「Zキーでの注視モード」
 画面の中央をロックオンしたような動きをします。

 ラプトル、カマキリなど、「獲物を狙うような動物」にこれをさせて
 左右に歩かせるだけでカッコよく見えるようになれば、最高だと思うのです。


そんな感じです。

人間、ラプトル、ステゴサウルス、カエル、アリあたりは
結構マシな動きをするようになったと思うので見て欲しいです。

(特に、カエルが向きを変えるところは妙に可愛いと思う)



他のはみんな難しいヤツラです。
出来が悪かったりしますが、やはりこの先の進歩のためには、簡単には動きを表せない動物こそ重要なのです。


それから、「キャラの旋回」に関する話をちゃんとします。

今回はキャラの旋回に結構力を入れました。


ゲームにおいてキャラを旋回させるときには、
テキトーに「歩きモーション」を再生させながらY軸回転するだけでもそれなりに見えたりしますが、
(例えば、昔の「バイオハザード」のラジコン回転みたいに)
自分が作りたいのは「実際にキャラの足の動きによって移動が発生するゲーム」なので、
そんなテキトーなことをしてると変な動きになります。

だから旋回するときは
それぞれの足が、「次に自分はどの方向に歩を進めるべきか」をキチンと考えないといけません。

アホ旋回
例えばこんなふうに、
「それぞれの足の位置」「体の中心」「やろうとする旋回量」から、
「それぞれの足の傾けるべき量」が導けるような気がします。


この理屈で考えると、
人間がその場で180度ターンをしようとするときに
「なぜ、無意識に片足を後ろに一歩下げ、片足を一歩前に進めようとするのか」
が理解できるように
なると思います。

↑ ↓

この合成が、旋回である。
戦車道。

アホ旋回
この考えをもう少し進めると、
「次のあるべき姿勢に向かって足は動いているのだ」ということが分かってきます。
旋回量と移動量を加え、「次のフレームでどの位置に足があるのか」を求めれば、
180度ターンだろうが、移動だろうが、平行移動だろうが、注視移動だろうが、次の足の角度が出せるのです。


当たり前と言えば当たり前だけど、
とにかくこういう、「一つの考え方で全てが統一的に表現できるような法則」に気づいていき、
最終的に一番シンプルでエレガントな結論に辿り着いて、それを採用していく感覚が楽しいのです。


といっても、
まだまだ全てがうまくいっているワケではありません。


今回、一番酷い動きをしやがるのが
「這いずる手首」です。

このキャラ、まっすぐ這っているだけならいいのですが
大きく旋回させようとすると、とんでも無い方向に吹っ飛んでいきます。


でも考えてみると、これは別にバグっているわけではないのです。
アホ旋回

今、この上を向いている手首を、左を向くように旋回させるとします。(緑色の矢印の回転)

そのとき、「各指が指を曲げて地面に力をかけるべきベクトル」
細い赤色の矢印で図示したとおりになります。

今のところ、これ自体は全く間違っていないことが分かるのですが、
これら全ての指のベクトルを合成すると、右上の太い赤色の矢印の移動をしてしまうのです。



実際に「這いずる手首」を選択して、
画面のように上を向かせて、矢印キーの左を押すと、
このような動きをすることがわかると思います。


何も間違っていないのに、
実際には違和感全開の挙動を起こしてしまう。


では何が悪いのか。

指が片側にしかついていないから、回転のベクトルが一方的な移動ベクトルに合成されてしまう。

それも正しい。

手首の位置に、「移動しない大きな接地点」を用意すべきなのかもしれない。

それも正しいだろう。


でも、本当に考えるべきことは
もしも実際に、「ゲゲゲの鬼太郎」のように、
こんなふうに手首だけで動くような生き物がいたら、
「そんな生き物は、旋回なんて本来殆ど出来ない」
ということではないでしょうか。


本気でそういう構造の生き物がいることを想像すれば、
ソイツが進める方向は、指を曲げられるまっすぐ正面だけだと分かります。
横方向には力を入れても全然進めないことが想像できると思います。

実際このことは、「芋虫」を選択して
シフトキーを押して左右に平行移動させようとしてみると分かります。
芋虫は、横に平行移動できないのです。(結論)


架空の生き物であっても、全力で挙動を考えようとするのがあるべき精神的姿勢だと思うのです。

何の話だ。
未解決。


まぁそんな感じ。
エラソーなこと言ってるけど、まだまだ全然、ということです。

アホレギオン

あと、今のところレギオンが全然レギオンに見えないかもしれませんが、
伸ばすべき部位の構造を考えると、こういうボーン構成で正しいと思うのですよ。 
(つまり自分には、↑こういうビジョンが見えている)

頭に干渉波クローは付けてないけど、
こういう頭についてるだけで移動と関係ないモノは
「しっぽオブジェクト」とか、そういう形で用意すべきかなぁとも思っています。

関連記事
[ 2013/05/28 20:16 ] Flash作成過程 | TB(0) | CM(2)
まさかのレギオン!!これは嬉しい驚き(笑)
いつも密かに楽しみにしてます。
手首の方向転換、思い切りドリフトしてますね。
単なる素人意見ですが、方向転換を補助するための横向きの親指をつけると変わったりしませんかね?
[ 2013/05/29 21:11 ] [ 編集 ]
コメ返信
> 名無し さん

> まさかのレギオン!!これは嬉しい驚き(笑)

レギオンがちゃンと動かせるようになる瞬間が
我ながら楽しみです。




> 単なる素人意見ですが、方向転換を補助するための横向きの親指をつけると変わったりしませんかね?

確かに親指を付けてないんですよねー。

これは、下手に親指をつけると
「4倍」酷かった動きが、かえって「5倍」酷くなるのが怖かったからですね。


実際、指はちぎればちぎるほど、マシな動きに近づいていきます。
(最終的に一本になれば、「芋虫」と同じになりますからね)


じゃあ動かない親指(横を向けるとか、伸び縮みしないとか)をつけるとどうかというと、
今のところこれもうまくいかないのですね。


これはなんでかというと、
今のところ自分のこの「歩きシステム」は
「足の先」の1フレーム前の位置との差分で移動速度を出しているからですね。

足の先しか見ていない。 根っこの部分を計算に入れていないからだと思うのです。
だから、「重み」というのが働こうにも働かない。


まぁこのへんは本当に課題です。

あんまやり過ぎるとどんどん処理が重くなっちまいますから
そこそこ上手く動くように見えている所でうっちゃるのも手かもしれません。

どのくらい変な形の動物の挙動までフォローするか、ですね。


[ 2013/06/03 08:56 ] [ 編集 ]
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

月別カレンダー
04 ≪│2017/05│≫ 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -