投稿記事

開発日誌の記事 (153)

水無川旅館 2024/03/09 16:34

Cinemachine テストその③ ズーム

 こんにちは! 今日の進捗を報告します。

右スティック前後でズームできるように

 前回までは右スティック左右で回転するようにしていましたが、今回は右スティック前後(上下)でズームするようにしました。単にズームするだけでなく、引きの時は見下ろし型、アップの時は FPS みたいな感じになるような曲線を描きます。

数学ちゃんとやってよかったなぁ(?

 Unity で 3D プログラミングをしていると、いわゆる「プログラミング」というよりも、数学の知識が役立っているのを感じます。ベクトルとか、指数とか。

 三角関数はもちろん、「滑らかに」動かす時に指数・対数を使うという発想は大事で、単に「プログラミング」をしているだけだとなかなか得られない気がします。

 もちろん Unity には LookAt や RotateAround といった、数学の知識が不要な便利な関数もあります。ただ、やっぱりちょっと凝ったことをしようと思うと、自力で計算する必要がある場合も多い。そうなると、このあたりの勉強は避けられない気がしますね。

 学問に王道なしとはよく言ったものだと思います。

 ところで、ちゃんと「勉強」ができる人はいいんですが、私は勉強が苦手なタイプでして。 OpenGL でのプログラミングや、クオータニオンの再発明を通じて頭というよりも身体で覚えたんですが(ほんまか)、そういう知識が活きるのは嬉しいですね。

 それでは今回はこのへんで! また次回もよろしくお願いします~~~!!!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

水無川旅館 2024/03/07 01:05

Cinemachine テスト2・Orbital Transposer

 こんばんは。今日の進捗を報告します。

Cinemachine 実験その② Orbital Transposer

 Orbital Transposer というものを導入し、右スティックで動かせるようにしました。

前々回との比較

 前々回でも一応カメラは動かせたんですが、これは Cinemachine ではなく、自力でベクトルを計算していました。

 ただ動きが線形で、ぎこちない感じです。Cinemachineだと慣性がついていて、プロっぽい感じがしますね。

技術的な話

 前回の記事では、 Cinemachine の(Orbital ではない) Transposer というものを使っていました。 Transposer は対象を自動的に追尾してくれるカメラです。

 実際の3Dゲームでは、自動追従だけでなく右スティックでカメラを操作できることが多いため、この操作に対応できるものを探していました。

 Orbital Transposer というのは、対象の周囲をぐるりとまわることができるカメラです。この X Axis というものを変更するとぐるりとまわってくれます。

 デフォルトでマウス操作に対応しているのですが、実際にはスティックの操作で動かしたい。ノーコードでする方法もある気がしますが、私の場合、C#から操作することにしました。

 参考にしたドキュメントは以下。

 実際のコードは↓みたいな感じになります。

using UnityEngine;
using Cinemachine;

/* ...中略... */

[SerializeField]
private CinemachineVirtualCamera virtualCamera = null;

/* ...中略... */

var orbitalTransposer = virtualCamera.GetCinemachineComponent<CinemachineOrbitalTransposer>();
orbitalTransposer.m_XAxis.Value += /* 右スティックのコントローラの値 */;

 それでは今回はこのへんで。また次回もよろしくお願いします~~~!!!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

水無川旅館 2024/03/06 01:29

Hijack新作・Cinemachineのテスト

 こんばんは。今日は Cinemachine というものを使ってカメラの操作をするテストをしていました。

 なんかリッチな動きになった気がします!

 特に3Dのゲームをつくる上で一番難しいのはカメラの操作だなぁとつくづく思います。カメラにあわせて入力の方向も切り替えなければならず……大変です。

 それでは今回は短くなってしまいますがこのへんで。また次回もよろしくお願いします!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

水無川旅館 2024/03/05 00:44

Hijack 新作・カメラを動かせるように

 こんばんは! 今日の進捗を報告します。

カメラを回転させられるように

 前回まではカメラは固定方向からでしたが、回転させられるようにしました。

 とりあえず横方向のみで、縦方向には回転できません。常に真横からです。ある意味「サイドビュー」ではありますw

Hijack、ついに 3D 化……!?

 新作は、グラフィックだけ 3D のサイドビュー、いわゆる 2.5D にするつもりでした。

 ただ紆余曲折の末、 3D になりそうな予感がします。今回はそのテストです!

アドベンチャーパートが非常にうまい落としどころを見つけられたので、サイドビューにこだわる必要がなくなった

 グラフィック3Dだけどサイドビューにしたい理由。いくつかあったんですが、主に

  • レベルデザインの観点
  • 2Dキャラを表示する観点

 のふたつがありました。

 後者は、3D空間に2Dイラストを表示し、モブキャラクターなどとする案です。
そのためにはサイドビューのほうが自然な表現になるだろう、という観点から、サイドビューにしようと考えていました。

 ところが現在、アドベンチャーパートが完全2Dになったことで、この観点でサイドビューにする必要性はなくなりました。

 レベルデザインの観点では、まだサイドビューにしたい思いはあります。ただ3Dのレベルデザインに挑戦してみるのもいいかな、という気分になってきています。

 もともと2Dのアクゲーはもちろん3Dのアクションゲームも好きですし!

 今はまだ実験段階ですが、追々報告できたらなと思います。

 それでは今回はこのへんで! また次回もよろしくお願いします~~~!!!!!!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

水無川旅館 2024/03/03 23:06

Hijack 新作・アドベンチャーパート会話シーン「宴」実験

 こんばんは。 Hijack 新作の進捗を少しですが報告します。

Unity 用ノベルゲームエンジン「宴」実験

 アドベンチャーパートで、前回までは立ち絵の表示のみでしたが、「宴」というUnity用のゲームエンジンを使い、テキストを表示できるようにしました。

 宴 → https://assetstore.unity.com/packages/tools/game-toolkits/utage4-for-unity-text-adventure-game-engine-version4-266447?locale=ja-JP

Game Engine on Unity?

 Unity 自体も、一応ゲームエンジンではあるんですが、ADVなど人気のジャンルではよりジャンルに特化したゲームエンジンもあります。

 宴というのはノベルゲームだけでなく、アクションゲームの会話シーンなどにも使え、使い勝手がよさそうだったので Hijack 新作では宴を採用することにしました。

見た目などはまだ調整の余地あり

 まだ色々と仮の状態ですがひとまず動くようになりました。キャラの高さや左右どちらに配置するのとか、あとテキストとシステムメニューが重なってるとか、まぁ色々と調整の余地はあります。

1, 2月の主な進捗はUnityの勉強と仕様の概念整理

 今年ももう3月。振り返ってみると、あっという間の2ヶ月だったなぁと思います。

 これがあと5回というのが1年なんですが、はてさて、どこまでできるものやら。

 この2ヶ月の感想戦としては、結局、Unityの勉強にだいぶ時間がかかったな、という感じです。開発自体はずっと続けていましたが……「ベストプラクティス」の模索に時間がかかった感じです。

 たとえば、最初は2D画像を表示するのにもいちいち板ポリを配置していたんですが、今はSpineが(アニメせずとも)楽だな、という感じに落ち着いています。会話シーンは宴で、とか。

 こういう構成面は最初に時間をかけたほうが後々楽だったりしますので、見た目的には同じでも、順次楽なほうに置き換えたりしています。

 もうひとつ、「アクションパート」「アドベンチャーパート」という概念の整理に時間がかかった感じです。特に「アドベンチャーパート」は、いわゆるADVではなくて、あくまで3Dマップにキャラを配置し、会話シーンとして展開するつもりでしたから。

 今は結構がっつりADV要素が盛り込まれていますが、シーンの遷移にあたって「お店に入る」というアクションを踏むことで、ADVというよりは、アクションゲームの買い物・会話シーンとして自然に溶け込む感じになったかなと思います。

Hijack 新作はアクションとADVを交互に繰り返して進む感じに

 企画段階から「アクションパート」「アドベンチャーパート」という用語は使っていたんですが、だいぶ見た目にも良い感じになってきました。

 元々は、今回の3Dマップは「アドベンチャーパート」としてつくっていたものでした。この3Dのマップに、2Dのキャラを配置するなどして会話を楽しむマップにしようと思っていたのです。

 ところが、途中で「店内」という概念が出てきて、ADV方式を採用しキャラも2Dでそちらに配置するなど、「アドベンチャーパート」の座を譲るような出来になってきています。

 3Dのほうは、もう「アクションパート」ですね。実際アクションもできますし。

 呼び方は重要ではない、と考えることもできますが、説明書に書く等することを考えると、名称は伝わりやすいほうがいい。ということで、「アクションパート」「アドベンチャーパート」のひな型が出来た感じです。

 ※過去ログを見ると、3Dマップのほうを「アドベンチャーパート」と呼んでいたんですが、「アクションパート」に変更です!

ネーミングのリファクタ

 このプロジェクトを始めたのが2ヶ月前。いやぁ、たった2ヶ月で「言葉の指す概念」が変わってしまうものなんですね(?

 こういうネーミングのリファクタは適宜行っておかないと、あっという間に混沌とした感じになります。内部実装でも「Adventure」という単語を使っていたりして。多少コストを払っても、概念に相応しい名前に変えていきたいですね。

 それでは今回はこのへんで! また次回もよろしくお願いします~~!!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索