ZEPETOキャラクター
ZEPETOキャラクターは、ワールドシーンに読み込むための基本的なZEPETOキャラクターインスタンスユニットです。
ZepetoCharacterを制御するには、スクリプトに次のインポート文を追加します。
この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に興味がある場合は、ドキュメントを参照してください:
例を実行すると、左側のCharacterModelが以下のようにAnimator ControllerとCharacter Controllerコンポーネントなしで作成されることがわかります。
シーン内のキャラクターインスタンスからのスクリプトを通じて、キャラクターを直接制御できるインターフェースが提供されます。
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()が実行されると、ユーザーの制御入力が再びキャラクター制御に適用されます。 |
例を実行すると、クローンキャラクターが指定されたアクションを次のように順番に実行するのが見えます。
📘 次のガイドを参照してください。 [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 |
API | 説明 |
---|---|
StateMachine.constraintStateAnimation | ZEPETO.Worldのバージョン1.6.0以降、CharacterStateMachineで再生されるアニメーションの遷移は、Motion V2のCharacterStateに応じてOn/Offできます。 - true : コントローラー入力の影響を受けるZepetoCharacter.CurrentStateをオフにし、希望するアニメーションクリップを制御します。 |
👍 constraintStateAnimationの使用例
- キャラクターに歩行アニメーションの代わりに水泳アニメーションを使用させたい場合は、水泳アニメーションクリップを新しいステートに適用し、constraintStateAnimationを通じてそのステートを固定できます。
- キャラクターを移動させながらジェスチャーアニメーションを使用したい場合は、ジェスチャーアニメーションクリップを新しいステートに適用し、constraintStateAnimationを使用して固定されたステートでキャラクターを移動させることができます。
- これは、Animator Stateに適用されたパラメータ値を一時的に無視しながら特定のアニメーションを強制的に再生したい場合に使用できます。
UnityEngine Animator 関数は ZepetoAnimator の形で利用可能です。
例えば、特定のキャラクターアニメーターの「状態」パラメータに整数値を設定したい場合は、次のように使用できます:
詳細な使用法については、UnityEngine Animator のドキュメントと以下のサンプルスクリプトを参照してください。
📘 UnityEngine Animator https://docs.unity3d.com/ScriptReference/Animator.html
プレイヤーによって制御されるローカルプレイヤー ZEPETO キャラクターのアニメーター制御の例です。
例を実行すると、StateMachine.constraintStateAnimationの値がTrueのとき、CharacterStateMachineで再生されるアニメーションの遷移がオフになるのがわかります。
StateMachine.constraintStateAnimationの値をFalseに設定すると、元の状態に戻ります。
ZEPETO.CharacterControllerパッケージのバージョン1.11.3から、ZepetoCharacter Shadowオブジェクトにアクセスするためのインターフェースが追加されました。
API仕様:
ターゲット | - CharacterShadowオブジェクトの変換を調整するための参照として機能するオブジェクトを表します。 - デフォルトでは、ZEPETOキャラクターがターゲットとして設定されています。指定されたキャラクターの底に基づいてCharacterShadowオブジェクトの変換が調整されます。 |
---|---|
autoSyncTransform | - 影の位置を調整するかどうかを決定するフラグ値です。 - デフォルト値はtrueです。 |
これにより、ランタイムでZepetoキャラクターの影を制御できます。以下は、影をオンとオフに切り替えるトグルを使用した例のコードです。