UnityとGPT04oでアプリを作ってみる

コツ

  • あさっての方向に行きそうなときはストップボタンを押して、追加情報を入力してあげる
  • 色々指示してもダメなときはスッパリあきらめてもう一度そのスレッドの最初からやり直す(なのでGitHubなどのバージョン管理は必須になります)
  • できるだけ小さい単位に分けて依頼する
  • 不純物が溜まっていくので1単位のスクリプトが動くようになったら新たにスレッドを立てて始める
  • 状況に応じてスクショで状況を共有する
  • 本当に何度も根気よくやる必要がある
  • コミュニケーションが大事です
  • 何度も同じところでループすることがあるのでイライラしてきたときは気分転換する必要があります
  • ファイルとして必要そうな情報を渡し、スクリプトを書いて貰うことができます
  • 大幅に変わった場合(半分くらいに短くなったなど)は、現状のスクリプトを与えて問題ないか確認する。
  • GPTさんに見えていない所は多いので、自身でも内容を見て考える。思いついたことは提案してみる。
  • 時々すっぽ抜けてスクリプトがごっそり抜け落ちる時があるので、再度現状を共有する。
  • 面倒だが、毎回現状のコードを食べさせるのもアリかも。たまに忘れて全然理解できないコードを吐くときがあるので。
  • 複雑になってくると何日か辛抱強くやり取りする必要がある。報われなくてもお願いスキルや知見はたまると思うので、諦めないようにしたい。
  • 完璧なコードを目指すのはまだ少し無理かも。素人判断だが冗長(じょうちょう)なコードになってる感じがする。

XP-Pen をIllustratorで使う際にブラシの筆圧が機能しなかった(解決)

ネットを見てもその前レベルの情報しか見つからなくて困ったので共有します。

  • 環境はWindows11、Illustrator2024です。
  • 再起動や再インストールやカリグラフィの設定やってもダメって人向けです。

イラストレーターの環境設定のデバイスのWacomの有効化にチェックを入れてください。Wacomでは無いのですが、気にしないようにしましょう・・・

Unity URP 2D SpriteShapeの使い方メモ

AngleRangeの使い方

設定しただけではダメTangentMode設定をLinerかBrokenにする必要がある

左上の青い円弧の部分のあたりで設定
Pointを選択すると出てくるメニューのTangentModeから設定

AngleRange>Spriteの複数設定

同じRangeの中に複数設定した際の変更方法

Spritesに追加する
Pointを選んでSprite Variantから割り当てる

使っている素材はこんな感じ

参考サイト:

Unityマニュアルhttps://docs.unity3d.com/ja/Packages/com.unity.2d.spriteshape@10.0/manual/SSController.html

Photoshopで輪郭を元にNormalを作る効果

フォトショップの画面
Unity上でLight2Dを当ててみた結果

Unity URP 2DでNormalを使いたいと思い、色々調べてみました。

最近の動向として、フォトショップでは3D機能が使えなくなるようなので、代替えまではいかないけど、簡単にnormalを作る方法を考えてみた。

今のところ輪郭だけに適応されます。内部は、手書きかな・・・
太さに応じて、効果を調整したりする必要がありそう。

手順

  1. カラーモードをCMYKにする
  2. 周囲が透明なオブジェクトを用意、3レイヤー分に複製する
  3. 上から、C、M、Yとする
  4. 下記ダウンロードからのスタイルを、それぞれCMYに適応する
  5. PNGで書き出す

Unity Visual Script :GPTさん一問一答

Cooldownノードで実行間隔を制限することは処理負荷の分散に繋がりますか?

はい、それは可能です。”Cooldown”ノードはその名前からもわかるように、特定のアクションが一定の時間(クールダウン期間)経過するまで再度実行されないようにする機能を持っています。

たとえば、毎フレーム処理を行うのではなく、一定の間隔(例えば1秒ごと)で処理を行うように設定すれば、その処理がゲームのパフォーマンスに与える影響を軽減することができます。これは特に、重い計算や複雑な物理シミュレーションなどのコストの高い処理に対して有効です。

ただし、”Cooldown”ノードを使用することでパフォーマンスが向上するかどうかは、その処理の性質とゲームの要件によります。例えば、プレイヤーの入力を処理するような場合、リアルタイムの応答性が重要になるため、クールダウンを設けるとゲームプレイの体験が悪化する可能性があります。

そのため、パフォーマンスの最適化を図る際には、ゲームの要件とプレイヤーの体験を考慮しながら、必要な処理とその頻度を適切にバランスさせることが重要です。また、プロファイラを使ってパフォーマンスを定期的に測定し、最適化の効果を確認することも重要なステップです。

Durationに秒数、Readyに後処理を入れれば動きます。

URP 2Dでハマったことメモ

Normalが効かない

light2DのTargetSortingLayerが原因だった。defaultに戻したら効くようになった。

ただ、原因を取り除いて逆に不具合が出そう

オブジェクトやテクスチャの設定は他のサイトで紹介している方法で良いが、マップパーツに使うことを考えて、Shaderグラフとマテリアルでもできないか確認する(まだ未確認)。

そのほかの設定項目見直し

  • Light2DのNormal Mapsのチェックは入れる
  • Light2Dのボリュメトリックは強すぎるとNormalが効いていても分からなくなるから薄めにかけた方が良さそう

Visual Scriptingのノードサンプル

TMPのスコア表示内容を変更する

接触判定

  • Tagを用意する
  • Tagを対象オブジェクトに割り当てる
  • StringはTagと同じ文字列にする

2D横スクロールの最低限のプレイヤーの移動

💡Light2Dの要素を操作したい

Project SettingのVisual ScriptingのType OptionにLight 2Dを追加する

これを追加して
これを押すと追加される
これが追加される

使える様になるノードの一覧(グレーアウトされているものは除外)

# Light 2D Literal

# Expose Light 2D

# Get Blend Style Index

# Get Color

# Get Enabled

# Get Falloff Intensity

# Get Intensity

# Get Light Cookie Sprite

# Get Light Order

# Get Light Type

# Get Normal Map Distance

# Get Normal Map Quality

# Get Overlap Operation

# Get Point Light Inner Angle

# Get Point Light Inner Radius

# Get Point Light Outer Angle

# Get Point Light Outer Radius

# Get Render Volumetric Shadows

# Get Shadow Intensity

# Get Shadow Volume Intensity

# Get Shadows Enabled

# Get Shape Light Falloff Size

# Get Shape Light Parametric Angle Offset

# Get Shape Light Parametric Radius

# Get Shape Light Parametric Sides

# Get Shape Path

# Get Volume Intensity

# Get Volume Intensity Enabled

# Get Volumetric Shadows Enabled

# Is Active And Enabled

# On After Deserialize ()

# On Before Serialize (

# Set Blend Style Index

# Set Color

# Set Enabled

# Set Falloff Intensity

# Set Intensity

# Set Light Cookie Sprite

# Set Light Order

# Set Light Type

# Set Overlap Operation

# Set Point Light Inner Angle

# Set Point Light Inner Radius

# Set Point Light Outer Angle

# Set Point Light Outer Radius

# Set Shadow Intensity

# Set Shadow Volume Intensity

# Set Shadows Enabled

# Set Shape Light Falloff Size

# Set Shape Path (Path)

# Set Volume Intensity Enabled

# Set Volumetric Shadows Enabled

今回Target Sorting Layersを操作したかったのだけど、ぱっとみ見当たらない

GPT4さんに聞いてみたけれど、昔はあったが現在は無くなっているという回答だった。ネット上を検索してみたが無さそうな回答しか見つけることができなかった。(2023/6/8現在)

そのうち追加されると良いのだけれど。

DestroyIt – Destruction Systemの使い方

こちらのアセットになります。

https://assetstore.unity.com/packages/tools/physics/destroyit-destruction-system-18811

Blenderでのオブジェクトの作り方

破壊用のポリゴン制作

こちらの記事を参考にしました

http://funstone.blog.fc2.com/

ベースオブジェクトと破壊用オブジェクトを一つのオブジェクト内に用意します

Unity側での設定

破壊された際に置き換わるPrefabを用意します

プレハブ「Column Marble DEST」を参考に構造を用意します

Fbx自体はUnpackしなくても大丈夫です

  • プレハブのルートには「HitEffects」スクリプトをつけます
  • Convexにチェックを入れます
  • デフォルト表示用のオブジェクトは非表示にします

デフォルト時のオブジェクトを用意します

コライダーの設定

  • デフォルト用に作成したメッシュを「Mesh」に入れます

オブジェクトルートの設定

  • MeshFiterの「Mesh」にデフォルト用メッシュを設定します
  • DestroyedPrefabに上記で作ったPrefabを入れます

自分が作った時の設定値メモ

ブレンダー:Cell Fracture

Cellの詳細設定はこちらのサイトを参考にしました
https://bluebirdofoz.hatenablog.com/

複数のマテリアルプロパティを同時に変更する手順
https://mizuncoonote.blogspot.com/

ブレンダー:位置やサイズは適用しておく

ブレンダー:FBX書き出し

毎回初期値に戻るのでプリセットに登録しておくと便利

2D環境でVFX Graphを使いたい(メモ)

2D環境で作り始め、途中からVFXGraphをインポートしたが動かない。

URPをインポートして、2Dレンダラー環境にしたら、ギズモは表示されるがパーティクル画像が出ない。

2Dライトは使わないことにして、URP環境に戻したら、無事表示された。