0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MonoBehaviourが合わなかった私がPlaymakerでUnityを楽しめるようになった話

Posted at

きっかけ

ある日ふと、「ゲーム作りたいな」と思ったのが始まりでした。
当時いろいろ調べてみると、ちょうどUnityが流行り始めていた時期。

触ってみたものの、GameObjectMonoBehaviourという仕組みが
どうも自分の頭にはしっくり来なかったんです。

実際さわってみて、制御権が常に「Unityエンジン側」にあるという構造─
今だからこそ少し認識できるようになったのですが、つまりMonoBehaviourが
ライフサイクルを自動管理するコールバックの集合体」のように感じられて、
自分がコードの主導権を持てない感覚にかなり混乱していたんだと思います。

当時は趣味でFlashDevelopActionScript 3くらいしか触ったことがなく、
Unityの「ツールとしての抽象化された世界観」にも拒否反応が出てしまいました。

要は、Unityは最初からできることが多すぎる。
ルールや仕様は存在するけれど、
「どこから手をつけていいのかわからない」。
サンプルどおりにやっても頭に入らない。
あれもこれも、覚えないと置いて行かれる感覚。

そんな“情報の多さによる迷子状態”でした(個人差!)。


Playmakerとの出会い

そんなあるとき、ふと見かけたのが
=> David Wehle さんの動画

この動画が、自分の転機になりました。

紹介されていたのが「Playmaker」のアセット。
最初は「またツール群か…面倒そう」と思いつつ触ってみたら、
“状態遷移ごとにコードを実行する” という発想が
すんなり頭に入ってきたんです。


PlaymakerでMonoBehaviourを“直接書かない”開発

そこからはもう、どハマりでした。
Playmakerを使うことで、MonoBehaviourのライフサイクルを自分でコードに書かず、
代わりに状態遷移(FSM)として制御レイヤー化できるようになりました。

いつしか複雑な処理は Pure C# や C++でDLL に分離し、Playmakerから呼び出す構成に。
こうして、ゲーム全体の流れを視覚的に制御しつつ、
下層ロジックはコードで最適化するハイブリッドな開発スタイルに落ち着きました。

この頃から、ポインタ、ポリモーフィズム、インターフェース、
コーディングルールなどの基礎を少しずつ吸収していくようになりました。


ステートマシンの最適化と整理術

最初の頃は「RPGのスキルツリーみたいに無限に広がる」
ステートグラフを組んでいました。

でも、理解が広がりできることも増えるにつれて
自然と最適化されていきました。

「処理を外だしするなら制御系全部書けばいいじゃん」
と同僚に言われたことがあります。

でも実際のところ、毎回コードを追うより、
Playmakerの遷移を追った方が数倍速かったんです(作っている物による)。
柔軟な仕様変更にも強かったです。


レガシーコードとFSMのありがたみ

レガシー案件で「ゲームコントローラー」プレハブに
MonoBehaviourが無限に貼り付いたコードを見ることがあります。あるよね?

マジックナンバーだらけ、イベントで飛ばしまくり、
Time.deltaTimeを考慮していないフレーム依存処理─ まさに地獄。

そんな時、心の中でいつも思います。

 「この処理…状態遷移でよくない?
 Playmakerで組んでくれたら100倍わかりやすいのに…」


Playmakerで“手を動かして理解する”

Playmakerはまず、簡単に

  • 表示させる
  • 動かす

といったことを数クリックで始められます。

そこから「テキスト表示」「シーンロード」「セーブ・ロード」など
やりたいことが増えていくうちに、
FSM同士の連携やデータの受け渡し、
アクションを自作する流れ、拡張アセット導入へ自然と発展します。


「Playmakerだけで何でも作れるの?」への答え

よく聞かれるのがこれ:

「Playmakerと標準アクションだけで、なんでも作れるの?」

作りたいものにもよる

質問 答え
実用に耐えるもの作れますか? Yes。実際、Playmakerはヒット級の商用ゲームでも一部フローで採用されています。(Hollow Knight,INSIDE,Hearthstone,TheFirstTreeなど)
Addressableやリソース開放系は? カスタムアクションで実装可能。LoadAssetAsync呼び出しもOK。
課金や広告は? C#ラッパー経由で実装可能。
DOTS使える? 制御層としてPlaymakerを使い、C#ブリッジでDOTS呼び出しは可能(直接は不可)。
VisualScriptingとは? 構造が異なる。Playmakerはイベントドリブン型、VisualScriptingはフローチャート型。用途で使い分け可能。

要は「何をPlaymakerに任せるか」のバランスの問題です。

Playmakerは状態遷移とイベントドリブンを可視化する箱
万能スクリプトツールではなく、
ロジックを整理し、動作を見える化するツールとして使うのが正解。

上手に分担すれば、Playmakerは “軽くて速いUI付きFSM” です。


そしてUnityは怖くなくなった

気づけば、あれほど苦手だったUnityを
まったく臆することなく使えるようになっていました。

確かに、不便な部分はまだまだあります。
でも、Playmaker中心のこのスタイルなら
「Unityを自分の得意な形で使う」 ことができる。

それが、何よりも楽しいんです。


まとめ

Playmakerは“初心者の補助輪”ではなく、“思考を整理するための設計ツール”です。

書かないことで理解を深め、見えることで全体を掴む。

そのシンプルさが、Unityでの開発をもっと自由にしてくれます。


最後に

初投稿でしたが、書いているうちに思い出があふれてまとまりきらなかったです。
どうしても伝えたかったのはただひとつ。

Playmakerはいいぞ!

ここまで読んでくださって本当にありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?