📘
cluster Game HUD v2の始め方(LT資料とその補完)
これは2024/7/18の「GAME PARK LT会」で発表したときのPDF資料です。
https://vins-jp.sakura.ne.jp/pdf/game_hud_v2.pdf
上記のPDFの中にあるコード
PDFでは画像になっているコードを以下に貼り付けます。
PDFと重複する内容もありますが、少しTipsも書いています。
$.onRide((isGeton, player) => {
if (isGeton) {
$.setPlayerScript(player);
}
});
const findPlayer = () => {
let players = $.getPlayersNear($.getPosition(), 0.3);
if (players.length > 0) {
$.state.player = players[0];
$.setPlayerScript(players[0]);
$.state.playerFound = true;
}
};
_.onStart(() => {
_.showButton(0, _.iconAsset("icon0"));
_.showButton(1, _.iconAsset("icon1"));
_.showButton(2, _.iconAsset("icon2"));
_.showButton(3, _.iconAsset("icon3"));
targetItem = _.sourceItemId;
_.sendTo(targetItem, "isVR", _.isVr);
});
$.onReceive((messageType, arg, sender) => {
if (messageType === "isVR") {
$.setStateCompat("owner", "isVR", arg);
$.setStateCompat("owner", "isNotVR", !arg);
}
}, {
player: true
});
_.onButton(0, (isDown) => {
if (isDown) {
motionNo = 0;
}
});
_.onButton(1, (isDown) => {
if (isDown) {
motionNo = 1;
}
});
const motions = [
_.humanoidAnimation("anim0"),
_.humanoidAnimation("anim1"),
_.humanoidAnimation("anim2")
];
_.onFrame((deltaTime) => {
if (motionNo >= 0) {
motionProc(deltaTime);
}
});
const motionProc = (deltaTime) => {
let motion = motions[motionNo];
let len = motion.getLength();
motionTick += deltaTime;
if (motionTick > len) {
motionTick -= len;
}
let pose = motion.getSample(motionTick);
_.setHumanoidPoseOnFrame(pose, 1);
};
Discussion