昔あこがれだったプログラマー。今からでもUnityを勉強してみようと思い立ち、チャレンジ開始! Unity勉強メモや、悪戦苦闘な日々の記録です。
自作ゲームを公開しています。 まだパソコンでしか遊べないので、現在、スマホ対応版を頑張ってます。 https://unityroom.com/users/r9bkxnqgc7zmpwjhfea3
経路探索アルゴリズムを噛み砕いて理解する:A*(A-star)
A*(A-star) 代表的な迷路探索アルゴリズムには、 ・BFS ・Dijkstra’s Algorithm ・A(A-star) があります。 BFSは最小歩数を探すアルゴリズムでした。 Dijkstra’s Algorithmはそこに通路コストの概念を追加し、 ・ダークゾーンを避ける ・罠を避ける といった判断が可能になりました。 ただし、ダイクストラも本質的には総当たり探索です。 そのため、 ・ゴールとは真逆の方向 についても探索してしまいます。 そこで登場するのが、 A(A-star) です。 A*は、 「スタート地点からのコスト」 に加えて、 「ゴールまでどれくらい近いか」 という…
経路探索アルゴリズムを噛み砕いて理解する:Dijkstra’s Algorithm (ダイクストラ)
Dijkstra’s (ダイクストラ) アルゴリズム 代表的な迷路探索アルゴリズムには、 ・BFS ・Dijkstra's Algorithm ・A*(A-star) があります。 BFSについては前回噛み砕いた通り、 ・ゴールへの近さ ・危険地帯 ・通路コスト といった要素を一切考慮しない総当たり探索です。 ただし、結果として得られる経路は「最小歩数」で到達できるルートになります。 BFSではできない事 例えば、 ・近道でもダークゾーンは避けたい ・多少遠回りでも安全な道を選びたい ・発見済みの罠を避けたい といった判断をさせたい場合。 BFSではそれができません。 そこで登場するのが、 D…
経路探索アルゴリズムを噛み砕いて理解する:BFS(幅優先探索)
ウィザードリィライクなダンジョンRPG。 3Dダンジョンを、一マスずつ歩いて探索していくタイプのRPGでは、 移動そのものがゲームの根幹になる。 ただ、探索が深部に及んでくると、 入口付近との往復は、だんだん「探索」ではなく単なる移動作業になってくる。 だからこそ、 ・エレベーターなどによる垂直移動短縮 ・自動移動による水平移動の簡略化 は、快適性に直結するかなり重要な要素になる。 という訳で、 AbyssBounderでも、自動移動機能はかなり初期から実装したいと思っていた。 ただ、自動移動には大きく3つの段階がある。 ① 経路探索に必要な情報を整理する ② 情報から経路を探す ③ 実際に移…
ダンジョンRPGでのミニマップ表示。 昨今のダンジョンRPGでは、ほぼ必須と言って良いこの機能。 作り方については色々な方法があるけれど、僕の「AbyssBounder」では、Imageを表示ドットに見立てて大量に並べ、各表示ドットを個別に表示・非表示・色変更する事でミニマップを表現していた。 AbyssBounderのミニマップは、プレイヤー周辺だけを表示する15×15の小規模なもの。 この程度なら必要なImage数も知れているし、二次元配列(x,y)で管理できるので、実装も直感的で分かりやすい。 なので、当初は「ミニマップ程度ならこの方式で十分だろう」と思っていた。 ただ、その拡大版である…
Abyss Bounder制作ログ:ChatGPTでモンスターを描く:ブライトゲイザー
自作のダンジョンRPG「Abyss Bounder」 開発は着々と進んでいますが、そろそろモンスター画像が大量に必要になってきました。 デザイナーさんに伝手があれば良いのですが、残念ながら身近に知己がいないので、ひとまず生成AIに頼ることにしています。 AI画像生成とリスクの話 AI生成は基本的に学習データに依存します。 つまり、既に世に公開されている作品に“似たもの”になる可能性はどうしてもあります。 さらにモンスターというジャンル自体、 例えばゴブリンなら「それっぽさ」を出すほど似てしまう、という難しさがあります。 実際、ファンタジー界で有名な“目玉+触手のあのモンスター”なんかは、名前す…
Unity+JSONセーブのセキュリティ強化(バイナリ化+AES暗号化)
Unity+JSONのセーブ/ロードについては、前回の記事で「暗号化を行わずに保存する方法」をまとめました。 ただ、この状態だと 保存場所さえ分かれば誰でも簡単に内容を読めてしまい、さらに書き換えも可能 です。 ゲームのセーブデータとしては、正直ちょっとお粗末と言わざるを得ません。 そこで今回は、セキュリティレベルをもう一段階上げるために ・バイナリデータ化 ・暗号化(AES) を組み合わせた方法についてまとめてみようと思います。 まずはバイナリデータ化 バイナリ化の方法はいくつかありますが、オーソドックスなのは UTF-8バイト配列に変換する方法でしょう。 UTF-8とは、ASCIIコードよ…
ScriptableObjectによるイベントバス再び・・・ 2026年2月しまづ祭
2月のしまづ祭も無事終了。 youtube.com ……と言いたいところですが、AbyssBounderの進捗は「無事お披露目」とはいきませんでした。 先月に引き続き、バグだらけ。😅 パーティを2人から3人に増やしたことによるメニュー連携バグ。 増員後に一通りチェックしていたつもりだったけれど、やはり甘かった。 さらに宝箱オープン連打バグ。 一応連打防止の仕組みは入れていたのに、それをあっさり突破されるという……。😅 速攻で修正したけれど、やはり他の人に実際に遊んでもらえる機会というのは、本当にありがたい。 ■ WebGLとセーブ問題 実は、今回は直前でセーブ機能も盛り込んでいました。 しかし…
RPGを作る以上、セーブ・ロードは避けて通れない課題。 色々と調べてみると、やはり「JSON」というワードが頻繁に登場します。 これまでJSONにはあまり触れてこなかったので、この機会にしっかり学んでおこうと思います。 そもそもJSONって? JSONとは JavaScript Object Notation の略称です。 「キー + 値」という極めてシンプルなデータ構造を持ち、軽量で扱いやすいフォーマットとして広く利用されています。 名前の通り、もともとはJavaScript向けに設計された形式ですが、 その扱いやすさから現在では多くの言語で標準的にサポートされており、もちろんUnityでも…
Interfaceについてと、MonoBehaviour型変数の落とし穴について
ダンジョンRPG 「Abyss Bounder」 は、2026年中のリリースを目指して鋭意開発中です。 (まだ一月だけど、、、もう無理っぽいと思い始めてたり・・・🤣) ダンジョンRPGというジャンルの性質上、どうしても必要な class の数が膨大 になってきます。 そこで、少しでも class 数を抑えるために、いわゆる Interface を積極的に活用しています。 Interfaceとは何か C# における Interface とは、 ・Interface で定義した 変数や関数が必ず存在することを保証 し ・class 間の依存関係をゆるくし、連携をしやすくする ための、非常に便利な仕…
正直、ちょっと前まで、僕は codex にはかなり否定的でした。 プログラミングテクニックもろくにないくせに、「自分で書いてこそのプログラミング」などと言っていたのです。 それが、腕の骨折やら色々なこともあり、素材作成で AI を活用するために ChatGPT を使ってみようと有償サービスに登録し、 せっかく有償にしたのだから、噂の codex とやらも少し触ってみよう。という完全に興味本位で導入してみたところ、あまりの便利さにズッポリとハマってしまいました。 とはいえ、コードを全面的に書いてもらうような使い方は、後で述べる理由もあり、まだまだ怖くてできません。 今のところは、もっぱら ・デバ…
Unity:RenderSettings.fogDensity が即時反映されない理由と回避策
11月下旬に負った左橈骨遠位端骨折ですが、経過は順調なようで、先日ようやくギプスが外れました。 とはいえ、左手はまだ指をグーにできず、手首もほとんど動かせません。無理に動かそうとするとかなり痛むため、しばらくはリハビリをしっかり続けていく必要がありそうです。 それはさておき、 ウィザードリィライク・ダンジョンRPG 「Abyss Bounder」 の開発は、日々コツコツと進めています。 システム的にまだ未実装の要素も多く、道のりは決して短くありませんが、焦らず一歩ずつ積み上げていくつもりです。 今回は、ダンジョンの雰囲気作りと照明表現についてのお話です。 Unityで照明効果を表現する方法はい…
明けましておめでとうございます。 去年11月21日に「左橈骨遠位端骨折」したせいで、12月はゲーム開発も今一つ。 作業していると、左手が疼いてくるので、長い時間が必要な作業はどうしても気分が乗らない。 それでも少しずつではあるけれど、毎日コツコツとゲーム開発を続け、多少は形が見えてきたように感じます。 2026年中にはなんとかSteamに公開できるよう、引き続き頑張っていこうと思います。 とはいえ、まずは骨折をどうにかしないとね。。。😅 2026年中リリース予定:ダンジョンRPG「Abyss Bounder」 今の「ざっくり残課題」 <<ダンジョン内関係>> Ⅰ. 宝箱システム ・宝箱の罠づく…
ScriptableObject を活用したイベントバス導入
宝箱の仕組み作りを始めた矢先、仕事中の自分の不注意で左手を骨折してしまった。 「左橈骨遠位端骨折」なんて聞いたこともない言葉だったけれど、どうやら割と一般的な骨折らしい。 全治2ヶ月とのことで、最初の数日はものすごく腫れるわ、ズキズキ痛むわで大変。 それでも一週間ほど経つと、ようやく痛みも少しは我慢できる程度には落ち着いてきた。 利き腕じゃなかったのがまだ不幸中の幸いで、多少不自由ながらも作業はできる。 効率は恐ろしく落ちてしまったけれど、片手でちょこちょことゲーム作成を続けています。 いざ不自由になると、普段「当たり前」だと思っていることが、いかにありがたいのかを痛感する。 痛い思いをしたの…
Unity Localization: LocalizedStringの使い方と実装例【2025年版】
こないだ残りタスクを列挙したばかりなのに、またしても新しいタスクが見つかってしまった😅 僕の目標のひとつに「アメリカでゲームを公開する!」というのがあって、 満足に一本も完成させていない今の状況では、かなり無謀な話なんだけど…… それでも、開発中から英語で宣伝していきたい欲がふつふつと湧いてきた。 となると、ゲーム画面が日本語だけというのは何かと不都合が出てくる。 そこで、思い切って Localization(多言語化)を導入することにした。 Unity公式のLocalizationパッケージ導入については marumaro7.hatenablog.com marumaroさんがとても丁寧に解…
すっかり間が空いてしまった。。。 異動で今までとはまったく違う事業に。 そこから、新しい勤務地で必要な資格を取るために、ひたすら勉強の日々。 勉強・勉強・勉強。 (たまにはUnityも触ってたけどね😅) で、ようやくこの季節になって、国家資格の申し込み〜検定試験までのスパンが一段落したので、 久しぶりに――ウィザードリィライクのダンジョンRPG開発を再開しました! 実は、資格勉強に入る前から「アイテム・魔法システム」は作り直すつもりでいたんだけど、半年以上も間が空くと、もう自分のコードなんてすっかり記憶の彼方🤪 というわけで、まずは昔のメモやこのブログ、資料を読み返しながら、今のコードを一から…
ウィザードリィライクのダンジョンゲームを作る!(9):戦闘の流れをつくる。
今回から戦闘、BattleSystemを作っていきます。 基本的な形は、しまづさんの、 youtube.com がベースになっています。 大きな違いは、ソロ戦闘ではなくパーティ戦なので、Player側もEnemy側も複数いるため、かなり処理が複雑になっている事と、各Manager・ControllerとUniRXを使って連携しているところでしょうか。 いわゆる、Model-View-Presenterパターンに似た構造を取っています。(厳密にはちょっと違うけれど・・・) また、しまづさんのyoutubeは、作成時期のせいだと思いますが、Stateパターンの組み方をenumをSwitch分岐して…
ウィザードリィライクのダンジョンゲームを作る!(8):キャラクターの設計をつくる。
今回から戦闘、BattleSystemの本体を作っていきます。 基本的な形は、しまづさんの、 youtube.com がベースになっています。 あたりまえですが、しまづさんのYouTubeは基礎の解説なので、ソロ戦闘です。 自分としては、いずれはウィザードリィみたいに、自由にキャラクターを入れ替えて、 好きなパーティ構成でダンジョンを探索するゲームを目指したいので、 今回作るゲームも、プレイヤー側二人、敵は複数、というパーティ戦で頑張りたいと考えています。 他にも、パーティ戦なので、コマンドを選択したら即実行ではなく、全キャラクターの行動選択→キャラクターの速度順に実行 という形にしていきます…
ウィザードリィライクのダンジョンゲームを作る!(7):カスタマイズ可能なコマンドメニューを作る。
前回までで移動は一段落したので、いよいよ戦闘ができるようにしていきます。 ウィザードリィライクという事で、ターン制のコマンド型の戦闘になるのですが、 そのためには、当然ですが、コマンドを選択するためのコマンドメニューが必要です。 基本形は、しまづさんのYouTube youtube.com の#15で説明されている方法になりますが、 こちらを応用して、汎用性を高めていこうと思います。 尚、 上記のしまづさんのYouTubeシリーズは、一部チャンネルメンバー限定になっています。 『ウィザードリィライクのダンジョンゲームを作る! 』 を書くに当たって、チャンネルメンバー限定部分の内容まで踏み込んで…
ウィザードリィライクのダンジョンゲームを作る!(6):壁判定と扉を開ける仕組みを作る。
今回こそは壁判定と、扉を開けるところまで進みます。🤣 というか、実はほぼ基礎的な仕組みはできていて、要は、特定の座標がなんなのか調べる仕組みを描画に使うのか、移動判定に使うのか。という違いなだけです。 移動する方向・移動先の座標が必要になるのは、前々回くらいの通りです。 なので流れとしては、PlayerController-classで、移動方向や移動先を計算しているWalk関数と、移動に関する描画と消去・実際の移動を行っているWalking関数との間に、壁チェックの関数を追加するイメージになります。 public void Walk(float y) { if(y > 0.4f) { tar…
ウィザードリィライクのダンジョンゲームを作る!(5):ステートパターン導入
前回で、ダンジョンの描画範囲の仕組みまで作成できたけれど、まだ壁や扉お構いなしにどんどん貫通して歩けてしまう🤣 ので、そろそろこれを解決しておこうと思いましたが、 まずはPlayerController-classでしか使っていなかったInputSystemを、今後のためにManagerを作って独立させるのと、 ついでに、習ったばかりのStateパターンを、PlayerController-classに組み込んでおこうと思います。 今後、戦闘やらなんやらで、InputSystemはあちこちのclassで使うようになりますし、PlayerController-classとDungeonManag…
ウィザードリィライクのダンジョンゲームを作る!(4):Playerの移動に合わせてダンジョンの描画範囲を移動させる。
前回で、ダンジョンマップの設計図classのDungeonMap-classの改造と、DungeonManager-classへのObjectPoolの追加が完了したので、いよいよPlayerの移動に合わせて、ダンジョンの描画範囲を移動させる様にしていこうと思います。 描画範囲を移動させるには、Playerの向いている方向や移動方向を把握する必要があるため、PlayerController-classに管理用の変数を追加します。 int player_Direction;//プレイヤーの向き 0:北 1:東 2:南 3:西 Vector3Int targetPosition; 方向管理は最初e…
ウィザードリィライクのダンジョンゲームを作る!(3):複数のObjectPoolをまとめて管理しやすくする。
ウィザードリィライクなゲーム作成。 今回は複数のObjectPoolをまとめて管理しやすくする方法を紹介します。
前回でダンジョンの基本の描画はできたので、今回は更に描画範囲を広げて、よりダンジョンらしくしていこう。 描画範囲を広げるにしても、要は、基本の描画をfor文で回していけば良い。 using UnityEngine; public class DungeonBuilder : MonoBehaviour { public DungeonMap map; [SerializeField]GameObject wall; [SerializeField]int drawingSize;//初期位置の東西南北をどれくらい描画するか void Start() { map = new DungeonMap…
スタジオしまづさんのハイクラスを受講して、ダンジョンの自動生成のやり方を学んだことで、 unityを勉強しようと思いたった元々の目標、ウィザードリィの様なゲームを作ってみたい。という思いが強くなってしまった。 一応、unityを始めて一番最初にダンジョンゲームは作って見たのだけど。。。 https://unityroom.com/games/dungeon20230726 c#を全く知らない状態で、見様見真似で作って見たけれど 狭いダンジョンなのに処理が重い。 コードは無駄が多く、同じ処理を何度何度も書いている始末。 おまけに、プレイヤーがちょっと想定外の操作をすると、簡単にすぐバクる。と散々…
昨日の実験をしただけでずいぶんUniRXへの理解が進んだ気がする。 ・・・気がするだけだけど😅 今までは、変数を通知してくれるのがUniRXだと、漠然と思っていたけれど、 それはむしろ副産物で、本質はイベントを作ることができ、任意のクラスでそれを購読して イベント駆動型のプログラミングを可能にしてくれるという方がいいみたい。 今日は、昨日の@toRisouPさんの記事の qiita.com を実験してみた。 昨日は文字列を通知するSubjectだったけれど、今日は特に値を持たない、イベントとして通知だけを行うUnit型の実験 まずは通知側 using UnityEngine; using R3…
「UniRX/UniTask完全理解」(ISBN-10:4048930753) ちょっと前に買ったまでは良かったけれど、いかんせん素人には難しくて理解しきれず、完全にほったらかし状態😅 今回、R3の実験をしていて興味が湧いたので、今更ではあるけれどUniRXをきちんと勉強してみようと思う。 今の所の理解は、UniRX(R3)でできるのは、変数の変化を通知できるという程度。 変数をReactiveProperty化することで、値が変わった事を購読側で検知できる様にできる。 ただ、これは、UniRXの全てなわけではないらしい。 というわけであっちこっちのサイトや動画にあったものを実験してみようと思…
UniRXを現代に合わせてより洗練した形に再定義・再実装したR3。 ただ、素人向けの情報がまだまだ少なく、ちょっとした事をするのも苦労する有様です。 配列変数の変化を購読したかったのですが、ちょっと、いやだいぶん苦戦したので、 備忘録として残しておきます。 UniRXでは、配列変数もReactiveCollectionでObservableでき、Observer側(購読する側)は ObserveReplace().Subscribeで通知を受け取る事ができました。 ところが、R3環境では、ReactiveCollectionがなくなっているので、他の方法を使う必要があります。 色々と実験したの…
とんとご無沙汰になってしまった。😅 といって、何にもしてなかったわけではなく、ただひたすら足掻いてました。 というのも、Godotで3Dゲームを作ろうとして、Kay Lousbergさんの素晴らしい素材を使ってみたまでは良かったものの kaylousberg.itch.io 用意されていたアニメーションのアクションに満足しきれず、いくつか動きを変えたいものが・・・ 主人公キャラクターにしゃがんでアクションを行うアニメーションが欲しくなったのと、 敵キャラがやられた際に、ば〜っと横に散らばるのではなく、その場で崩れて欲しくなった。 最初は、Kay Lousbergさんの素材をBlenderに取り…
ちょっと前に勉強のために作った3Dアクションゲーム。 unityroom.com 昨日に引き続き、こいつの大改造です。 今日は、納品いただいた音源の中から、ダメージを受けた時と音、ジェムを拾った時の音、メニュー選択の移動音と、そして、魔法陣発動中の音を実装してみようと思います。 ダメージを受けた時と音、ジェムを拾った時の音、メニュー選択の移動音は、特に再生するタイミングが変わるわけではないので、ScriptableObjectにそのままセットするだけで変更完了。 魔法陣は、今までは発動時のみの音で、発動中は特に音を鳴らしていませんでした。 今回納品いただいたのは、魔法陣発動中の音なので、コード…
今日はUnity。というか、しばらく、Unity。 ちょっと前に勉強のために作った3Dアクションゲーム。 unityroom.com 音については、あちこちのフリーサイトから集めてきていましたが、この度、この拙作に音をプロデュースしてくださると、とある方々からお声がけ頂きました🤩 新しいシチュエーションの音パターンも提供いただけるので、今日から順次実装していきます! まずは足音。 いくつかのyoutubeで足音の実装方法を学んではいたけれど、納得いく音素材が見つけられなかったので、このゲームについては、そのまま足音無しにしていました。 でも、今回提供いただく予定の音源の中に、草原・砂漠・ダンジ…
このページではGodot4.2.1を使用して実験しています😃 最近、ずっとGodotのParticle•Systemの実験しかしてません。 そろそろ他の事もしたくなってきたので、とりあえず実験は今日で一区切りにしようと思います。 最後の実験というわけではないですが、今日はTrailの実験です。 まずは、Draw PassesのPass 1に新規Ribboon Trail Meshを選択します。 Materialに新規Standerd Material3Dを選択します。 ここまでは今までと同じです。 次に、できたStanderd Material3DのTransform→Use Particle…
このページではGodot4.2.1を使用して実験しています😃 GodotのParticle•Systemの実験も、結構進んできました。 昨日までの実験でも、それなりにエフェクトが作れる様になってきた気がしますが、今日のは更に使える効果だと思います。 粒子にアニメ効果を持たせる機能の実験です。 今日もまた、マニュアルの記載だけではどうしても上手くいかなくて、youtubeを漁っていて、マニュアルにない設定をしているのに気づき、試してみたら、まさにこれ!というものでした😂 www.youtube.com 15:00ごろからアニメの説明があります。 こういうの公式ドキュメントに書いといてよ〜〜😭 早…
このページではGodot4.2.1を使用して実験しています😃 GodotのParticle•Systemの実験の続き。 今日はまずScale これはパーティクル、つまり粒子の大きさの最小値と最大値の設定ですが、 さらに、Scale Curveを設定すると、粒子が誕生してから寿命を迎えるまでの大きさの変化を設定できます。 他の設定 Linear acceleration→Accel Min:3、Accel Max:3 Radial acceleration→Accel Min:2、Accel Max:2 Tangential Accel→Accel Min:2、Accel Max:2 Dampi…
このページではGodot4.2.1を使用して実験しています😃 GodotのParticle•Systemの実験の続き。 ParticalProcessMaterialのAccelerationsのLinear accelerationとRadial acceleration Radial accelerationは各パーティクルに、GPUParticles3Dノードの座標に対する方向の加速度になります。 設定する値がマイナスの場合、ノードの座標の方向への加速度。 プラスの場合は、ノードの座標の方向へ反対方向への加速度。 Spawn→position→emission_shape:Sphere …
このページではGodot4.2.1を使用して実験しています😃 ColorChangePanicが一段落したので、次なる作品は3Dアクションにしようと思っています。 基本的な構成はなんとなく出来てきたけれど、それには、どうしてもエフェクトが必要。 GodotにもParticle•Systemはあるけれど、残念ながらまだ日本語のサイトが少ない様子。 EffekseerForGodot4という日本語情報も豊富なアドオンもあったのだけど、なぜか僕の環境では エラーになってしまい、エフェクトを読み込めなかった。😭 そちらは、作者様にサポートをお願いしているが、とりあえず、公式のParticle•Syst…
ColorChangePanicのGodotへの移植。β版完成。
最近ずっと、通勤時と昼休みは英語の勉強。 帰ったらGodotへのゲーム移植。 という感じで何気に忙しく、Godotの移植も遅々として思った通りには進まずと ちょっと悶々としていましたが、ようやく、Godotへの移植が形になりました。 とりあえずは、まだβ版なので、コミュニティーの人達にデバッグをお願いしている段階ですが、 Unity版よりだいぶん改良を加えています。 敵の色が変わる前のリアクションとか、だいぶん変更。 アイテムについてもUnity版では、出現時にアイテムの種類が固定されていましたが、Godotでは好きなアイテムを取得できるように変更しています。 (とはいえ、このゲーム、多分アイ…
以前、UnityのInputFieldに相当するノードが見つけらなくて、Labelノードで代用しようとしていたけれど、 Game Engineなんだから、プレイヤーにテキスト入力してもらうための仕組みが無い訳ないだろ! と、copilot先生に色々な言葉で調べてもらい、、、、やっぱり有りました🤣 その名はLineEditノード。 docs.godotengine.org ざっくり調べた限りでは、入力文字を制限するプロパティを見つけることはできませんでした。 textが変化した際のシグナルがあるので、それを使って文字を処理するようなイメージなんだろうか・・・?🧐 文字列操作もUnityとは勝手が…
GameOver画面の作成中:Tweenの.set_delay
GameOver画面を作成中です。 GameOver画面でスコアランキングの表示と、ランクインした際の名前入力。そしてリトライの実装。と結構盛りだくさんなシーン とりあえず、Game Overを表示するアニメから作り始めました。 イメージとしては、Game Overが一文字ずつ上から落ちてきて、ちょっとバウンドするような感じにしたいと思ってます。 一文字ずつは、一文字単位でlabelを作って、それを移動してやればなんとかなりそうですが、 今まで調べた方法だけでは、一文字目移動が完了してから次の文字と、ちょっとイメージと違ってます。 できれば、少しズレて移動してほしい。 で、色々と調べていて、公…
ブログ内容を整理するため、 スクリプトなど、きちんと纏まった記事については、今後、Zennで公開する事にしました。 zenn.dev はてなブログでは、纏まる前、生理前のメモや備忘録といった内容にしていくつもりです。 ここ最近は、ずっとGodot・・・というわけではなく、 まぁ、Godot絡みなのですが、英語の記事や情報を読みたくなって、これも学生時代からずっと避けてきた英語の勉強を始めました。 とりあえず、Unity のコミュニティーで教えて頂いたDuolingoを遊びながら、通勤時にはNHKラジオの「中学生の基礎英語」を聞いています。 で、家に帰ってきたら、Godotに浸っているわけですが…
Unity経験者のGodotの遊び方:Tweenの使い方について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はTweenの使い方についてまとめてみました。
Unity経験者のGodotの遊び方:カスタムテーマの設定方法と、スクリプトからLabelの設定を変える方法について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はカスタムテーマの設定方法と、スクリプトからLabelの設定を変える方法についてまとめてみました。
Unity経験者のGodotの遊び方:Body系ノードの移動方法と衝突検知方法について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はBody系ノードの移動方法と衝突検知方法の実験結果をまとめてみました。
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はsignalについてまとめてみました。
Unity経験者のGodotの遊び方:インスタンス化と実体化について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はインスタンス化について紹介します。
Unity経験者によるGodotの遊び方:Nodeの種類ごとの色の設定方法について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はNodeの種類毎の色の設定方法について紹介します。
Unity経験者によるGodot実践メモ:スライダーについて
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はスライダーの作り方について紹介します。
Unity経験者によるGodot実践メモ:乱数・awaitについて
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日は乱数作成について紹介します。
Unity経験者によるGodot実践メモ:GameManagerっぽいものについて
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はUnityでいうGameManagerっぽいものの作成方法について紹介します。
Unity経験者によるGodot実践メモ:インプットマップとノードの種類について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日はインプットマップとノードについて紹介します。
Unity経験者によるGodot実践メモ:変数とスクリプト・処理ルーチンについて
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日は変数の宣言の仕方とスクリプトの構造の違いについて紹介します。
Unity経験者によるGodot実践メモ:初期インストールと4大要素について
Unity経験者がGodotを遊んでみて学んだり、感じたりしたことの記録です。 今日は最初のインストールと、Godotを学ぶ上でとても大事な4大要素について紹介します。
今度は3D脱出ゲームを作成しています。 今日は、イベントの整理と実装・k処理の仕組みをまとめました。
今度は3D脱出ゲームを作成しています。 今日は、GameModeを定義しました。
今度は3D脱出ゲームを作成しています。 今日は、Zoom機能を改造しました。
3D脱出ゲーム:ItemBoxをドラッグできるようにしよう。
今度は3D脱出ゲームを作成しています。 今日は、ItemBoxをドラッグして動かせるようにしました。
UniTaskとオブジェクトプールの併用でasync/awaitが動かなかったので解決方法を実験。
昨日書いた様に、3D脱出ゲームはちょっと休憩して、今日はUniTaskの実験。Unityroomのゲームジャムに参加した際、どうせならとUniTaskを導入して使ってみた。 敵キャラの動作をコルーチンの代わりにasync/awaitでやってみたのだけれど、なぜか上手くいかない。 敵キャラはオブジェクトプールを使って、同じオブジェクトを使い回す様に作ったけれど、敵がやられてオブジェクトプールに返って、 その後に再生成されると、async/awaitが動いてくれなかった。もっとしっかり解決方法を調べたかったけれど、ゲームジャムは一週間と言う期限があったので、仕方なくコルーチンに戻して完成させる事に…
3D脱出ゲーム:カバンからアイテムをドラッグして出せるようにしよう。
今度は3D脱出ゲームを作成しています。 今日は、カバンからアイテムをドラッグして取り出す仕組みを考えてみました。
3D脱出ゲーム:ドラッグしたアイテムを所定位置にセットできるようにしよう。
今度は3D脱出ゲームを作成しています。 今日は、ドラッグしたオブジェクトを所定の位置にセットする仕組みを実装しました。
UnityRoomの1Wゲームジャム参加:Color Change Panicを公開しました。
Unityroomの1Wゲームジャムに参加。 パズル・シューティングゲームを公開しました!
ドラッグ&ドロップで3Dオブジェクトを移動したり取得したりしよう!
今度は3D脱出ゲームを作成しています。 今日は、オブジェクトをドラッグして移動したり、アイテムボックスに格納する方法ついてです。
今日も、しまづさんのyoutubeシリーズで3D脱出ゲームの勉強です。 www.youtube.com今日は、 # 08ズームパネルの作成 # 09ズームオブジェクトの作成 # 10ズームオブジェクトの回転 をやりました。# 07アイテムの使用の時点で、ItemBoxの選択の初期化が抜けているように思えていたので ちょっとドキドキしていたのですが、# 08ズームパネルの作成でしっかり対策されていました🤣 そりゃそうよね〜😆今回の動画での一番の学びは、やっぱり、# 10ズームオブジェクトの回転での、 Objectを回転させる時の回転軸を指定する方法と、その回転軸に補正を…
昨日に引き続き、しまづさんのyoutubeシリーズを参考に、3D脱出ゲームの勉強中です。 www.youtube.com今日は、 # 04 アイテムボックスに左詰でいれる # 05 アイテムのデータベース化 # 06 アイテムの選択 # 07アイテムの使用 を実習。やっぱり新しいことを学ぶのは楽しい!😁 この時点でも、学びがたくさんありました。 public bool OnSelected() { if (item == null) { return false; } BackGroundPanel.SetActive(true); return true; } 基礎の基礎で、関数の説…
前回、次はポケモン風RPGと書きましたが、 3Dアクションゲームが3か月掛かったので、また長期間作成が必要な作品だと、ちょっとシンドイなあと思ってしまったので、 別のジャンルに挑戦することにしました。という事で、しまづさんのyoutubeシリーズを参考に、3D脱出ゲームを作成してみます😄 www.youtube.comまずはテクニックを学んでいきつつ、どんなゲームにするか考えていこうかなと思ってます。今日は早速、 # 01 アイテムのクリック判定 # 02 アイテムの実装 # 03 アイテムボックスの実装 を実習。アイテムでCubeやSphereだけでは寂しいので、フリーの3Dモデルサイト f…
ついに3Dアクションゲームを公開しました!unityroom.com いや〜、かかったなあ😅 去年12月の2日から作成始めているので、実に3ヶ月もかかってしまいました。 プレイ時間は10分程度です🤣 時間にすると、たったこれだけのゲームですが、今回も学んだことをガッツリと詰め込みました。 今まで使っていなかったTimeLineの勉強ができたのが、とても良かったかな。 あと、だいぶUnityActionやScriptableObjectになれてきたと思います。ゲームの中身としては、 右上のレーダー画面やロックオン機能、案内役の従者など、色々と作り込みましたが、 ジャンプなど、蛇足だったと思う機能…
α版のデバッグをしよう(バグの原因特定と解決②):3Dアクションゲームを作ろう(21)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 α版のデバックをしよう!
α版のデバッグをしよう(バグの原因特定と解決①):3Dアクションゲームを作ろう(20)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 α版のデバックをしよう!
GitHub CopilotとMicrosoft Copilot:ゲーム開発者の新たなパートナー
ここ数日間は、3Dアクションゲームの制作にずっと没頭してます。 2月中に完成させたいと思っていましたが、少し間に合わない感じ💦基本的には、作るべきものの大半は作り終えているので、残りは全体的な調整とデバッグくらいですが、思った以上に時間がかかっています。 ちょっと気分転換に、新しいことを始めたくなり、これまで試していなかったGitHubとの連携、そしてGitHub Copilotの導入をやってみようと思いました。GitHubとの連携は、スタジオしまづさんのYouTubeを見ながら、しまづさんの個人サロンでの説明を受けつつ、サクッと導入。 ・・・したまでは良かったのですが、連携しようとしたゲーム…
プレイヤーを誘導しよう!案内役の導入。:3Dアクションゲームを作ろう(19)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 案内役の導入。プレイヤーを誘導しよう。
【Unity】Cinemachine導入でポリゴンの裏を見せない様にする。
【Unity】Cinemachine導入でポリゴンの裏を見せない様にする。
ここ最近は、ブログを書ける進捗すらもないほどに、ずっとTimelineに悩まされていていました😅 どうにかこうにか形になってきたので、備忘録も兼ねて、まずはドロップダウンリストについて纏めておこうと思います。UnityにもUIとしてドロップダウンが搭載されてはいるけれど、使ってみると案外設定が解りにくい。 ドロップダウンを紹介しているサイトは数多くあるけれど、肝心な箇所の説明がなかったり、足りなかったりしたので、 あっちこっちのサイトから情報をかき集めてくる必要があった。まずは、標準的なドロップダウンリストといえば、こんなイメージだけど フォントや表示エリアの設定が、それぞれ別のObjectに…
TimelineでAnimationClipを動作させる時の問題点と解決策:3Dアクションゲームを作ろう(18)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 TimelineでAnimationClipを動作させる時の問題点と解決策
カーソルでボタンを操作しよう!:3Dアクションゲームを作ろう(17)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 設定画面の作成(2)カーソルでボタンを操作できる様にする。
Audio Mixerとスライダーの連携:3Dアクションゲームを作ろう(16)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 設定画面の作成(1)AudioMixerのボリュームをSliderで調整。
ゲームの顔になるタイトル画面をつくろう(2):3Dアクションゲームを作ろう(15)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 Timelineでオープニングムービー作成。
ゲームの顔になるタイトル画面をつくろう(1):3Dアクションゲームを作ろう(14)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 ゲームタイトルの決め方。キーボードで操作できるメニューの作り方。
飛行型の敵キャラの作り方:3Dアクションゲームを作ろう(13)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 飛行型の敵キャラ作成。
ドラゴンの吹っ飛ばし攻撃修正: 距離によって影響具合に変化をつける:3Dアクションゲームを作ろう(12)
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 衝撃波の修正〜
3Dアクションゲームを作ろう(11):ドラゴンの作成継続中:プレイヤーを引き離す技を作成
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中。 今日はドラゴンを作り込みました。衝撃波実装!
辰年ならではのドラゴン登場!3Dアクションゲーム完成に向けて進捗中
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中です。 今日はドラゴンを作成しました。
3Dアクションゲームを作ろう(10):回復エリアの実装。聖域を作る。
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中です。 今日は回復場所を作成しました。
3Dアクションゲームを作ろう(9):GameOverの実装(1)水に落ちたらGameOverにする。
敵に勝利しジェムを取り戻せ!、3Dアクションゲーム作成中です。 今日は川に落ちた時の処理を作成しました。
3Dアクションゲームを作ろう(8):PostProcessingとフリーのテクスチャを使用して雰囲気を格段に良くする。
画面イメージ改良!Post Processingとフリーテクスチャでゲームの雰囲気を改善しよう!
しまづさんのUdemyを参考にして、攻撃コンボを作る過程でスタミナを作り込んだ。 こうなってくると、そろそろただの四角形で作ったHPとスタミナのバーが不恰好に見えてきたので、UIを作り込んでおく事にした。UIはアセットストアで、一眼見て、雰囲気がとても気に入ったSteampunkUIを使っている。 assetstore.unity.comスチーム関係ない世界観のゲームだけど、そこは気にしない🤣 雰囲気が良ければいいのだ😆右上は3Dアクションゲームを作ろう(6)で作成したレーダー画面。 ただ、普通に映しただけでは縁もない状態で見栄えが悪いので、Render Textureを使ってUIのRaw I…
unityroom.com橋広コウさんも、同じく流星咲斗さんの動画シリーズで勉強して作品を公開されたので、早速遊んでみた。 その作品の中で、敵レーダーがあったのが、とても便利で感銘を受けたので、自分でも作ってみる事にしました。まず、レーダー用のカメラを作成し、Player Objectの子供に設定する。 レーダー用のカメラは、ある程度の高度のプレイヤーの真上から、プレイヤーを撮影するようにする。 次に、その映像を同時にゲーム画面に表示させるのだが、これは調べてみると、案外簡単に設定できた。ただ、これだと、単に上空からの映像になってしまって分かりにくかったので、レーダーに映るObject(Pos…
流星咲斗さんの【3Dアクションゲーム】作り方。 動画シリーズでの勉強は今日の#15 『敵をロックオン』で最後。 まだ、 #11 『ゲームオーバー表示を実装』 #13 『制限時間の実装』 #14 『スコアを作る』 #16 『ゲームを 書き出す』 といくつかの動画はやっていないけれど、サイドビューアクションゲームで学んだことと 重なる部分と思えたのでパスした。さて、#15 『敵をロックオン』 www.youtube.com3DARPGを遊ぶには是非とも欲しい機能だ🤩作り方もそれほど難しくなく、サクッと実装する。 これで、一応ロックオン機能の完成ではあるのだけど、 敵をロックオンしていると、カメラが…
流星咲斗さんの【3Dアクションゲーム】作り方の続き〜今日は、 #9 『プレイヤーのHPの実装』 #10 『敵をウロウロさせる』 #12 『地形を変える』 を学習。#11 『ゲームオーバー表示を実装』については、 見た感じ、ほぼほぼサイドビューアクションゲームと同じ感じだったので、飛ばした😁あとは、#13 『制限時間の実装』、#14 『スコアを作る』、#15 『敵をロックオン』、#16 『ゲームを 書き出す』 だけど、 #13、#14、#16は他のゲームと同じ感じっぽいので、飛ばすと思う😁#15はぜひやりたいので、明日これをやって、あとは自己流に修正していく感じかな〜といっても、実はもう相当、自…
今日は、流星咲斗さんの【3Dアクションゲーム】作り方の #8 『HP(体力)』これもシューティングゲームやサイドビューアクションゲームで散々作ってきたHPバー。 3Dでの実装は初めてだったが、基本的な構造は同じだった。ただ、HPバーの向きが敵と同じ方向になってしまうため😅、見辛くて仕方がない。 これについては研究の必要がありそうだ。あとは、敵を攻撃した時があまりにも寂しかったので、攻撃がヒットした場所にエフェクトを表示させるようにしてみた。OnCollisionEnterとOnTriggerEnterで衝突座標の取得方法が違うようで、 OnTriggerEnterだと、こんな感じらしい。 Ve…
昨日に引き続き、流星咲斗さんの【3Dアクションゲーム】作り方を勉強中。今日は、 #4 『剣で攻撃する方法』 #5 『エフェクトで画面を華やかに!』 #6 『効果音で世界を彩る』 #7 『敵に追尾させる方法』剣で攻撃する方法については、サイドビューアクションゲームである程度理解できているので、だいぶ楽😆 むしろ、3Dだと剣に直接colliderを設定できる分、実は2Dより判りやすいんじゃないかと思えたほど。エフェクトのパーティクルシステムもサイドビューアクションゲームでちょこっと齧ったので、サクッと進める。 むしろ、あの時、この動画を見たかった😅どうも、自前のはあまり良いものが作れなかったので、…
昨日に引き続き、流星咲斗さんの【3Dアクションゲーム】作り方を勉強中。今日は、 #4 『剣で攻撃する方法』 #5 『エフェクトで画面を華やかに!』 #6 『効果音で世界を彩る』 #7 『敵に追尾させる方法』剣で攻撃する方法については、サイドビューアクションゲームである程度理解できているので、だいぶ楽😆 むしろ、3Dだと剣に直接colliderを設定できる分、実は2Dより判りやすいんじゃないかと思えたほど。エフェクトのパーティクルシステムもサイドビューアクションゲームでちょこっと齧ったので、サクッと進める。 むしろ、あの時、この動画を見たかった😅どうも、自前のはあまり良いものが作れなかったので、…
今ひとつサイドビューアクションゲーム作りのきぶんが乗らないので、新しいゲームの作り方を勉強することにした😅 飽きっぽいのが、僕の良くないところ🤣youtubeで再生リストでまとまっているのを見つけたので、流星咲斗さんの【3Dアクションゲーム】作り方を勉強してみよう。 www.youtube.com今日は、 #1 『移動できるようにしよう!』 #2 『アニメーションの切り替え方法』 #3 『敵を出す方法』 をやってみた。基礎の説明ではあるけれど、人によってスクリプトの書き方が違っていて、これはこれで勉強になる。 それにしても、アセットをそのまま使うのでよければ、3Dフィールドを作るのがこれほど楽…
公開したBreak Plateを知り合いに宣伝。youtube用の動画も作成したけれど、僕のチャンネルはこのブログ用の動画しかないので、宣伝効果は怪しいもの😅そう思っていたら、Twitter(X)で、AlFiさんとしまづさんが宣伝ツイートをリポストして下さった。 まだまだフォロワーの少ない僕にはとてもありがたい🙏Unityroomを見ると、数千とか万単位で遊ばれているゲームがあるけれど、早く僕もあれだけ遊ばれるゲームを作れるようになりたいものだ😊さて、最近は残業続きで開発も遅延していたけれど、ブログの更新も停滞していた。 月末に向けて、まだしばらくは繁忙期間なのだけど、それでも少しは余裕が出て…
さいきん残業ばっかりで、制作が遅々として進んでいなかったけれど、ようやく完成。 スタジオしまづさんの1WSSへの参加作品「Clash Plate」を改良して、Break Plate!を公開しました。前作では、Time .deltatimeをかけ忘れるという、あまりにも悔しい結果だった。 今回はそこをきっちりと修正。 それに、スコアゲームなのだから、スコアランキングが欲しくなり、PlayFabを利用してランキング機能を追加している。さらに、rocoさんの作品を見て、ゲットしてはいけない減点ポイントがある方が良いと思ったので、黒皿を追加。後半が単調に感じたので、皿湧きのタイミングを残り時間で調整す…
Playfabでのランキング実装の続き。あのあと、色々と実験していて判ったことだが、 var guid=System.Guid.NewGuid(); でのGUID生成は、毎回起動のたびに行われるので、今のままでは起動するたびに、Playfabに新しいアカウントが登録されてしまう。 これは流石に都合が悪いので、ゲーム起動時のランキング取得は管理者用のアカウントで行い、ランキングインした時だけプレイヤーアカウントを生成するようにした。 これで、無数にアカウントが生成されるのを多少は制限できると思う。ゲーム終了時に今回のスコアと、取得しておいたランキングのスコアを比較してランキングインしたかどうかを…
前回も書いたけど、ニフクラでのランキングはどうにも、しっくりこなかったので、Playfabでのランキング実装をやってみることにした。まずはPlayfabのアカウント登録だが、僕の環境では普通に検索すると、AzurePlayFabが先頭に来てしまうが、とりあえずこれは別物。 PlayFabのアカウント登録は、ここになります。https://developer.playfab.com/en-us/sign-up利用料金は非常に難解で、僕には理解しきれませんでしたが、オンラインサロンの皆に聞いた限りでは、料金請求された事がないそうなので、そこまで気にする事はないのかも。 むしろ、料金発生するくらい遊…
しまづさんの1Wジャムが終わり、僕の作品で不具合があったため、それを修正しようと思っています。 しまづさんのPC環境だと、ターゲットの移動と弾の回転が早すぎて、まともな操作ができていなかった。 これはTime.deltaTimeで解決できると思う。ほかには、 ゲーム中盤〜後半にかけて、ちょっと単調なままなのが面白みにかけたので、それも解決したいし、 他の人の作品で取ってはいけないもの、例えば減点するか持ち時間が減るようなNGターゲットも導入したいと思った。あと、痛感したのが、得点ゲームなら、やっぱりランキング機能が欲しいということ! せっかくなので、これをまず最初に導入してみようと思う。二フク…
スタジオしまづさんの1Wゲームジャムへ作品を出展しました😆unityroom.com皿割りシューティングです。 今まで学んできた要素を詰め込めるだけ詰め込んでみました。 InputSystem でキーボードでもマウスでもコントローラーでも遊べるようにできました。 ちょっと操作しづらいけどスマホでも遊べちゃいます。皿を割った時に出る時の得点表示は、最後まで苦労したところ。 何せ、今まで3DでUIを使ったことがなくて、座標をどういうふうにしたら良いのか分からない。 nekojara.city を参考にやってみたけれど、なぜかUIの座標が桁違いな値になってしまう。 ちょうど、今週の水曜が、しまづさん…
皿割りゲームを作っていて、どうにも不満が。弾の速度が遅くて、どうしても弾を撃つタイミングが難しい。かといって弾を早くすると、colliderの判定が間に合わず、貫通してしまう問題が発生してしまう。Rigidbodyの衝突判定の設定を変更する方法もあるみたいだけど、どうせなら、いっそcoliider判定をやめてRaycastで判定することにしてみた。 RaycastHit[] hits; private void Shoot() { //表現として弾を発射する。 GameObject _bullet = Instantiate(Bullet,transform.position,transfor…
しまづさんの1Wゲームジャム。 www.youtube.com決められたテーマに沿ったゲームを一週間で作成するイベント。前回のUnityroomのジャムは、まだ勉強不足だったから断念したんだけど、今回は参加することにした。 テーマは「割る」 発表の瞬間に湧いたイメージは、皿🤣ということで、サイドビューアクションゲームは、ちょっとお休みして、皿割りゲームを作ってました。youtu.be勢いに任せて、ここまで作りました😆ざっくり作った様で、今まで学んできた要素が結構ちりばめられてます😁 InputSystemでキーボード、ゲームパッドにも対応させてます✌️ あとちょっと微調整して完成かな〜 時間制…
サイドビューアクションゲームを作ろう(14):遠隔攻撃してくる敵
レベルアップもできる様なったので、罠をサクッと作成。youtu.beこの辺りは特に悩む事もなく実装できる様になったのが嬉しい😄 ダメージをあたえるダメージトラップと、一撃死のデストラップを作成する。 とりあえず、現段階では動作はアニメーション機能に任せることにした。次は遠隔攻撃してくる敵。 実はこれも、そんなに悩まずに実装できた。 基本の動きは他のEnemyと同じなので、他のEnemyのスクリプトをちょこちょこっと改造するだけで良い。 違うのは、遠隔攻撃の矢を生成してやるのと、生成時のEnemyの向きに応じて、矢の向きを変える事、そして、矢の方向に動かしてやること。まず、アーチャーのスクリプト…
サイドビューアクションゲームを作ろう(13):レベルアップ(下書き)
アイテムに引き続き、レベルアップ機能を作成した。 といっても、エフェクトなどはまだ勉強していないので、とりあえず今日のところは下書き状態に留めた。レベルアップだけならば簡単で、要は経験値が、次のレベルに必要な分量溜まっていたら、経験値を0化して、各ステータスを上昇。次のレベルに必要な経験値を更新してやれば良い。Item ManagerでアイテムやEnemyの経験値加算処理するように組んでいるが、 これだと、Item Managerで経験値管理までしなくてはならない。 なので、レベルアップの処理は、EXPバーのPlayerEXP_BarとGame Managerに任せる事にした。EXPバーに任せ…