コンテンツにスキップ
Humation
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

カスタマイズ

パーツの選択がどう解決されるか、どの色を変えられるか、マニフェストをもとにピッカー UI を作る方法を説明します。

選択

選択スロットは headbodybottomitemglasses の 5 つで、それぞれにパーツを 1 つずつ指定します。値の書き方は 3 通りあり、どれも同じパーツに解決されます。

{
  head: 'braids';
} // name, scoped to the slot
{
  head: 'head-braids';
} // global alias
{
  head: 'hm1-p-000020';
} // canonical part ID

名前はコードでもプロンプトでも読みやすいのが利点です。保存するデータには、変わることのない正規 ID を使います(状態の保存を参照)。名前の一覧はパーツにあります。

itemglasses には、どちらも none という名前のパーツがあります。アバターに何も付けないときはこれを選びます。

色を変えられるスロットは 6 つです。どのスロットも参照していない部分は色が固定されているので、アクセサリーは独自の配色を保ち、輪郭線だけが stroke の色に連動します。

SlotCSS variableDefault
background--hm-background#F6F5F4
stroke--hm-stroke#000000
hair--hm-hair#000000
skin--hm-skin#FFFFFF
clothes--hm-clothes#FFFFFF
bottom--hm-bottom#000000

background には 'transparent' も指定できます。16 進数の色は、先頭の # があってもなくても受け付けます。

マニフェストからピッカーを作る

マニフェストには UI グループごとのパーツがすでに並んでいて、それぞれのプレビューも描画できます。このデータを map するだけでピッカーが作れるので、パーツ一覧やサムネイルを別に管理する必要はありません。

Body
cropped-shirt
import { createPartPreview, getPartsForUiGroup } from '@humation/core';
import { humation1 } from '@humation/assets-humation-1';

const bodyOptions = getPartsForUiGroup(humation1, 'body').map((part) => ({
  id: part.id,
  name: part.name,
  previewSrc: createPartPreview(humation1, part).toDataUri(),
}));

複数のグループに対応した完成形は、アバタービルダーで確認できます。

このページは役に立ちましたか?