あなたの世界を作りなさい
プレイヤーとキャラクター:基本

ZEPETOキャラクター

16min

ZEPETOキャラクターは、ワールドシーンに読み込むための基本的なZEPETOキャラクターインスタンスユニットです。

ZepetoCharacterを制御するには、スクリプトに次のインポート文を追加します。

TypeScript




ZepetoCharacter API

このAPIは、アニメーターコントローラーおよびキャラクターコントローラーコンポーネントを含むZEPETOキャラクターインスタンスを作成および削除します。

API

説明

CreateByZepetoId(zepetoId: string, spawnInfo: SpawnInfo, complete: System.Action$1)

ZEPETO IDを使用してZEPETOキャラクターインスタンスを生成します。主にNPCキャラクターの作成に使用されます。

CreateByUserId(userId: string, spawnInfo: SpawnInfo, complete: System.Action$1)

UserIdを使用してZEPETOキャラクターインスタンスを作成します。主にNPCキャラクターの作成に使用されます。

RemoveCharacter(character: ZepetoCharacter)

キャラクターインスタンスを削除します。



このAPIは、アニメーターコントローラーおよびキャラクターコントローラーコンポーネントを除くZEPETOキャラクターモデルインスタンスを作成します。

  • ZEPETO ID : これはユーザーが直接指定し、ZEPETOアプリ内で使用するID値です。
  • User ID : これはZEPETOシステム内でユーザーを区別するためのユニークなID値であり、UI上で公開されている値ではありません。スクリプトを使用して確認できます。



ZepetoCharacter APIに興味がある場合は、ドキュメントを参照してください:



キャラクターの作成/削除

TypeScript




例を実行すると、左側のCharacterModelが以下のようにAnimator ControllerとCharacter Controllerコンポーネントなしで作成されることがわかります。

Document image




キャラクターの制御

シーン内のキャラクターインスタンスからのスクリプトを通じて、キャラクターを直接制御できるインターフェースが提供されます。

API

説明

MoveToPosition(position : Vector3)

キャラクターを位置に移動させます。

MoveContinuously(direction : Vector3)

キャラクターが見ている方向に継続的に移動します(更新)。

MoveContinuously(direction : Vector2)

キャラクターが見ている方向に継続的に移動します(更新)。

StopMoving()

キャラクターの移動を停止します。

Jump()

キャラクターが設定されたジャンプ力でジャンプします。

DoubleJump()

キャラクターが現在設定されているダブルジャンプ力でダブルジャンプします。(MotionController V2を使用している場合のみ適用)

Teleport(position: UnityEngine.Vector3, rotation: UnityEngine.Quaternion)

キャラクターがTransformに瞬時に移動します。

SetGesture(gesture: UnityEngine.AnimationClip)

指定されたAnimationClipに対して、キャラクターの動作が再生されます。 SetGestureが実行されている間、ユーザーの制御入力はキャラクターに適用されません。 AnimationClipのループオプションがオンになっている場合、CancelGesture()が呼び出されるまで再生され続けます。

CancelGesture()

SetGesture()を通じて現在再生中のAnimation Clipの再生を停止します。 CancelGesture()が実行されると、ユーザーの制御入力が再びキャラクター制御に適用されます。

制御文字のサンプルコード。

TypeScript




例を実行すると、クローンキャラクターが指定されたアクションを次のように順番に実行するのが見えます。

Document image


📘 次のガイドを参照してください。 [NPCを作成]



モーションステート

ZEPETOキャラクターのモーションステートに関連するAPIは次のとおりです:

API

説明

motionState.useDoubleJump = (boolean);

キャラクターがダブルジャンプを使用できるかどうかを設定します。

motionState.doubleJumpPower = (number);

キャラクターのダブルジャンプのパワーを設定します。

motionState.useLandingRoll = (boolean);

キャラクターのランディングロールを使用するかどうかを設定します。

motionState.landingRollSpeed = (number);

キャラクターのランディングロールの速度値を設定します。

motionState.useMoveTurn = (boolean);

キャラクターのムーブターンを使用するかどうかを設定します。

motionState.Gravity = (number);

キャラクターの重力値を設定します。

motionState.CurrentJumpState

キャラクターの現在のジャンプ状態を確認できます。 - なし = -1, ジャンプアイドル = 0, ジャンプ移動 = 1, ジャンプダッシュ = 2, ジャンプダブル = 3

motionState.CurrentLandingState

キャラクターの現在の着地状態を確認できます。 - なし = -1, ランディングスライト = 0, ランディングディープ = 1, ランディングロール = 2

motionState.CurrentMoveState

キャラクターの現在の移動状態を確認できます。 - なし = -1, 移動ウォーク = 0, 移動ラン = 1

モーションステートの例コード

TypeScript




ZEPETOキャラクターアニメーターの制御

ZEPETOキャラクターアニメーターを制御するためのAPI

API

説明

StateMachine.constraintStateAnimation

ZEPETO.Worldのバージョン1.6.0以降、CharacterStateMachineで再生されるアニメーションの遷移は、Motion V2のCharacterStateに応じてOn/Offできます。 - true : コントローラー入力の影響を受けるZepetoCharacter.CurrentStateをオフにし、希望するアニメーションクリップを制御します。

👍 constraintStateAnimationの使用例

  • キャラクターに歩行アニメーションの代わりに水泳アニメーションを使用させたい場合は、水泳アニメーションクリップを新しいステートに適用し、constraintStateAnimationを通じてそのステートを固定できます。
  • キャラクターを移動させながらジェスチャーアニメーションを使用したい場合は、ジェスチャーアニメーションクリップを新しいステートに適用し、constraintStateAnimationを使用して固定されたステートでキャラクターを移動させることができます。
  • これは、Animator Stateに適用されたパラメータ値を一時的に無視しながら特定のアニメーションを強制的に再生したい場合に使用できます。



ZepetoAnimator

UnityEngine Animator 関数は ZepetoAnimator の形で利用可能です。

例えば、特定のキャラクターアニメーターの「状態」パラメータに整数値を設定したい場合は、次のように使用できます:

TypeScript


詳細な使用法については、UnityEngine Animator のドキュメントと以下のサンプルスクリプトを参照してください。



ZEPETO キャラクターアニメーターを制御するためのサンプルコード

プレイヤーによって制御されるローカルプレイヤー ZEPETO キャラクターのアニメーター制御の例です。

TypeScript




例を実行すると、StateMachine.constraintStateAnimationの値がTrueのとき、CharacterStateMachineで再生されるアニメーションの遷移がオフになるのがわかります。

StateMachine.constraintStateAnimationの値をFalseに設定すると、元の状態に戻ります。

Document image




キャラクターシャドウの制御

ZEPETO.CharacterControllerパッケージのバージョン1.11.3から、ZepetoCharacter Shadowオブジェクトにアクセスするためのインターフェースが追加されました。

API仕様:

CharacterShadowコンポーネントインターフェース


ターゲット

- CharacterShadowオブジェクトの変換を調整するための参照として機能するオブジェクトを表します。 - デフォルトでは、ZEPETOキャラクターがターゲットとして設定されています。指定されたキャラクターの底に基づいてCharacterShadowオブジェクトの変換が調整されます。

autoSyncTransform

- 影の位置を調整するかどうかを決定するフラグ値です。 - デフォルト値はtrueです。

これにより、ランタイムでZepetoキャラクターの影を制御できます。以下は、影をオンとオフに切り替えるトグルを使用した例のコードです。

TypeScript




Document image