FC2ブログ

ニートが頑張るブログ

ニートが現実逃避するために創作活動など色々とカオスに頑張ってみる
ニートが頑張るブログ TOP  >  自作ゲーム開発 >  弓矢、盾、チャンバラづくり

弓矢、盾、チャンバラづくり


「8月の半分」くらいをかけてやってたことにゲームづくりがあった筈なんだけど
その解説の文章を全く書いてなかった。


やったこと。
実は変わったこと。
色々やってるんです。







◆体躯の傾きのなめらか変化

しゃがんだ状態からの前後移動 


「旧アニマルメーカー」で、最後まで直せなかった現象に、実はこれがあります。
しゃがんだ状態で前後に方向を変化させたとき、傾きが一瞬で変化してしまう、という奴。
旧アニマルメーカー

これを一応なめらかにした、みたいなのも変化だったりする。


一応、注視モードや平行移動モードにして、 左に歩いてからすぐ右、みたいに
向きを変化したときの体の傾きなんかも、前は一瞬で変化してしまっていた。
そこもなめらかに変わるようにした。


あと、地面の角度に合わせて傾くやつも改良したので、ここが治りました。
床との角度調整



「足元の地面の法線と、その角度に合わせて近づく」という奴でいけるだろうと思っていた筈なのに、
前の奴だと、ここまで急な角度だと、角度が飛んでいました、


なぜそうなるのかというと、実は「軸」の方が180度変わっているのですね。
床の法線

この、前の地面と、後の地面では、 法線の軸が180度、実は変わっているのです。
そういうのにも対応できるようにした、と。
こういうのが、作者にしか分からない変化。


で、「見た目」の進歩が地味なのは当然として、
問題は内部処理の変化の地味さだったりする。



こういうのを実現するために、内部の変数の処理からして、かなり根本的に直してたりするのです。


◆キャラの押し出し

これは、前のアニマルメーカーでもやれてたことですね。

キャラ同士の衝突


ゲームにおいて 「キャラとキャラがぶつかったとき」、どうあるべきか。


・そこで完全に止まってしまうのか? or (それともごまかしっぽく減速でもするか)

・そこで相手を、どんどん押せてしまうのか? (アフリカの動物同士の衝突)

・すりぬけてしまうのか? (ソウルシリーズの敵なんかはある程度押し続けると時間で抜けるようになってる)

・それとも、のけぞりモーションなんかを再生して、ごまかすか? (MGSVのFOBで、味方キャラにぶつかったときはそうなる)



・・・
・・・全部、「不正確」な筈です。


本当は、自キャラは歩きづらくなり、
相手キャラは「おっとっと」と押し出され、押された方向に歩を進める、
というのが現実的な筈です。


自分のアニマルメーカーのシステムなら、それが実現できるのです。


まぁ、そのためには、 「加速のシステム」を「二重」に改造する必要があったりするわけです。
(ちゃんと説明する気がないのでテキトーだけど)



で、前のアニマルメーカーでもそれをやりましたし、今回のこれでも出来るようになったということです。


◆盾を作りました。

今の段階でここまで武器を作り込む予定ではなかったはずなのに何故かつくってしまった盾です。
(謎解きメーカーに、盾の要素なんかなかった)


盾(左手武器系)を拾うと、 左手に自動に装備します。

そのあと、Xキーを押すと、その武器の構えに移行します。


盾武器の場合は「盾構え」にしているので、盾を構えられるということ。

で、構えていると、相手の攻撃をブロックできる、と。
現時点で、敵とチャンバラできますよ。



自分もこういうのが作れるようになったのだなぁ~と、これだけで感慨無量だったりするのです。
だって、なんか凄い、ダクソみたいなゲームが近づいてきてる気がするから。


しかも、盾拾い、盾投げとかも全部リアルタイムに出来るってのが嬉しすぎる。


盾構えモーションと、それにあわせえて揺れる盾
だいたい、この「盾構えのモーション」からして、我ながら好きなのです。


こうやって、Xキーを押すと、なんか、「いい感じの揺れ」が、盾に発生しているのが分かると思います。


つってもなにもしていません。
全部自動的に生み出されるようにしているのです。
武器を構えたり振ったりしたときの 揺れ、揺り戻し、 そういうのもいい感じになるように直したのです。



盾でガードをしたときの挙動 触感

そして、このブロックをしたときの「感触」

これ、我ながらかなり好きなんだが??



ダクソ1でさ、 盾を構えた印象深いやつがいるんだよ。

森のこいつ。

こいつを、槍系の武器で突いたときの コンって感じが好きでした。

ああいうのに迫りたい。


あと、自分の盾に自分の武器の攻撃も当たるようになってます。

だから、こんな「盾鳴らし」みたいな行為が自分でできます。
盾鳴らし


これ、「ドラゴンズドグマ」の、敵のファイターがやってくる威嚇行為みたいですよね。


同様に、
自分の左手武器に対して、自分の右手武器の攻撃が衝突する、みたいなことも、起きます。
これは
なんか、天誅弐の 玄武を思い出す。



◆武器に付随する手足

武器を持っている手足が、 多少、「武器に"逆に"引きずられる」という現象も、表現できるようになりました。


盾で防御したときに、その盾が押し出され、更に、 その盾を持っている「手も曲がる」
そういうことが表現できるようになったということです。


で、これによって、武器を持った状態での 振り返り やら走りやら、 ダッシュやらも、
全部表現力がアップしたのです。

ダッシュをしたときの手足、武器、ツインテの動き

急に加速したとき、手足の武器が重みで遅れてついてくる。
結果的に、手足が後に伸びる感じが自然に表現される、と。
(長さ制限がいるかもだけど)


◆「揺れものスクリプト」というのを自作しました。


何かの中に、子オブジェクトとしてトランスフォームをブチ込んでおくだけで、あとは勝手に「いい感じ」に揺れてくれるような
便利なスクリプトを作ったつもり。


多分、「ダイナミックボーン買え」とかそういうことになってくるんだろうけど、やりません。
どんだけショボかろうが、全部 自分で作ります。

(自分のゲームのなかに、自分の知らんスクリプトがあるというのが、なんか嫌なんだよ)


で、
これで、例えば「尻尾」だとか「ツインテ」だとかの揺れの表現も、前よりかはマシになったのです。

尻尾全般の動きがよくなりました

上下にジャンプすれば、それの逆に揺れて、その後揺れ戻しがくる。
Y軸の旋回もそうだし、注視や平行移動モードからの、左右のダッシュでも、いい感じに揺れるようになりました。


前のバージョンでは、実はここが擬似的で、テキトーだったのですね。


◆攻撃システムと、全身の 「揺れ」

で、殴った尻尾とか 頭とか、手足とかが、 攻撃に合わせて、 その部位だけ「揺れる」ようにする、というやつもやりました。


カマキリを殴ったときのリアクション
例えば、
カマキリのお腹のあたりを殴ると、こうなります。

尻尾と羽が攻撃に合わせて こう動いて、そのあと揺れ戻しがくる、と。
前は、血が出るだけでした。

恐竜の頭を殴ったときのリアクション

を殴れば、が揺れる。 手足を殴れば、手足がゆれる。
尻尾をなぐれば、尻尾が揺れる。

全身をなぐれば、全身がのけぞる。 (←これだけしか作れてないゲームが、実は大半です)



これがまぁ、できてるゲームも、限られるかなと。

例えば ソウルシリーズだと、になってから、これができてるようになりましたね。
いや、ブラッドボーンか。


ブラッドボーンから、ボス戦がなんかぐっと良くなったのは、これもあるでしょう。

ブラボの 「聖書者の獣」
ダクソ3だと「ボルド」あたりの手足を殴っているとき
今までと「ボスの触感が違う」ってのが 分かる人はわかった筈です。


攻撃に合わせて手足が個別に揺れるってのは、気持ちがいいものなのです。



「ダクソ3」をやってから、「仁王」なんかをやると、味気ないのが、この点なのですよね。


でかい鬼の 足を切っても手を切っても、その殴ってる部位がその攻撃に合わせて揺れる ということが「無い」ので、
なーんか、味気ない。

せいぜい、発生するのは、ちょっとした「全体の」のけぞりモーションだけなのです。



仁王のボス戦がダクソに比べてなんかしょぼいように感じられるのは、そこなのです。

ボルド怨霊鬼だけで、そこがもう違う。







で、ダクソ3にしたって、「ボス戦」でこそ、こういうのが作りこまれてるけど、通常の雑魚では、こんなの無いはずです。



でも
自分のこのアニマルメーカーのシステムなら、
ボスだとか、雑魚だとか、大型だとか、小型だとか、人型だとか、獣だとか、 そんなの関係ありません。
全員、区別なく、全身揺れるし、 そもそも敵の大きさなんか あとからいくらでも自由に変更できるのです。



◆壁突き刺さり


自分が勝手に尊敬し、すげーと思っているゲームに 「EXANIMA」というのがあります (EXAMINAと間違えやすい)


このゲーム、武器振りの表現がとにかく凄いのです。

絶対勝てないと思う。
まぁ何かが根本的に違うんだろう。


でも、なんか目指したいと思っている。 こういう「雰囲気」も含め。
 (diablo1の雰囲気を継承できてるのはこのゲームくらいだよ!)

(ちなみに、今の自分のゲーム、グラフィック的には最底辺レベルの水準だと思うけど)
(そんなのは後でどうにでもなると思ってやってないんです)
(まずは動き操作系です)


↑こないだも、「武器が壁に突き刺さる」というのをやってました。


すげえなぁ。


でも、自分も真似してそれを作ってみたんです。

壁突き刺さり

武器を壁に向かって振って、当たると、突き刺さります。


突き刺さったあとは、しばらく引っ張らないと、引っこ抜けません。 (走ったり、逆向きだったりすると、抜けるのが早くなる)


やってみたら
まぁ、結構同じ表現ができたのです。


自分の場合「突き刺さり後の主人公の角度制限」というのもやっています。

突き刺さったら、シフトキーとか関係なしに、「平行移動モード」になるのです。
これが、ショボさをごまかせているかと思います。


さて、こうして出来た「壁突き刺さり」
なんの役に立つのか。


当然、自キャラのリアリティやら戦法に関わってくる。

壁際で、安易に攻撃を出すと、困ることになるからね。


武器が壁に弾かれるのを嫌う人はいるかもしれないけど、しったこっちゃない)
(もっとすごいペナルティを作ってやったぞ、ということ)


まぁ厳しすぎてもアレなんで、
武器や技ごとに壁との関係性は分けるようにしようとは思っています。

・壁に突き刺さる

・攻撃モーション・タイミングによっては突き刺さる

・突き刺さらない

・壁にあたったら、逆方向に押し出される

・弾き返される


・・・みたいなパターンがあるかと思われます。



例えば、パンチとか鈍器のような攻撃が壁にあたったときは「逆方向に押し出される」が発動します。

鈍器


で、壁武器刺さりで、 一番重要なのが、敵の挙動に関わる部分ですね。


骨に見つかって、逃げながら、攻撃をさそってみましょう。

敵の斧の大振り攻撃が、壁にあたるように誘導すると。突き刺さって、そのあとしばらく反撃も防御もできなくなります。
その間に反撃できる、というのが生まれるのです。
(一応地面に突き刺さることもあるけど、条件厳し目にしてる)


いま、壁突き刺さりというのを雑に作っただけなのに、もう、こういうのになってる。


この感じを出せてるゲームはほとんど無いようにも思う。



◆弓矢


弓矢を作ってしまいました。


今回ここまでやる予定なかった筈なんだけど、
盾が作れたのが嬉しすぎて、やってしまいました。

弓装備 弓構え 矢射出 壁突き刺さり


弓を拾うと、「左手武器」として装備されます。

その状態でXキーを押すと、弓を構えます。

そのままZキーを押すと、手に矢を握り、矢を引きます。

Zを離すと、矢を放ちます。

・・・
これだけ作るのも滅茶苦茶大変だったのです。


でも出来た時は滅茶苦茶嬉しかった。


ほんとう色々大変。


Zを押した瞬間、右手が空いていると、プレハブとしての矢を発生させ、右手に装備させ、
右手の攻撃パターンやら矢の状態やらを大量に書き換える。

そして、「右手の矢」の攻撃モーションとして、「弓矢引き」を発動させる。

Zを途中で貯め、途中で離すとキャンセルされる。

Zを十分貯めたあとに、逆にXキーを解除するプレイヤーがいるかもしれない。
そのあとも普通に矢が飛んでしまうとおかしいことになるので、それは許さないようにする。

そういうときは、右手に「近接武器としての矢」を持ったままの状態になるようにする。


その状態からZを押すと、手に持った矢で「突き刺し攻撃」をする。
右手に持った矢を近接武器として使う

あらためてXで構えながらZを押すと、今度はそのまま手に持ってた矢をつがえ、撃つことが出来るようにする。



・・・
そんな感じのリアルさで、矢を撃ちまくることが出来るようになりました。


撃った矢は、 敵に攻撃できるのは当然として、 やはり、 「壁に突き刺さり」ます。 
(ここに、さっきの近接壁武器の壁刺さりも、流用できるのです!)



右手が空いてる状態で
「壁に刺さった矢」に触ろうとすると、また右手に矢を入手できます。
つまり、矢を再回収できます!!
そのとき、「壁武器引き抜き状態」になります。

壁に刺さった矢の再回収

これがすっごいいいと思う。われながら。


矢を再回収できるなんて形兆かよ!


大抵のゲームで、撃ったあと矢なんてものは、
点滅して消えるだとか、そのまま何もできなくなるというのが大多数だと思う。


「弓矢の作り込みがいいゲーム」
撃った矢が地面に落ちて、再利用できるというゲームとして「ラストオブアス」があるけど、


今回、ある意味、「矢の再利用」に関してはラスアス超えたと思っている。 (よういうわ)



結局、ラスアスでも、矢をアイテムとして手に入れようと思ったら、そのままインベントリ行きになって、「消滅」させるしかない。

敵や壁に命中したあと、一定確率で「刺さった矢」が壊れないで、「拾えることを示すUIが表示される」ってだけである。
ラストオブアスの矢回収

矢を拾うと消滅し、「内部の変数が1増える」ってだけのことである。


でも、

自分の場合は、矢が消えたりしない! 

「そのまま」拾える! 

「そのまま」引っこ抜く!

「そのまま」右手に戻ってくる!

「矢筒」なんていうインベントリに移動して、消えたりしない!

右手に持った矢を、そのまままた引くことができる!

そのまま再発射できる!


・・・そういう、何も消えない、何も誤魔化さないループになっているのです。 一応。


◆殴り


あと、何も持っていない状態での Zキー押しで 「パンチ」が出るのは前からでしたが、
そこに「攻撃判定」をつけるのもやりましたね。 敵をちゃんと殴ったりできるようになりました。


これが、地味に大変でした。
下手すりゃ、弓矢つがえよりも大変だったかも。



やる前は「透明の攻撃用こぶし武器」というのをプレハブに用意しておいて、殴ろうとしたら そいつが発生して、
手にその攻撃がくっつくようにすればいいだけだと思っていました。


いやまぁ「そのとおり」でした。 予想した通りだったんだよ。

でも、「それだけ」だと思っていたことを、いざ 実装しようとしたら、 それが予想以上に大変で大変で、
まぁ難しかったです。



でまぁとにかく、殴りもちゃんと作れました。




前回の 謎解きメーカーというゲームでは、
スイッチの近くでプレイヤーがZキーを押すと、なんとなく「スイッチが押せる」という風になってましたが、
今回はそういうのもなくして、ちゃんとしようと思っています。



「スイッチ」という物があったなら、 そのスイッチをちゃんとキャラが「素手」なり武器なりで 「殴って押すべき」
そうやって手でちゃんと ドスっと殴ると、スイッチが動くと、 そういう風にしたいと思っているのです。


・・・
まぁそんな感じでした。
先月、ずーっとやってたこと。 モデリング以外で、「半月くらい」かけてやってたことが、 こういうことでした。


先月やってたことを。やっと解説できた。


何も変わってないようにみえて、色々やっているのです。
そしてあまりに進みが遅い。



まぁ、大分、固まってきたのでは・・・ないか?

そろそろ、「動き」とか「攻撃」とか以外の領域に、移行できないか?

関連記事
[ 2018/09/11 22:16 ] 自作ゲーム開発 | TB(0) | CM(5)
動くミクさん可愛いです。
[ 2018/09/12 12:20 ] [ 編集 ]
壁刺さりと矢の実装で、一気に空気感が生まれたというか、
ビジョンがハッキリしたように感じます。
骸骨と戯れていて思い出したのですが、
アクワイアの剣闘士というゲームはご存知でしょうか?
https://youtu.be/sbZWphMwzSY
プログラム面は全くの無知ですが、
装備の扱いが似ているので参考になるかと思いました。
[ 2018/09/13 22:49 ] [ 編集 ]
惜しい点「歩き方に違和感」
 どことなく歩き方に違和感を感じます。
 歩き方の違和感は比較的気になりやすいポイントなのだと思います。
 作りこみがなされているだけに、惜しい感じがします。
 モーション再生を使わず物理演算的なやり方(?)で動きを作り出す大変さというようなものがあるのかと思います。

・ポイント1 : 歩く速さや走る速さ
 歩きや走りのスピードが遅いように感じます。
 現在のところ「後ろの足首が移動前の足首の位置に拘束される」とでも言うべき挙動でしょうか?
 人間が歩くとき「身体全体が進行方向に運動エネルギーを蓄積していく」ことになると思います。
 ということは、歩いている(走っている)状態では(足が何もしなくても)前へと進み続けるはずです。
 例えば「全力疾走しているときに、もしも足が急に切断されたら」胴体は慣性力で前に飛び出すことになると思います。
 慣性がすでに実装されているのであれば数値設定でしょうか?
 特に走るときに、トップスピードがあまり出ない印象があります(実際に全力疾走すれば急停止は難しいでしょう)。
 もしかするとシステムというよりも身体スペック的なものかもしれません。
 人間なら50m走5.5秒ほど(ウサイン・ボルト)~7.5秒(男子高校生)位のスピードで走ることができるようです。
 実際にどのくらいのタイムなのかを(50mの長さのオブジェクトを用意するなりして)体力測定してみれば妥当な値が導き出せるように思います。

・ポイント2 : 足の振子運動(受動歩行ロボット)
 現在の歩き方は擬音語で表現するなら「ズンッ!ズンッ!」という感じの歩き方ですよね?
 人間の歩きは、もっと「スーッ」とした、なめらかな挙動になると思います。
 どうも「断続的」な印象で「連続的」な要素が不足している感覚です。
 「スーッ」とした動きとは、言い換えれば等速運動でしょうか?
 現在の歩き方は「上げた足の位置エネルギーを筋力で制動させている」ような歩き方だと思います。
 一歩ごとに加速と減速を繰り返している感じですね。
 ロボットの歩き方で「受動歩行ロボット(=パッシブウォーキング)」というものがあります。
 受動歩行とはアクチュエーターを使わないタイプの歩く仕組みです。
 どうやら人間は歩き出したら「歩き続ける」仕組みを持っているようです。
 受動歩行ロボットの動画を見れば歩き方についてのインスピレーションが沸くのではないかと思います。
 受動歩行ロボットを見るに、人間の歩く動作には「振子のような動作」が含まれている様子です。
 人間の歩く仕組みの中にも時計やメトロノームのような「振子の等時性」的なものが存在するということでしょう。
 左右の足の間では(股関節を介して)振子のように「位置エネルギー」⇔「運動エネルギー」が循環しているはずです。
 受動歩行の考えを取り入れれば、もっと「スーッ」とした感じの歩き方になるのでは?
[ 2018/09/17 00:01 ] [ 編集 ]
Re: タイトルなし
> 灰田 さん


> アクワイアの剣闘士というゲームはご存知でしょうか?
> https://youtu.be/sbZWphMwzSY
> プログラム面は全くの無知ですが、
> 装備の扱いが似ているので参考になるかと思いました。


やったことはないですが聞いたことはありますね。

PSPでこの武器の触感とか、防具やアイテム拾いの感じ、
やっぱアクワイアのゲームは、いいですよねぇ。


なんなんでしょうね。
「この感じ」は、初代天誅のころからずーっと感じているものです。


プレイヤーがアイテム拾えるなら敵も拾う
敵が武器防具落とすならプレイヤーも武器防具を落とす
・・・
すべてを対等に、公平に、汎用的に作っている感じですよね。


自分もそういうのをやりたいと思っています。

「敵と主人公は、操作権の有無くらいしか差がない」という感じ。
[ 2018/09/18 18:28 ] [ 編集 ]
Re: 惜しい点「歩き方に違和感」
> T さん


ありがとうございます。

現在のunity版アニマルメーカーの歩きに違和感があるのは、自分も重々自覚しています。


でも、これでも、前のバージョン、前の前のバージョンなどからすれば
人間の歩きは「これで」マシになったほう、なのですね。
https://blog-imgs-77.fc2.com/n/a/m/nameniku/bukihuri05.gif



開発者というのは、

何かを直そうとして、「ひどかった前の状態よりもちょっとマシに動くようになれば」、
なんかそんな状態でも愛おしくなっちゃって、
見る目が甘くなっちゃうところがあるのですね。




だから、正直に「歩きに違和感」と言ってもらえることは、ありがたいことです。

なんとかしなければいけません。



ラプトルはいいんですけどね、
やっぱミクさんを歩かせると、まだまだよくないです。

足が遅く見えるというのも事実です。


前のアニマルメーカーの方がまだマシであるポイントの一つなのですね。
あっちのほうがまだ、恐竜も人間もいい感じに両立できています。



この辺は、仰る通り
「後ろの足首が移動前の足首の位置に拘束される」
そういう問題もあります。

ラプトルなんかを歩かせてるときは、この「キュッ」と戻される感じが、いい感じに作用してるんですけどね。
人間の場合はこれがきつすぎるのでしょうか。


でもそういうのを、やたら「個別の変数・パラメーター」を更に追加して調整する、みたいな直し方は、嫌なのですよね。

それ故に直しづらいって部分もあります。



「慣性の蓄積」というのも、すでにやっていることで、
アニマルメーカーの肝であるともいえます。


アニマルメーカーのキャラには、内部に「二種類の慣性」があって、
自力による慣性、他力による慣性、みたいなのをやってて、
それによって今回の押し出しなんかも作っている感じです。




その上でこんなことになっているので、とにかく直すためには数値設定、

そして、「慣性の減速」
もっというと「慣性の減速の条件」

この辺をちゃんと考え直す必要があると思っています。



[ 2018/09/18 18:40 ] [ 編集 ]
コメントの投稿












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

月別カレンダー
11 ≪│2018/12│≫ 01
- - - - - - 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 - - - - -