Skip to main content

Component

Dependencies for @arclockproject/mmd-player are

@mui/material @emotion/react @emotion/styled @mui/x-tree-view babylon-mmd @babylonjs/core @babylonjs/havok @babylonjs/materials wanakana

Library currently is limited to rendering one Instance of MMD on a single page

FullScreenMMDPlayer

Example of a full paged MMD Player",

import MMD from "@arclockproject/mmd-player";
// FileBrowser is optional and can be removed!
import FileBrowser from "@arclockproject/common/components/FileBrowser";
Live Editor
<MMD
  maxWidth="1280px"
  maxHeight="720px"
  presets={() => [
    {
      title: "メランコリ・ナイト",
      subTitle: "(Miku Cover)",
      thumbnail: "",
      // Audio source: https://youtu.be/y__uZETTuL8
      music: `${REMOTE.noname0310}/motion/melancholy_night/melancholy_night.mp3`,
      // Motion source: https://www.nicovideo.jp/watch/sm41164308
      vmdCamera: `${REMOTE.base}/メランコリ・ナイト_カメラ.cam.vmd`,
      entities: [
        {
          // Motion source: https://www.nicovideo.jp/watch/sm41164308
          movement: [`${REMOTE.base}/メランコリ・ナイト.chara.vmd`],
          // Model source: https://www.deviantart.com/sanmuyyb/art/YYB-Hatsune-Miku-10th-DL-702119716
          model: {
            file: "yyb_hatsune_miku_10th_v1.02.pmx",
            folder: `${REMOTE.noname0310}/model/yyb_hatsune_miku_10th_ff/`,
          },
        },
      ],
      // Below properties can be excluded if empty (As in "" or [])
      stageFolder: "",
      stagePMX: "",
      entitiesOffset: [],
      entitiesAngle: [],
      actionMemory: [],
    },
  ]}
  rawMMDDetails={() => ({
    pmd: [],
    pmx: [
      `${REMOTE.noname0310}/model/yyb_hatsune_miku_10th_ff/yyb_hatsune_miku_10th_v1.02.pmx`,
    ],
    vmd: [
      `${REMOTE.base}/メランコリ・ナイト_カメラ.cam.vmd`,
      `${REMOTE.base}/メランコリ・ナイト.chara.vmd`,
    ],
  })}
  // FileBrowser is optional and can be removed!
  getFileBrowser={(data) => <FileBrowser {...data} />}
  basePathMMD=""
  loadAudioMeta={(value) => [
    `${REMOTE.base}/${value}.m4a`,
    `${REMOTE.base}/${value}.webp`,
  ]}
  noDebug={false}
/>
Result
Loading...