Unity5を使って、ChatGPTを活用したプロジェクトに挑戦しようと思います。では、なぜUE5ではなく、Unity5を選んだのでしょうか?その理由はいくつかあります。
まず、Unity5ではC#を使って開発ができます。これにより、ChatGPTの機能を簡単に活用できると考えています。UE5もコードを用いた開発が可能ですが、ブループリントが推奨されているため、ChatGPTとの親和性が若干低いと感じています。
また、ChatGPTはテキストで指示を与えることでコードを生成してくれるため、開発に大変便利です。これにより、素早く簡単にプロジェクトの試作ができると期待しています。
さらに、簡単なテストにおいても、Unity5の方が私の低スペックなゲーミングノートPCで動作しやすいという点が魅力です。このため、Unity5を選択しました。
以上の理由から、今回はUnity5とChatGPTを組み合わせて、新しいプロジェクトに挑戦していきたいと思います。どのような成果が得られるか、楽しみにしています。
試しに、C#のコードから、オブジェクトを生成してみたいと思います。
ChatGPTに「Unity5で、地面に接地したcubeを生成するコードを書いて。」と、お願いしてみます。
すると、すぐに、以下のコードを書いてくれます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeSpawner : MonoBehaviour
{
public GameObject cubePrefab;
public Vector3 spawnPosition = new Vector3(0, 0.5f, 0);
void Start()
{
SpawnCube();
}
void SpawnCube()
{
GameObject newCube = Instantiate(cubePrefab, spawnPosition, Quaternion.identity);
newCube.transform.SetParent(transform);
}
}
そして、その後の操作方法も教えてくれます。
このコードは、
CubeSpawner
という名前のスクリプトを作成し、キューブを生成するためのプレハブ(cubePrefab
)と生成位置(spawnPosition
)を指定しています。Start()
メソッドでSpawnCube()
関数を呼び出し、地面に接地したキューブを生成しています。このスクリプトを使うには、次の手順を実行してください。
- Unityエディタで新しい3Dオブジェクト(キューブ)を作成し、プレハブに変換してください。
- 新しい空のゲームオブジェクトを作成し、先ほど作成した
CubeSpawner
スクリプトをアタッチしてください。- スクリプトのインスペクター上で、
CubePrefab
フィールドに先ほど作成したキューブのプレハブをドラッグしてアサインしてください。これで、シーンを再生すると、地面に接地したキューブが生成されます。
ChatGPT より
Unity がはじめてで、C#も何のことやらあまりわかっていない私でも、実際にこの通りにやってみたら、Cubeが生成されました。
さらに、そもそも、「地面をコードで生成できますか?」と、聞いてみたところ、
はい、地面もコードで生成できます。以下のC#コードを使って、Unity5で平面オブジェクトを生成することができます。新しいスクリプトを作成し、このコードを貼り付けてください。
using UnityEngine;
public class GroundGenerator : MonoBehaviour
{
public Vector3 groundSize = new Vector3(10, 1, 10);
public Material groundMaterial;
void Start()
{
CreateGround();
}
void CreateGround()
{
GameObject ground = GameObject.CreatePrimitive(PrimitiveType.Plane);
ground.name = "Ground";
ground.transform.localScale = new Vector3(groundSize.x / 10, groundSize.y, groundSize.z / 10);
ground.transform.position = new Vector3(0, -groundSize.y / 2, 0);
if (groundMaterial != null)
{
Renderer groundRenderer = ground.GetComponent<Renderer>();
groundRenderer.material = groundMaterial;
}
}
}
と、同様にコードを書いてくれて、さらにていねいに、以下のことも教えてくれました。
このコードは、
GroundGenerator
という名前のスクリプトを作成し、地面のサイズ(groundSize
)とマテリアル(groundMaterial
)を指定しています。Start()
メソッドでCreateGround()
関数を呼び出し、平面オブジェクトを生成しています。このスクリプトを使うには、次の手順を実行してください。
- 新しい空のゲームオブジェクトを作成し、先ほど作成した
GroundGenerator
スクリプトをアタッチしてください。- インスペクターで、地面のサイズとマテリアルを必要に応じて調整してください。
これで、シーンを再生すると、地面が生成されます。
これも、きちんと、生成されました。
ChatGPTさんは、コードの生成がとても得意なようです。
こんな簡単な事かもしれませんが、自分で、一から調べたらかなりの時間を要します。それを、30秒ほどで、答えを導き出してくれるなんて。。。
間違いもないし、はやいし、はかどります。
たしかに、Unity 5 のドキュメントを読み込めば、自力で、できることだし、この程度のことなら、そのまま、エディター上で置いた方が簡単かもしれません。
しかし、コードで生成できるというのは、なにかと応用が利きます。
私も、以前から、Unity を利用させてもらい、ある程度は、分かったつもりでいましたが、まだまだ、分からないことだらけだし、C# にいたっては、自力で学んでみたものの挫折していました。
ChatGPTの力を借りれば、もう少しだけ、理解を深めやすくなるかもしれません。
今後も、期待を込めてChatGPTとUnity の親和性を検証していきたいと、思います。
さいごまでお読みいただき、ありがとうございました。
コメント