あなたの世界を作りなさい
プレイヤーとキャラクター: 上級
ZEPETOキャラクターの衝突エリアの変更
3 分
zepetoキャラクターの体型に関係なく、キャラクターコントローラーの衝突エリアのサイズはすべてのキャラクターで一貫しています。 キャラクターコントローラーの衝突エリアは基本的な体型に合わせて調整されており、円柱形です。 ランタイムのシーンモードでは、生成されたzepetoキャラクターを選択することで、キャラクターコントローラーの衝突エリアを表示できます。 zepetoキャラクターの高さは、体型や装備しているアイテムによって異なる場合があります。 基本的な体型から大きく異なる場合、衝突エリアが不自然に見えることがあります。 📘 以下のガイドを参照してください。 \[ あなたのキャラクターの身長を測る docid\ tjxasghfrqn5cvd7 sfbt ] そのような場合、ランタイム中にスクリプトを使用してキャラクターコントローラーのコライダー属性値を変更できます。 高さ 衝突エリアの高さ 中心 衝突エリアの中心軸 半径 衝突エリアの半径 例で使用されている値は、テストワールドとテストアカウント用に設定されています。設定をあなたのワールドに合わせて調整してください。例では、半径の値は変更されていません。 import {humanbodybones, vector3, waitforendofframe, waitforseconds } from 'unityengine'; import {knowsockets, localplayer, zepetoplayers, zepetoplayer } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class changecollider extends zepetoscriptbehaviour { private localplayer localplayer; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { this localplayer = zepetoplayers instance localplayer; // ローカルキャラクターの高さを測定 this startcoroutine(this cogetzepetoheight(this localplayer zepetoplayer)); }); } cogetzepetoheight(zepeto zepetoplayer) { yield new waitforendofframe(); const headposition = zepeto character getsocket(knowsockets head upper) position; const leftfootposition = zepeto character zepetoanimator getbonetransform(humanbodybones leftfoot) position; const rightfootposition = zepeto character zepetoanimator getbonetransform(humanbodybones rightfoot) position; const charactercenter = vector3 lerp(leftfootposition, rightfootposition, 0 5); const characterheight = vector3 distance(headposition, charactercenter); // ローカルキャラクターの高さ console log(characterheight); // 基本的な体形の高さを約0 85と仮定して、高さと中心点を比率に基づいて設定 let controllerheight = characterheight / 0 85 1 2; let controllercentery = controllerheight / 2; this localplayer zepetoplayer character charactercontroller height = controllerheight; this localplayer zepetoplayer character charactercontroller center = new vector3(0, controllercentery, 0); } } 基本的なスクリプトは、キャラクターコントローラーにアクセスし、プロパティの値を変更することを含みます: this localplayer zepetoplayer character charactercontroller height = number; this localplayer zepetoplayer character charactercontroller center = vector3; 特定のユニークアイテムを着用しているアバターの高さを正しく測定できない場合があります。