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?

UnityJapanのTinyCharacterControllerをSpineのモデルで使用してみた

Last updated at Posted at 2025-05-15

概要

2Dゲームを作るにあたって時間削減のためにTinyCharacterControllerを使用できないかなと思い、試してみました。

環境

  • Unity 6000.0.23f1
  • TinyCharacterController 0.7.0

実装

とりあえずそのまま使用してみた

TCCは3Dモデルを前提に作られているのでMoveControl1などでキャラクターを移動させると移動方向にキャラクターのZ軸が向くようになっているので、Spineだとペーパーマリオみたいになってしまいます。なのでこの回転を司ってる部分を止めて、Spineの向きを変える処理を独自に実装する必要があります。

回転を司ってる部分

回転をさせる必要があるコンポーネントにはITurnというインターフェイス実装させており、CharacterBrainと同じGameObjectに追加されてるTCCのコンポーネントに実装されてるITurnをすべて取得、毎フレーム回転量をTurnManagerで計算してキャラクターに反映してます。

改修

TCCは自前で新たに実装できるようなってるので、TCCのコンポーネントからITurnIPriorityLifecycle<ITurn>を抜いた新たなコンポーネントを実装します。

これで回転しなくなるので、自前でSpineの向きを変えます。
Spine公式だとSpineのクラスのSkeletonのScaleXを1か-1にして向きを変えてたのでそうしました。

_skeletonMecanim.skeleton.ScaleX = isLeftDirection ? 1: -1;

その他TCCについて

CharacterBrainがUnityのCharacterControllerを継承しているので物理関係や当たり判定などは3Dを使用していて2D向けのColider2Dでは使用できません。

基礎的なことは一通りできますが、細かいことやろうとしたら自分で実装しないといけないので本格的なもの作りたいなら参考程度にして自前でキャラクターコントローラー実装したほうがいいかもしれません。

  1. 入力に応じてキャラクターを移動させるコンポーネント

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?