期末制作とChatGPT、Copilot、Google Gemini、GrokなどのAIの利用について
AIの担当した部分と期末課題の成果として評価する部分が分かる様にレポートを書くこと。
こちらの記事は、AIで作成したスクリプトをプロジェクトに入れたうえでGameObjectやPrefabなどの作成やスクリプトのアタッチ、スクリプトのシリアライズフィールドへの設定などのUnityの操作は自分で行う様子。
期末課題制作期間とする。
この時間はRoll a Ballの改造の他の自作ゲームやSnap!のゲームの制作時間にしてもよい。
GP11、GP12、GP13、EXにあるUnityのテクニックを試す。
今回の内容はレポートフォルダのゲームプログラミングフォルダに
GP14.zip
として作業済みのUnityプロジェクトを置いておいた。
ゲームシステムが完成してしまった受講生は、それ以外の演出の工夫をしてみよう。
Text Mesh Pro をインポートする際に Extra Sample も追加する。※
※ 新規プロジェクトにText Mesh Proをセットアップして追加する。必要な素材をAssetからExportして課題のProjectにImportする。
※ 既存のプロジェクトにExtra Sampleを追加するには、下記の手順参照。
サンプル:
手順:
TextMesh ProのExamples and Extras をImportする。
Assetsからサンプルシーンを選んで開く
例)01 -Single Line TextMesh Pro
例)23 - Animating Vertex Attributes
TextMesh Proのサンプルには 3Dシーン用とCanvasのUI用があるので参考にする際には要注意。
3DシーンとCanvasのUIを混ぜてもうまくいかない。
3Dシーン用
CanvasUI用
CavasのUI部品の重なり順についての解説記事
シーンのTextMeshPro Text のTextをInspectorから修正する。
ゲームオブジェクト(CanvasまたはTextMeshPro Text)をHierarchyから選択して右クリックからCopy
別のシーン(期末制作用)に右クリックからPasteして張り付ける
ペーストしたTextMeshPro TextをCanvasの下に配置する※
※別のシーンからGameObjectをコピペするとTop階層にペーストされる。
ペースト先の(予定の)オブジェクトを選択してもその下層にはペーストされない。
目的の階層に直接コピペする方法:
ヒエラルキーに複数のシーンを読み込む
コピー元をCtrl+Dで複製
ペースト先のシーンのオブジェクト階層にDnDで移動
シーンを再生して動作確認する。
簡単バージョン
GP11に掲載した WaveAnim.cs をシーンOpeningの Titleにアタッチする。
Inspectorから 振幅 回転速度 位相 を調整する。
複雑なアニメーションに対応
【Unity】TextMesh Proをアニメーションさせる~デザイナー編~ https://coposuke.hateblo.jp/entry/2020/06/07/020235
その他
TextMeshProで日本語表示・マテリアル設定・文字にタグを使う https://gametukurikata.com/ui/textmeshpro
【Unity】TextMesh Pro でハイパーリンクを実装する方法
TextMeshPro のテキストに URL 文字列が存在する時,ハイパーリンク化する Stringクラスの拡張による自動化
カラーコード(RGB24bit)で文字色の変更が可能。
<#ff0000>玉<#00ff00>転<#0000ff>が<#666666>し
他にもURLへのリンクなどWebのHTMLに近い機能がある。
詳しくはTextMesh proのサンプルSceneを参照。
日本語フォントを設定してみた。
あずきフォント 日本語フリーフォント
FontをDLする
zipファイルを展開してttfファイルを取り出す
利用規約を確認する
UnityにDnDでインポートする
TTFファイルを選択して右クリック
Create → TMPro → Font Asset → SDF
でUnity用のSDFファイルを作成
TMProサンプルシーン 23 Animating Vertex Attributes
アニメーション用スクリプトを無効にして色変更のスクリプトだけそのまま使用した。
TMProサンプルシーン 17 Old Computer Terminal
背景素材としてそのまま利用した。
TMPro Textの重なり順はHierarchyのオブジェクトの並びの順番で設定※できた。
※Hierarchyでボタンより下にTextを配置してTextのエリア(透明部分含む)がボタンを覆い隠すと、ボタンを押せなくなるので注意。
例)
CountDownTimelineオブジェクト
Timelineの設定
300フレーム BGM再生開始
60 120 180フレーム カウントダウンアニメーション開始(AnimationclipはループOFF)
Walls(1)オブジェクト
AnimatorのAnimationclipの設定
270→300フレーム Y座標 0 → -1
CountDownTimelineのCountDownAnimationclipの様子
CountDown、CountDown(1)、CountDown(2)のTimelineの様子
と
Walls(1)のAnimatorのAnimationclipの様子
やってみよう 例1
Text Mesh Proのスクリプトの改造
VertexColorCycler.cs
の色の変化する時間を設定できるようにする
やってみよう 例2
ステージにダイナミックオブジェクト(物理的に動かせるオブジェクト)を散りばめる
Cylinder を追加して Add Component から Rigidbody を追加してコピーする
やってみよう 例3
生成AIでゲーム用のテクスチャを生成する。CG用のテクスチャのサイズは2のべき乗となる
64x64, 128x128, 256x256, 512x512, 1024x1024
が一般的
Grokで生成
プロンプト
Unity用の画像のテクスチャが欲しい。 サイズは512x512 タイリング用で継ぎ目をなくすこと。 模様は、草模様、イラスト調。
テクスチャ画像をDnDでUnityのAssetに追加
テクスチャをGroundなどGameObjectにDnD
GameObjectのInspectorからShaderのTilling(敷詰める数)を調整する
Geminiで生成
プロンプト
Unity用のテクスチャ画像。サイズ512x512。イラスト調。タイリング可能の継ぎ目の処理が必要。壁の素材。
壁のテクスチャは壁のPrefab(NorthWallのPrefab)に設定する
Tillingは壁の縦横の比率に合わせて調整する