Skip to content

Commit 2e9ab27

Browse files
committed
Merge branch 'develop'
2 parents b1c96cb + ec5d4ec commit 2e9ab27

33 files changed

Lines changed: 442 additions & 548 deletions

WebSite/blog/blog_00001.html

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ <h1 class="post-detail__title">ブログはじめました</h1>
8181
<h2>自己紹介</h2>
8282
<p>こんにちは、パン君です。</p>
8383
<p>私はとあるゲーム会社で働きながら、インディーズや個人制作でも活動しているゲームエンジニアです。</p>
84-
<p>社会人2年目ということもあり、インディーズやプライベートで制作した作品などを整理して今後の活動に役立つような「まとめの場所」が欲しいと思い、このサイトを作りました</p>
85-
<p>本当はサーバーを借りたり、常駐用のミニPCを用意して1から環境構築して……という方法も考えましたが、まずは <strong>「早く出す」ことを優先</strong> して、今回は GitHub Pages を使っています。</p>
86-
<p>ページのクオリティは自分次第なので、今後もいろいろ調べながらブラッシュアップしていく予定です。<br>その過程も含めて、このサイトを通じて成長していけたらいいなと思っています。</p>
84+
<p>社会人2年目ということもあり、インディーズやプライベートで制作した作品などを整理して<br>今後の活動に役立つような「まとめの場所」が欲しいと思いこのサイトを作りました</p>
85+
<p>本当はサーバーを借りたり、常駐用のミニPCを用意して1から環境構築して……という方法も考えましたが、<br>まずは <strong>「早く出す」ことを優先</strong> して、今回は GitHub Pages を使っています。 </p>
86+
<p>ページのクオリティは自分次第なので、今後もいろいろ調べながらブラッシュアップしていく予定です。<br>その過程も含めて、このサイトを通じて成長していけたらいいなと思っています。 </p>
8787
<hr>
8888
<h2>やりたいこと</h2>
8989
<p>このサイトの大きな目標は下記のとおりです。</p>
@@ -96,9 +96,8 @@ <h2>やりたいこと</h2>
9696
<li>作成したプロジェクトの詳しい機能紹介</li>
9797
<li>個人で作ったツールや仕組みの解説</li>
9898
</ul>
99-
<p>といった内容をまとめておき、
100-
<strong>ポートフォリオの補足資料</strong> としても使えるようにしたい、という思いがあります。</p>
101-
<p>ブログの記事自体も、長い目で見れば <strong>スキルと実績を示すポートフォリオの一部</strong> になるので、<br>「これはお得だな」と感じて始めました。</p>
99+
<p>といった内容をまとめておき、<br><strong>ポートフォリオの補足資料</strong> としても使えるようにしたい、という思いがあります。 </p>
100+
<p>ブログの記事自体も、長い目で見れば <strong>スキルと実績を示すポートフォリオの一部</strong> になるので、<br>「これはお得だな」と感じて始めました。 </p>
102101
<hr>
103102
<h2>このサイトの構成イメージ</h2>
104103
<p>現時点で想定している構成はこんな感じです。</p>

WebSite/blog/blog_00002.html

Lines changed: 57 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ <h1 class="post-detail__title">Odin を導入してみた</h1>
7979

8080
<section class="post-detail__body markdown-body">
8181
<p>こんにちは!パン君です。</p>
82-
<p>今回は、インディーズのプロジェクトで <strong>Odin Inspector</strong> を導入した際に起きたトラブルと、そのときに行った対処についてまとめます。</p>
82+
<p>今回はインディーズのプロジェクトで <strong>Odin Inspector</strong> を導入した際に起きたトラブルと、そのときに行った対処についてまとめます。</p>
8383
<p>ざっくり言うと、</p>
8484
<ul>
8585
<li><strong>Odin 関連の <code>.meta</code> ファイルに差分が出る</strong></li>
@@ -198,72 +198,65 @@ <h3>手順 2: Odin および Test Framework の状態確認</h3>
198198
<h3>手順 3: <code>.meta</code> 差分の整理</h3>
199199
<p>Odin 関係の <code>.meta</code> ファイルで差分が出ている場合は、</p>
200200
<ul>
201-
<li><p>まずはリポジトリ側に <strong>正しい状態の Odin + meta をコミット</strong></p>
202-
</li>
203-
<li><p>その後、他メンバーには</p>
204-
<pre><code class="language-text">1. 作業ブランチでローカル変更を避難する(stash or commit)
205-
2. 最新ブランチに同期
206-
3. Library を削除
207-
4. Unity 再起動後、Odin 関係の .meta 差分が出るか確認
201+
<li>まずはリポジトリ側に <strong>正しい状態の Odin + meta をコミット</strong></li>
202+
<li>その後、他メンバーには</li>
203+
</ul>
204+
<pre><code class="language-text"> 1. 作業ブランチでローカル変更を避難する(stash or commit)
205+
2. 最新ブランチに同期
206+
3. Library を削除
207+
4. Unity 再起動後、Odin 関係の .meta 差分が出るか確認
208208
</code></pre>
209+
<p>という流れで動いてもらいました。
210+
 
211+
「動いている環境」をいったん正としてリポジトリに固め、それ以外の環境を合わせにいく<br>という考え方です。</p>
212+
<h2>チームで Odin を導入するときの運用ルール</h2>
213+
<p>今回のトラブルを踏まえて、次のプロジェクト以降で気をつけようと思ったポイントをまとめておきます。 </p>
214+
<h3>1. 導入前に「担当者」を決める</h3>
215+
<ul>
216+
<li>Odin のバージョン選定</li>
217+
<li>プロジェクトへのインポート</li>
218+
<li>初回コミット</li>
219+
</ul>
220+
<p>ここは <strong>1人の担当者がまとめてやる</strong> 方が事故りにくいです。</p>
221+
<p>中途半端な状態で複数人がそれぞれインポートすると、<br>.meta や manifest.json がぐちゃっとなりやすいです。 </p>
222+
<h3>2. Unity / Odin / Test Framework の「想定バージョン」を明文化する</h3>
223+
<ul>
224+
<li>プロジェクト開始時に<ul>
225+
<li>Unity バージョン</li>
226+
<li>Odin バージョン</li>
227+
<li>Test Framework バージョン
228+
を、どこかドキュメントに書いておく<br>後から参加してくるメンバーにも、「これに合わせてください」と案内するだけで済むようになります。</li>
229+
</ul>
209230
</li>
210231
</ul>
211-
<pre><code>
212-
という流れで動いてもらいました。
213-
 
214-
「動いている環境」をいったん正としてリポジトリに固め、それ以外の環境を合わせにいく
215-
という考え方です。
216-
217-
## チームで Odin を導入するときの運用ルール
218-
219-
今回のトラブルを踏まえて、次のプロジェクト以降で気をつけようと思ったポイントをまとめておきます。
220-
221-
### 1. 導入前に「担当者」を決める
222-
223-
- Odin のバージョン選定
224-
- プロジェクトへのインポート
225-
- 初回コミット
226-
227-
ここは **1人の担当者がまとめてやる** 方が事故りにくいです。
228-
229-
中途半端な状態で複数人がそれぞれインポートすると、
230-
.meta や manifest.json がぐちゃっとなりやすいです。
231-
232-
### 2. Unity / Odin / Test Framework の「想定バージョン」を明文化する
233-
234-
- プロジェクト開始時に
235-
- Unity バージョン
236-
- Odin バージョン
237-
- Test Framework バージョン
238-
を、どこかドキュメントに書いておく
239-
後から参加してくるメンバーにも、「これに合わせてください」と案内するだけで済むようになります。
240-
241-
### 3. 初回セットアップ手順を README に書いておく
242-
243-
今回やったような、
244-
- git clone / git pull 後にやること
245-
- Library 削除
246-
- Unity 再起動
247-
- うまく起動しなかったときの確認ポイント
248-
- Odin / Test Framework の状態確認
249-
- Safe Mode になったときはログを添付して報告してもらう
250-
といった内容を、簡単な手順書にしておくだけでトラブル時のコミュニケーションコストがかなり下がります。
251-
252-
## まとめ
253-
254-
今回の Odin 導入で学んだことをまとめると、こんな感じです。
255-
256-
- Odin 自体は便利だが、チーム導入時には「Unity / Test Framework / meta ファイル」の差異で事故りやすい
257-
- 「動いている環境」を 1 つ決めて、そこから
258-
- Odin + Test Framework の状態をコミット
259-
- 他メンバーの環境をその状態に寄せていくという方針がやりやすい
260-
- 導入時の手順や想定バージョンを **事前に軽くドキュメント化** しておくだけでも、だいぶ安全になる
261-
262-
Odin はカスタムインスペクターやエディタ拡張まわりでかなり強力なツールなので、
263-
一度チームで安定して導入できる形が作れると、**次以降のプロジェクトがかなり楽**になります。
264-
265-
今後は、実際にどんな機能を Odin で作っているか(属性ベースの Editor 拡張や、Data 管理の工夫など)も、別の記事で書いていければと思います。
266-
</code></pre>
232+
<h3>3. 初回セットアップ手順を README に書いておく</h3>
233+
<p>今回やったような、</p>
234+
<ul>
235+
<li>git clone / git pull 後にやること<ul>
236+
<li>Library 削除</li>
237+
<li>Unity 再起動</li>
238+
</ul>
239+
</li>
240+
<li>うまく起動しなかったときの確認ポイント<ul>
241+
<li>Odin / Test Framework の状態確認</li>
242+
<li>Safe Mode になったときはログを添付して報告してもらう</li>
243+
</ul>
244+
</li>
245+
</ul>
246+
<p>といった内容を、簡単な手順書にしておくだけでトラブル時のコミュニケーションコストがかなり下がります。</p>
247+
<h2>まとめ</h2>
248+
<p>今回の Odin 導入で学んだことをまとめると、こんな感じです。</p>
249+
<ul>
250+
<li>Odin 自体は便利だが、チーム導入時には「Unity / Test Framework / meta ファイル」の差異で事故りやすい</li>
251+
<li>「動いている環境」を 1 つ決めて、そこから<ul>
252+
<li>Odin + Test Framework の状態をコミット</li>
253+
<li>他メンバーの環境をその状態に寄せていくという方針がやりやすい</li>
254+
</ul>
255+
</li>
256+
<li>導入時の手順や想定バージョンを <strong>事前に軽くドキュメント化</strong> しておくだけでも、だいぶ安全になる</li>
257+
</ul>
258+
<p>Odin はカスタムインスペクターやエディタ拡張まわりでかなり強力なツールなので、<br>一度チームで安定して導入できる形が作れると、 <strong>次以降のプロジェクトがかなり楽</strong> になります。</p>
259+
<p>今後は実際にどんな機能を Odin で作っているか(属性ベースの Editor 拡張や、Data 管理の工夫など)も、<br>別の記事で書いていければと思います。</p>
267260

268261
</section>
269262

WebSite/blog/blog_00003.html

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,16 @@ <h3>1. ベースとなる Window クラス</h3>
199199
<p>ウィンドウを開くだけで</p>
200200
<ul>
201201
<li>指定したScriptableObjectの中身が <strong>同じ画面</strong> に展開される</li>
202-
<li>その場で値を編集、ほぞんが 反映される
203-
という状態にできます。</li>
202+
<li>その場で値を編集、ほぞんが 反映される</li>
204203
</ul>
204+
<p>という状態にできます。</p>
205205
<h3>2. ScriptableObject側の設計</h3>
206206
<p>もともとのデータ構造をScriptableObject化しておけば</p>
207207
<ul>
208208
<li>プロジェクト全体では通常通りScriptableObjectとして利用</li>
209-
<li>編集時だけコンテキストエディターのウィンドウからアクセス
210-
という二重の使い方ができます。</li>
209+
<li>編集時だけコンテキストエディターのウィンドウからアクセス</li>
211210
</ul>
211+
<p>という二重の使い方ができます。</p>
212212
<p>例えば :</p>
213213
<pre><code class="language-csharp">[CreateAssetMenu(menuName = &quot;Game/Event&quot;)]
214214
public class EventConfig : ScriptableObject
@@ -226,17 +226,16 @@ <h3>2. ScriptableObject側の設計</h3>
226226
public bool isEnabled;
227227
}
228228
</code></pre>
229-
<p>これを先ほどのContextEditorWindowのフィールドとして参照しておけば、
230-
ウィンドウ側でInlineEditorしたときに、 <strong>Odinのデコレーション込みで表示されます</strong></p>
229+
<p>これを先ほどのContextEditorWindowのフィールドとして参照しておけば、<br>ウィンドウ側でInlineEditorしたときに、 <strong>Odinのデコレーション込みで表示されます</strong></p>
231230
<h3>3. ちょっとしたUX改善</h3>
232231
<p>例:</p>
233232
<ul>
234233
<li>「選択中のステージだけテストシーンを起動する」ボタン</li>
235234
<li>「報酬テーブルをデフォルト値で初期化する」ボタン</li>
236-
<li>「特定 ID のデータを検索してフォーカス」ボタン
237-
Odin の Button 属性を使えば、EditorWindow 内にメソッドをそのままボタンとして出せるので、
238-
ちょっとしたツール感を簡単に足せます</li>
235+
<li>「特定 ID のデータを検索してフォーカス」ボタン</li>
239236
</ul>
237+
<p>Odin の Button 属性を使えば、EditorWindow 内にメソッドをそのままボタンとして出せるので、
238+
ちょっとしたツール感を簡単に足せます</p>
240239
<h2>実際に運用してみて</h2>
241240
<p>実際にプランナーに使ってもらって感じたメリットはこんな感じでした。</p>
242241
<ul>
@@ -259,9 +258,7 @@ <h2>最後に</h2>
259258
<li>「プロジェクト専用の編集画面」をサクッと用意したいとき</li>
260259
</ul>
261260
<p>にかなり相性がいいと感じました。</p>
262-
<p>Inspector 拡張だけでは足りないけれど、EditorWindow をフルスクラッチするのは大変
263-
というケースでは、Odin の属性と EditorWindow を組み合わせるだけで、
264-
「ちょうどいいライン」のツールが作りやすいです。</p>
261+
<p>Inspector 拡張だけでは足りないけれど、EditorWindow をフルスクラッチするのは大変<br>というケースでは、Odin の属性と EditorWindow を組み合わせるだけで、<br>「ちょうどいいライン」のツールが作りやすいです。 </p>
265262
<p>今後は、</p>
266263
<ul>
267264
<li>もう少し UI/UX を整理したバージョン</li>

0 commit comments

Comments
 (0)