部品ばっかり研究していたのですが、ようやくひとつ完成品ができましたよ。 作品紹介ページはたぶん別に作るので、これは作ったときに苦労した点や気づいた点などのメモ。
http://www.nscripter.com/UniZeni.zip


3D迷路を走り回り、4種類ある罠をかいくぐりコインを集めるジャンプアクションゲームです。いろいろ勉強になりました。そこそこ遊べると思いますが、これは練習作のつもり。次から本気で収益化を狙った作品を作っていきますよ。まずはAndroidで無料広告モデルだ。
さて、このゲームの反省点について。
- MoonSharpを使ってスクリプティングしてるんだが、このゲームではほとんど意味がない。ああいうのはADVとかで威力を発揮するものだ。多分次の作品で本格的に使う。
- StandardAssetの出来合いのコンポーネントとやりたいことの埋め合わせに主に苦労した。まあ、ソースもあるしアセットフォルダに入るのはコピーされたファイルだし、いざとなったら解析して改造すればよい。ただ、TPSコントローラはたぶん次は自分で作ると思う。
- マップはJSONから読んでオブジェクトを配置しているのだが、元々は読み込み実験がしたかっただけだったので、Unityのレベルエディタ上で作ったほうがいろいろリッチなものが作れるだろうとは思います。
- ガチの3D迷路にしてしまったため、敵キャラを入れるのとかはちょっとゲーム性的に難しそうで断念した(これだと視界がほとんどないし、攻撃手段が踏むだけだとかなりヤな感じになりそう)。
- ユニティちゃんが弾き飛ばされる演出でRigidBodyで計算して速度を与えて実装しようとしたけどどうも思うようにいかず、結局Transform.Translateで動かしたら一番すっきりした。加速度運動くらいなら時間との関数で簡単に書けるしね。
- ふっとばされたユニティちゃんがダメージモーションの際に壁にめり込む問題の解決。弾き飛ばされてる間はTPSコントローラに最初からついてるカプセルコライダーをenabled=falseにして止め、お尻のTransformにつけたボックスコライダー(頭のほうまで大きめに入るようにしてある)をオンにして判定しうまくいきました。ちなみに両方オンにすると自分のコライダーに引っかかって動けなくなるみたい。レイヤを使って回避することもできるっぽい雰囲気だが今回は単にオンオフで対応。
- 今回スキンメッシュはユニティちゃんのみ。あとはTransformを時間でアニメーションさせてます。不気味多面体や三面の壁や空の色アニメはマテリアルからシェーダーに変数を設定してます。このシェーダーの変数名については、公式サイトからシェーダーのソースを落とせるのでそれを解析すればだいたいわかる。
補足:Animation Clipでもシェーダー変数含めだいたいのものはアニメーション出来るので、後でUnityエディタが他のツールからの使用をサポートしてくれる可能性を考えるとそっちで書くべきか。iTweenもループも含めだいたいのことはやってくれるので使用を検討。スクリプトで書くのは(コード量は小さいとはいえ)悪手かも。 - モデルはほとんどプリミティブそのままなのが多いけど、テクスチャは3D-CoatやSubstancePainterの練習だと思って多少頑張ってみた。あとはIllustratorとPhotoshopかな。レベルエディットはTiled Map Editor、そのために使うマップチップ作成にはEDGEを使用しました。
https://wakelet.com/wake/4bwqDxLRGE0sBMbbiTnSh
https://wakelet.com/wake/4FM_W_rzG13f2nW_1beft
https://wakelet.com/wake/3cZ-uGm-oOYyA2XZlgG5E
https://wakelet.com/wake/ZGD463-4E8QyRrseBcniJ
https://wakelet.com/wake/4YmMfrULlOJFKB6gb7Kh0
https://wakelet.com/wake/OCxKJCMV-kVSoy-Ply1ZD
https://wakelet.com/wake/rwoY9cjZtJNh_mwPweRxz
https://wakelet.com/wake/SaujNiXYtS5nJVqDONccM
https://wakelet.com/wake/RfIA0tevzEMHMJb8BmlCz
https://wakelet.com/wake/YcAeGga_cZ7stj0jDMMT3
https://wakelet.com/wake/vJ4PnPh4gLW3vBDKOjfmp
https://wakelet.com/wake/1DKQDVOhr2tzdY8NLbN7y
https://wakelet.com/wake/FRdztlymwzdoFrTNT4PT0
https://wakelet.com/wake/rLWFW0_-jBcpMzlEhFKA-
https://wakelet.com/wake/LBdyVmf5b4JTltzzQSCeQ
https://wakelet.com/wake/XS2V8PYcEYk0D_GQstjFP
https://wakelet.com/wake/-EksP0MqQybI5vlINqq0T
https://wakelet.com/wake/cDUQiiM5-rVr_Fs7HLDkk
https://wakelet.com/wake/8Qdzcu1wsSNUr8ppnORl3
https://imgur.com/d8rbaru
https://imgur.com/rOA0bkm
https://imgur.com/kzCh3yh
https://imgur.com/7VMluc0
https://imgur.com/xmzdtsF
https://imgur.com/HD7Dpon
https://imgur.com/qGFu5PZ
https://imgur.com/4aEqL1T
https://imgur.com/pP5CFXO
https://imgur.com/ySr8iE9
https://imgur.com/qSihmgx
https://imgur.com/qrWVqfj
https://imgur.com/ZM8Im0W
https://imgur.com/M9wSIbb
https://imgur.com/DsIPsYn
https://imgur.com/DlRqtKy
https://imgur.com/JtNlnsc
https://imgur.com/sN6dCj6
https://imgur.com/4EEnB77
https://imgur.com/IQZk78O
https://imgur.com/HNrPR6R
https://imgur.com/mnVMceB
https://imgur.com/DoPA2kc
https://imgur.com/amHTfC6
https://imgur.com/YUqIY4c
https://imgur.com/AXhT1vS
https://imgur.com/9oqbvW8
https://imgur.com/oJFSqvu
https://imgur.com/LdpRJqz
https://imgur.com/EVFuCXU
https://imgur.com/8Jj2sHg
https://imgur.com/pbD7e5s
https://imgur.com/tdz6q47
https://imgur.com/ecaXJcg
https://imgur.com/SGi5t3t
https://imgur.com/lJEV0l8
https://imgur.com/o0zPwVA
https://imgur.com/uIvoEiY
https://imgur.com/BTU61Ft
https://imgur.com/F8zW3Bl
https://imgur.com/q0jxX15
https://imgur.com/BkK0cS1
https://imgur.com/z2RCdCT
https://imgur.com/NkPYHt9
https://imgur.com/V3N21C1
https://imgur.com/WtMY5CU
https://imgur.com/VQSPZsM
https://imgur.com/3YfjirZ
https://imgur.com/r9dT7jj
https://imgur.com/6Vyfqef
https://imgur.com/mqOh84d
https://imgur.com/arOtcCp
https://imgur.com/4SN7sdk
https://imgur.com/htNT5Gz
https://imgur.com/nouvH1b
https://imgur.com/U5J8VRG
https://imgur.com/BtCql22
https://imgur.com/ssoOWiK
https://imgur.com/Q1JsBRg
https://imgur.com/xDPtBYq
https://imgur.com/AbTQvpn
https://imgur.com/zWZnevu