こんにちは!コンじゃぶろーです!
夏が終わりましたね。蝉が鳴かなくなりました。まだまだ、暑い日は続きますが、皆さまご自愛ください。
さて、今日は、カメラワークの方法に関して解説します。
はじめてゲームプログラミング カメラワーク カメラで写すキャラを別のキャラへ切り替える方法
キャラ切り替えとか、乗り物の乗り降りとか、今操作しているものに合わせてカメラを動かす方法に関して紹介します。サンプルもアップしていますので、参考になると思います。
はじめてゲームプログラミング 操作するキャラが2つでも、カメラは1つ問題
ゲームを作った人であればピンとくるこの問題ですが、ゲームって1キャラしか操作していないつもりでも、複数のキャラクターが存在していたり、複数のカメラが存在するパターンがあったりします。
このあたりは、1度作ってみるとイメージがつくと思います。
丁寧に解説していきたいと思います。
そもそも、何が問題?2つも操作するキャラ必要?
カメラワーク?そんなの、ヒトノードンに、カメラノードンを連結させたらいいじゃん。
操作するキャラが2キャラいたら?
そんなの、1キャラにすればいいじゃん。
2つもヒトノードンを使っても、同時に操作なんて出来ないでしょ?
それが、あるんだよね。見た目は、1キャラだけど、内部的に2キャラになるパターン。
ちょっと、何言ってるか分かんないですね。
これを見てみて
ヒトノードンは、いくつ使ってるように見える?
え?ヒトノードンは、1つしか使ってないでしょ?
この、動画は、ヒトノードンを2つ使っているんだよ
いや、どう見ても1つだけじゃない?
これは、ヒトノードンを2つ使って「変身」を実現してるんだよ
移動方法の違う2つのキャラを用意して、ワープノードンで入れ替えているんだよ。
でも、カメラは1つしか用意出来ない。
ワープノードンで、一瞬で入れ替えているので、変身したように見えるけれど、もしヒトノードンにカメラを連結していたら、球があった場所にカメラは移動してしまうんだよ。
見た目は、1つしか操作していないように見えて、実は2つ操作している。ゲームでは、よくある表現だったりします。
■ここまでのまとめ
- 2つのキャラを操作する事がある。
- カメラは1つしか用意出来ない。
※フラグを使って、キャラを切り替える方法は、これを見てみてね。
全部で、4つの記事で構成されていて、最後の記事に、サンプルプログラムがあるからそれを参考にしてみて下さい。
ヒトノードンを2つ使っても、カメラは1つしか用意出来ない。この場合に、今回の記事で紹介する方法が必要なんだよ。
ヒトノードンへ連結せずに、ゲーム画面内に表示する苦労
ヒトノードンに、カメラを連結してしまうと、1キャラしかカメラで、追えません。なので、連結しない方法を考えます。
連結しないで済む方法として、簡単に試せるのは、ゲーム画面ノードンを使う方法です。
キャラの移動に合わせて、ゲーム画面ノードンも移動させれるので、上手く行きそうな気もしたのですが・・・。
画面から、フレームアウトしてしまってますね。
完全に同じ動きには出来ないので、少しずつズレていきます。なおかつ、切り替えるキャラで移動スピードが違うので余計にズレてしまいます。
- 完全に分離してると徐々にズレてくる
- 2つのキャラで違うスピードで移動する場合に、ズレやすい
サンプルを作って公開していますので、一度体験してみて下さい。
ではどうしましょう?困りましたね。
はじめてゲームプログラミング カメラ移動は、ワープノードンを使って解決!
操作しているキャラの位置から、カメラの位置を計算する方法もありますが、こちらも徐々にズレが出てくる為、困っていましたが、ワープノードンを使うと驚く程上手くいきました。
こちらは、Aボタンを押している間だけカメラが切り替わる処理になっています。驚く程簡単なので、サンプルプログラムを見てみて下さい。
サンプルの中で、注意しないといけないのは、カメラに連結している直方体の重量を、「無重力」に設定しておきましょう。
無重力に設定しておかないと、カメラがだんだんと地面にめり込んでいきます。
最初原因がよく分からなかったのですが、シンプルな作りにすると分かりやすいです。
キャラの現在位置を調べて追従する処理を作ろうとしてましたが、色々と問題があり、今回の方法に気付きました。
今回のギミックを使って、簡単なゲームも作ってみましたので遊んでみて下さい。
どこに、その処理が使われているか、探してみて下さい。
長々とご清聴ありがとうございました。
ではでは、また。皆様のよいゲーム作りをお祈りしております。
コメント