カテゴリー
制作

視覚と攻撃判定を追加

敵のモーションに続いて、レイを使った視覚判定と攻撃モーションの当たり判定を追加。

敵の視界は敵の目線の代わりにレイを飛ばして判定することにした。コライダで四角錘や円錐が使えればそうするのだが、基本形状に無いものだとうまくいかない気がする。
敵の目のあたりから例を飛ばす角度を少しずつ変えて平面上を走査するような方法にした。

敵の右手にダミーの武器を追加して、攻撃アニメーション時に当たり判定を行う。攻撃動作を行っていない時に攻撃判定が発生しないようにアニメーション時に判定有無を切り替え、武器を振る瞬間のみ攻撃判定を行う。この時に衝突したオブジェクトにプレイヤーのタグが付いていたらプレイヤー側でダメージ処理を行う形にした。

歩き回る機能、プレイヤー発見時や未発見時の挙動などはこれから作っていく。

もっとペースを上げないといけない気がする。

カテゴリー
制作

簡単な人型モデルを動かしてみた

3Dモデルを動かすとき、Unityではどうするのかとざっと調べてみたが馴染みのない言葉ばかりでしり込みしてしまった。

手っ取り早く動かすならモデルもアニメーションもどこかから持ってくれば良さそうなだが、できているものを使ってもいまいひとつ面白くない。
自分で中身を理解していないデータを持ってきても応用が利かなそう。
バージョンアップで動かなくなると自分でどうにもできなくなったりしないか。

できる範囲でやってみようと思い、まず立方体で胴体、腕、足、頭を作って簡単な人型のモデルを作った。
腕、足などをジョイントとなる空のオブジェクトの子オブジェクトにし、角度を指定することでアニメーションさせてみる。とりあえず某サンドボックスゲームで見たような歩行モーションや攻撃モーションが用意できた。
スクリプトから歩行の状態と待機の状態を切り替え、攻撃モーションを動かすことができた。

アニメーション機能はTransformやアニメーションパラメータ以外にも、アタッチされたスクリプトのパブリック変数も変化させることができるようなので、いろいろな使い道がありそう。

カテゴリー
日記

時間の使い方を改善したい

深夜になってしまったが、たまに平日更新してみる。

学習したい事はあるし、読みたい本もあるのだが、会社の仕事が終わった後にこういった時間を確保しようと思うと、もともと不足している睡眠時間をさらに削ることになってしまう。
週末の時間を有効に使うことも重要だが、もう少し平日に工夫できることは無いか。
時間が無いと言っても、文字を一文字も読めないというほど忙しいことは無いはず。頭の切り替えを素早く行って細切れの時間を活用するしかない。

志気を保つのに手軽な方法は進捗や成果を見えるようにする事だと思う。
本を読む場合、どれだけ進んだかはページ数から簡単に把握できるのでこれを意識すれば継続しやすいのではないか。

会社の仕事だけやっていても新しい知識に触れる機会が無いので、自分を変えたいなら自分で学ぶしかない。

カテゴリー
制作

モーションを作ろうと思ったが…

敵の攻撃動作を作ろうと考えているうちに敷居の高さを感じ始めた。

攻撃動作を作るなら骨格を決める必要があり、骨格を決めるならそれが人間か獣か機械かなどを決める必要がある。
攻撃と一口に言っても人間が剣を振るか銃を撃つのか、獣が噛み付くのかひっかくのかなどで攻撃動作が変わる。

敵がどんな姿をしていて、どんな能力を持っているのか、など具体的な事がある程度決まっていないと攻撃動作を作れない。

3Dモデルが3D空間で動き回るという情報を肉付けするのはかなりの根気が必要になると思われる。

とりあえずこれを後回しにしてモーション無しで歩かせてみようとも思ったが、歩くアルゴリズムを考え始めるとまた課題が見えてくる。
視界に入ったプレイヤーに向かって真っすぐ突っ込んでくるだけなら実装は難しくないが、それではゲームとして単調になってしまう。
プレイヤーを見失った時はどうするか。
時間経過で持ち場に戻って待機するのか。探索しないと間抜けに見えてしまうが。
持ち場で待機しているときははただ突っ立っているだけなのか、歩き回るのか。
歩き回るならどこを歩くのか。ランダムなのか、決められた経路なのか。

これらのアルゴリズムの良し悪しがゲームの面白さにつながるのだろう。コーディングやツールの使い方といった実装する方法だけではなく、仕様設計でもはやり工夫が必要。

敵のアルゴリズムといえば、画面スクロール型のシューティングゲームの場合はこういった敷居は低いのではないかと思う。敵の動きは直線や曲線など単純で経路探索も不要のため、あらかじめ決められた動きで成り立つからだ。持ち場で待機するとかプレイヤーを探すという挙動も必要ない。

完成したものを公開するならどこを落としどころとするのか決める必要がある。
いっそのこと敵がいなくても成り立つゲームにするのも一つの手かもしれないが、それとも何とか頑張って素人なりのアルゴリズムで動き回る敵を実装するか。
考え事をするだけで全然進んでいない。
プロトタイプと割り切ってとにかく作ってみるしかないのだろうか。

カテゴリー
日記

習慣に改善の余地あり

最近の過ごし方を振り返るとまだ改善の余地があるように思える。

週一でのブログ更新を始めてから半年。
ノルマが達成できていること自体は良いのだが、逆に週に1回以上更新する必要は無いという感覚になりつつある気もする。もっと更新頻度を上げられるように心がけたい。

また、更新を後回しにしがちで日曜の夜に行っている点も改善する用が良い。
遅い時には日付が変わって月曜の2時になっている事もある。
宿題を先に片づけてしまうという意識で早めに取り組むようにするべき。

注意するべきなのは、自分にとってブログは自己管理のために書いているのであって、ブログを書くこと自体は目的ではないという事。ブログの他にもやるべき事があるので時間の使い方を見直す必要がある。

カテゴリー
制作

壁の高さをランダムにしてみた

作ったマップを歩いているともう少し景観に変化が欲しくなったので、壁の高さをランダムにしてみた。見分けがつきにくいので壁の上面に色を付けてみた。
進捗が少なすぎる。進捗と言えるほどの進捗でない。

敵のモーションを作ろうかと考えていたが、他の事をやりたくなってしまう。
剣や銃で戦うゲームはいくらでもあるが、ただそれをコピーするだけだと思うといまひとつ面白くない。学習としての意味はあるだろうけど。

そもそも何を目的としてこれをやっているのか。
学習か、面白いものを作りたいのか、副業での小遣い稼ぎを目指しているのか。
どれも当てはまるような気もする。
売りたいなら面白いものを丁寧に作らなければならない。
売る事よりもとにかく公開する事を目指しているだけなのか。それなら下手に風呂敷を広げずに手軽なものにする必要がある。いきなり3Dでは敷居が高いのではないか。2Dなら簡単とは言い切れないが。
結局、何を作りたいものかが煮詰まっていないような気もする。