ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

GitHub CopilotとMicrosoft Copilot:ゲーム開発者の新たなパートナー

ここ数日間は、3Dアクションゲームの制作にずっと没頭してます。
2月中に完成させたいと思っていましたが、少し間に合わない感じ💦

基本的には、作るべきものの大半は作り終えているので、残りは全体的な調整とデバッグくらいですが、思った以上に時間がかかっています。
ちょっと気分転換に、新しいことを始めたくなり、これまで試していなかったGitHubとの連携、そしてGitHub Copilotの導入をやってみようと思いました。

GitHubとの連携は、スタジオしまづさんのYouTubeを見ながら、しまづさんの個人サロンでの説明を受けつつ、サクッと導入。
・・・したまでは良かったのですが、連携しようとしたゲームが、制作中の3Dアクションゲームということもあり、多くのアセットを使用しているため、容量が12Gを超えており、残念ながらGitHubとの連携はできませんでした。🤣

しかし、GitHub Copilotの導入は問題なくできたので、早速色々と活用しています😊

さすがにGPT-4とOPEN AIのCODEXを搭載しているため、既に作成したコードなどから、僕がやりたいことをガンガンと先読みしてくれます。😆

例えば、制作中のゲームでPlayerを別のObjectに切り替えようとしたときなど、別のObjectをPrefab化して変数に取り込み、Playerを消す処理を書いた時点で、

Instantiate(Prefab,Player.transform.position,Quaternion.identity);

を入力候補として表示してくれました。😳

そして、GitHub Copilotを契約すると、GitHub Copilot CHATも利用できるようになります。
これは文字通りチャットで、コード以外のUnityのコンポーネントの設定方法やメソッド、プロパティの意味や使い方などを質問できます。

そのおかげで、導入してからGoogleで検索する回数が、目に見えて減りました🤣

AIの恩恵を受けるようになり、そのつながりでAI関連の記事を読んでいるうちに、Microsoft Copilotというものもあることを知り、こちらもすぐに導入しました。

嬉しいことに、Microsoft Copilotは無料です!😆

両方のCopilotを使ってみた感想ですが、
コードを書くという一点に特化するなら、GitHub Copilotの方が断然良いです。

これは、GitHub CopilotがエディタであるVisual Studio Codeに搭載される形なので、これまでに書いたコードまで確認して次にやりたいことを推測、コード補完や提案する機能を持っているため、GitHub Copilotが優れているのは当然。

ただ、Unityでゲーム制作するとなると、コンポーネントの設定など、コード以外の要素を調べてる必要もできてますが、これらを調べるのであれば、両方のCopilotの差はなくなる感じでした。

コードに限らず、漠然とした質問でも大丈夫です。
例えば、「UIをキーボードで操作できないようにしたい」などを調べ場合、すでにこの知識を持っている人は、これがスクリプトで実現できると理解していますが、そうでない人には、これを実現するためにコンポーネントの設定を変えれば良いのか、スクリプトでできる事なのか、Unity自体の設定なのか、どうすれば実現できるのかわかりません。
Google検索などでも、なかなか、ズバリとした記事を探すのは大変です。

しかしながら、このような状況では、Microsoft CopilotもGitHub Copilot CHATもしっかりと回答を提示してくれます。

ちなみに、先ほどの例題は、Event Systemのインスペクターの設定やスクリプトで実現できます。

Event Systemのインスペクターの設定の場合は、
baba-s.hatenablog.com
こちらの記事も例題として紹介もしてくれます。

スクリプトの場合は下記で実現できます。

using UnityEngine;
using UnityEngine.EventSystems;

public class EventSystemController : MonoBehaviour
{
    private void Start()
    {
        // Event Systemを探す
        EventSystem eventSystem = FindObjectOfType<EventSystem>();
        if (eventSystem != null)
        {
            // Send Navigation Eventsをオフにする
            eventSystem.sendNavigationEvents = false;
        }
        else
        {
            Debug.LogWarning("Event Systemが見つかりませんでした。");
        }
    }
}


このような優秀な機能ですが、実に安価に導入できます。

GitHub CopilotはCHATも含めて月額10ドルです。
Microsoft Copilotは基本的な範囲であれば無料で利用できるので、併用してみるのも全然ありだと思います。