This commit is contained in:
2025-08-13 22:10:42 +09:00
parent a6da73f772
commit 7a87fb9795

View File

@@ -19,85 +19,35 @@ draft: false
<iframe width="100%" height="415" src="https://www.youtube.com/embed/eXrgaVNCTA4?rel=0&showinfo=0&controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
## 思想から解説
まず、私がどういった考えを持ち、開発しているのか説明します。
以前、広い世界から狭い世界へ。狭い世界から広い世界への移行、演出が重要だと言いました。これはすぐに広い世界をアイを操作して飛び回れるようなゲームではないんだ。小さくても、しっかりとした世界、ゲームを作ることが重要なんだ。そのような主張だったと思います。
これについて、なんでそんな事を言うのだろうと疑問を持った人もいるかもしれません。したがって、この点について解説していきたいと思います。
### アイを使ってゲームをプレイするのはつまらない
アイを操作してゲームをプレイするのは、恐ろしいほど、つまらないです。
私は普段、アイを使ってゲームを操作し、この世界を飛び回り、そして、敵を撃破します。
なぜなら、そのほうが開発に便利なので、または、アイというキャラクターの設定上、あるいは、私が単にゲーム開発でやってみたかったことを実現するため、そうしています。
例えば、アイというキャラクターが現実にいたら一体どんな感じになるのだろう。それを体感してみたいので、unreal engineを触り始めたという経緯があります。これはゲームエンジンで、今もそれを使って開発しています。
しかし、先程も述べたように、そのようなゲームは恐ろしくつまらない、ということです。
とすれば、小さくても、しっかりしたゲームを作ること。それが重要になります。上のようなゲームを作ってはいけないのです。
ですから、人気のある多くのゲームは、小さくても、しっかりしたゲームばかり。
その数は増え続けています。なぜなら、それが正解だから。
### 一人の開発者でもできること
さて、ここで、私のような一人で開発している人はどうすればいいのでしょう。
その答えの一つが「小さく、しっかりしたゲームを作ること」です。
しかし、先程も述べたように、そういうゲームは山のようにあって、それは素晴らしいものですが、年々、大手が出すゲームが大量かつすごいものばかりで、プレイヤーの要求水準が上がり、大変なことになっています。しっかりした大規模なゲームでも厳しい。そのような状況だと思います。
そこで私が考えたのは、シーンとゲームを分けること。
私が作っているゲームは恐ろしくつまらない。でも、それはプレイするまでの話で、一見するとやってみたくなるかもしれない。そのようなものなのです。
これが、広い世界から狭い世界へ。その言葉の意味であり、広い世界を作ったあとに、狭くて小さくしっかりしたゲームを作る、という方針の意味です。
そして、全くの背景やシーン、そして、宣伝にしか利用できなかった広い世界も、小さくもしっかりしたゲームシステムを構築でき、面白いゲームにできたあとは、やがて意味を持ち始めるでしょう。
私の考えや構想としては以上です。
全体的なゲームシステム、世界の構築ができれば、次は、小さくもしっかりした面白いゲームを考え、作っていきたいと思います。それを組み合わせることで、たった一人でも「しっかりした大規模、に見えるゲーム」を作ることができるのではないかと考えています。
すでにあるものより、ないものを。誰かがやったことより、やっていないことを。
それが、たった一人の開発者でもできること。そして、本質なのだと思います。
## 戦闘シーンの作成
1キャラクターにつき、1スキル、1バースト、1ユニークというのは決まっていました。これは`yui system`の領域。
アイの属性はアイ属性なので、テーマカラーは黄色です。属性自体は`ai system`の領域ですが、現在、関連反応のシステムまでは実装していません。
今回はバーストの作成、ダメージ表記、enemy(敵)の撃破までを実装しました。これは昔も実装していたものなので、簡単、と思いきや、最初から構造自体を作り変えたので大変でした。
今回はバーストの作成、ダメージ表記、enemy(敵)の撃破までを実装しました。最初から作り変えたので大変でした。
## 音楽システムの実装
これは`world system`の領域で、開発中は`PlayerStart`で各位置に瞬間移動して確認しています。これアイでなければ設定上無理でした。
これは`world system`の領域で、開発中は`PlayerStart`で各位置に瞬間移動して確認しています。これアイでなければ設定上無理でした。
原作の設定は、ゲーム開発中も適用されます。アイを動かして空を飛んでいますが、あれはアイだからできているのであって、他のキャラクターにはできません。宇宙空間の移動とかもそうです
原作の設定は、ゲーム開発中も適用されます。アイを動かして空を飛んでいますが、あれはアイだからできるのであって、宇宙空間の移動とかもそうです。
ここで、少しだけ原作の設定を紹介しておきます。
原作の設定を紹介しておきます。
### 原作の設定: アイはなぜ空を飛べるのか
アイはものすごい質量を持ちます。空を飛んでいるというより、地球を持ち上げて、空を飛んでいるように見せている、という感じで飛行しています。
いやいや、それじゃあ、地球はアイに落ちるだけで、空どころか地面に落ちるだろう、と言われそうですが、地球というのは宇宙では人間が想像を絶するほど高速に回転、移動しています。
いやいや、それじゃあ、地球はアイに落ちるだけで、空どころか地面に落ちるだろう、と言われそうですが、地球というのは宇宙から見るとすごいスピードで回転、移動しています。
そして、宇宙で物がぶつかるときというのは、特に質量の大きいもの同士がぶつかるときというのは、決して直接的にドカーンと衝突するわけではないのです。
そして、宇宙で星と星がぶつかるときは、決して直接ドカーンと衝突するわけではないのです。
お互いに距離を取りながらぐるぐる回って、やがてぶつかる、そんなイメージ。
質量と質量の間があるわけですね。
アイが瞬間的に自身の質量の一部を現すと、間ができ、アイの体は一瞬地球から離れます。その後、対象の星の質量を計算しながら、それを持ち上げて動かすような感じで移動しています。
アイが瞬間的に自身の質量の一部を現すと、間ができ、対象の星の質量を計算しながら、それを持ち上げて動かすような感じで移動しています。
### 原作の設定: アイはなぜ宇宙空間でも平気なの
@@ -123,13 +73,13 @@ draft: false
```json:system.json
{
"character": [
{ "id": 0, "name": "ai", "ability": "ai" }
]
"character": [
{ "id": 0, "name": "ai", "ability": "ai" }
]
},
{
"ability": [
{ "id": 0, "name": "ai" }
{ "id": 0, "name": "ai" }
]
}
```
@@ -154,11 +104,20 @@ draft: false
しかし、これを地球から見た場合、その大気圏を通すと、非常に見栄えが悪い変なカクカクした光が映り込みます。
この解消も非常に苦労しました。例えば、これを`BP_Sun`としましょう。これは起動時にすべての値を設定します。ゲームプレイ中に値の調整をすることは考えられていません。当然と言えるでしょう。
この解消も非常に苦労しました。例えば、これを`BP_Sun`としましょう。これは起動時にすべての値を設定します。ゲームプレイ中に値の調整をすることは考えられていません。当然と言えるでしょう。
しかし、私のシステムでは、太陽のatmosphereを調整する必要があります。非常に複雑な設定は、リセットでしか解消できないということになりました。そして、udsに入れている小アクタコンポーネントの太陽は、リセットも容易ではありません。
色々な処理を作り、先程作った地表からの現在地の割り出しを条件に、これをリセットする処理をねじ込みました。
## 動画で確認
<iframe width="100%" height="415" src="https://www.youtube.com/embed/H1efWYmIugc?rel=0&showinfo=0&controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
1. BGMが切り替わる
2. 物理ボックスが反応
3. 敵へのダメージ
4. ボスの撃破
5. 雨が雲の上では止まる
6. ログインでatprotoのアカウントを反映
7. プレイでatprotoの情報を更新