mirror of
https://github.com/artiemis/artie.moe.git
synced 2026-02-14 17:11:55 +00:00
I love Emilia
This commit is contained in:
parent
6ecb56fe55
commit
fb91251090
@ -1,12 +1,24 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import * as PIXI from "pixi.js";
|
import * as PIXI from "pixi.js";
|
||||||
import { Live2DModel } from "pixi-live2d-display";
|
import { Live2DModel, MotionPriority } from "pixi-live2d-display";
|
||||||
import { onDestroy, onMount } from "svelte";
|
import { onDestroy, onMount } from "svelte";
|
||||||
|
|
||||||
let canvas: HTMLCanvasElement;
|
let canvas: HTMLCanvasElement;
|
||||||
let app: PIXI.Application;
|
let app: PIXI.Application;
|
||||||
let model: Live2DModel;
|
let model: Live2DModel;
|
||||||
|
|
||||||
|
function getRandomModelUrl() {
|
||||||
|
const baseUrl = "https://cdn.arti3.dev/live2d/";
|
||||||
|
const models = [
|
||||||
|
"emilia01/ac_base_emilia01.model3.json",
|
||||||
|
"emilia_nemaki01/ac_base_emilia_nemaki01.model3.json",
|
||||||
|
"emilia_dress01/ac_base_emilia_dress01.model3.json",
|
||||||
|
];
|
||||||
|
|
||||||
|
const choice = models[Math.floor(Math.random() * models.length)];
|
||||||
|
return baseUrl + choice;
|
||||||
|
}
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
(window as any).PIXI = PIXI;
|
(window as any).PIXI = PIXI;
|
||||||
app = new PIXI.Application({
|
app = new PIXI.Application({
|
||||||
@ -17,17 +29,17 @@
|
|||||||
height: 900,
|
height: 900,
|
||||||
});
|
});
|
||||||
|
|
||||||
model = await Live2DModel.from("https://cdn.arti3.dev/live2d/ram/ram.model3.json");
|
model = await Live2DModel.from(getRandomModelUrl());
|
||||||
app.stage.addChild(model as unknown as PIXI.DisplayObject);
|
app.stage.addChild(model as unknown as PIXI.DisplayObject);
|
||||||
|
|
||||||
canvas.style.cursor = "pointer";
|
canvas.style.cursor = "pointer";
|
||||||
|
|
||||||
model.internalModel.motionManager.state.shouldRequestIdleMotion = () => false;
|
model.internalModel.motionManager.state.shouldRequestIdleMotion = () => false;
|
||||||
model.internalModel.motionManager.on("motionFinish", () => {
|
model.internalModel.motionManager.on("motionFinish", () => {
|
||||||
setTimeout(() => model.motion("Idle"), 2000);
|
setTimeout(() => model.motion("Idle", undefined, MotionPriority.IDLE), 2000);
|
||||||
});
|
});
|
||||||
|
|
||||||
model.motion("Idle");
|
model.motion("Idle", undefined, MotionPriority.IDLE);
|
||||||
|
|
||||||
model.scale.set(0.45);
|
model.scale.set(0.45);
|
||||||
model.x = -600;
|
model.x = -600;
|
||||||
@ -5,7 +5,7 @@ import Centerpiece from "../components/Centerpiece.astro";
|
|||||||
import Icons from "../components/Icons.astro";
|
import Icons from "../components/Icons.astro";
|
||||||
import Heart from "../components/Heart.svelte";
|
import Heart from "../components/Heart.svelte";
|
||||||
import Stripe from "../components/Stripe.astro";
|
import Stripe from "../components/Stripe.astro";
|
||||||
import Ram from "../components/Ram.svelte";
|
import Emilia from "../components/Emilia.svelte";
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
@ -18,5 +18,5 @@ import Ram from "../components/Ram.svelte";
|
|||||||
|
|
||||||
<script is:inline src="/vendors/live2dcubismcore.min.js"></script>
|
<script is:inline src="/vendors/live2dcubismcore.min.js"></script>
|
||||||
<script is:inline src="/vendors/live2d.min.js"></script>
|
<script is:inline src="/vendors/live2d.min.js"></script>
|
||||||
<Ram client:only />
|
<Emilia client:only />
|
||||||
</Layout>
|
</Layout>
|
||||||
Loading…
x
Reference in New Issue
Block a user