Skip to content

A project that builds showcase webpage for Arknights Live2D-equipped operators. Showcase webpage can be used as a wallpaper.

License

Notifications You must be signed in to change notification settings

Halyul/aklive2d

Repository files navigation

aklive2d

A project that builds showcase webpage for Arknights Live2D-equipped operators. Showcase webpage can be used as a wallpaper for Wallpaper Engine on Windows or Plash on macOS (not tested).

Softwares

  • For Windows users: Use Wallpaper Engine or other softwares that support using webpage as desktop wallpaper.
  • For macOS users: Use Plash, however, I don't have macOS machine, so your mileage may vary.
  • For Linux users: You power user should be able to find your solutions!

Supported Operators

A list of supported operators can be found at Directory page.

Usage

Command Line Tool

$ pnpm run update
Update data from official website and github repo
$ pnpm run lint
ESLint and StyleLint
$ pnpm run build
Build showcase webpage for all operators and directory page
$ name=<name> pnpm run build
Build showcase webpage for an operator
$ name=<name> id=<id> pnpm run init
To initialize folder and config file for an operator
$ name=<name> pnpm run dev:showcase
Run dev server for showcase webpage for an operator
$ name=<name> pnpm run preview:showcase
Preview built showcase webpage for an operator
$ pnpm run dev:directory
Run dev server for directory webpage
$ name=<name> pnpm run preview:directory
Preview built directory webpage
$ pnpm run preview
Preview built all webpages
$ name=<name> id=<id> pnpm run init
Init new operator config
$ pnpm run download:game
Download latest game data from Arknights
$ pnpm run download:data
Download extracted game assets

Webpage & JavaScript

Add query string aklive2d to bring up the settings panel to adjust your settings. Settings can be adjusted under window.aklive2d or by dispatching custom events (under window.aklive2d.events) to document. Examples can be found at apps/showcase/src/components/wallpaper_engine.js.

document.dispatchEvent(
    window.aklive2d.events.RegisterConfig.handler({
        target: 'background',
        key: 'default',
        value: 'bg_sui_1.png',
    })
)

Using JS events to change settings is recommended.

Config

General Config

in packages/config/config.yaml

Settings for the whole project

site_id: aklive2d
akassets:
    project_name: akassets
    url: https://akassets.pages.dev
insight:
    id: aklive2d
    url: https://insight.halyul.dev/on-demand.js
module:
    assets:
        config_yaml: config.yaml
        background: background
        music: music
        charword_table: charword_table
        project_json: project_json
    background:
        operator_bg_png: operator_bg.png
    charword_table:
        charword_table_json: charword_table.json
    music:
        music_table_json: music_table.json
        display_meta_table_json: display_meta_table.json
        audio_data_json: audio_data.json
    official_info:
        official_info_json: official_info.json
    operator:
        operator: operator
        config: config
        template_yaml: _template.yaml
        config_yaml: config.yaml
        portraits: _portraits
        logos_assets: _logos
        logos: logos
        directory_assets: _directory
        MonoBehaviour: MonoBehaviour
        Texture2D: Texture2D
        title:
            zh-CN: '明日方舟:'
            en-US: 'Arknights: '
    project_json:
        project_json: project.json
        preview_jpg: preview.jpg
        template_yaml: project_json.yaml
    wrangler:
        index_json: index.json
    vite_helpers:
        config_json: config.json
app:
    showcase:
        public: public
        assets: assets
dir_name:
    data: data
    dist: dist
    extracted: extracted
    auto_update: auto_update
    voice:
        main: voice
        sub:
            - name: jp
              lang: JP
              lookup_region: zh_CN
            - name: cn
              lang: CN_MANDARIN
              lookup_region: zh_CN
            - name: en
              lang: EN
              lookup_region: en_US
            - name: kr
              lang: KR
              lookup_region: ko_KR
            - name: custom
              lang: CUSTOM
              lookup_region: zh_CN
directory:
    assets_dir: _assets
    title: AKLive2D
    voice: jp/CN_037.ogg
    error:
        files:
            - key: build_char_128_plosis_epoque#3
              paddings:
                  left: -120
                  right: 150
                  top: 10
                  bottom: 0
            - key: build_char_128_plosis
              paddings:
                  left: -90
                  right: 100
                  top: 10
                  bottom: 0
        voice:
            file: CN_034.ogg
            target: error.ogg

Operators Config

in packages/operator/config.yaml

chen: !include config/chen.yaml
dusk: !include config/dusk.yaml
dusk_everything_is_a_miracle: !include config/dusk_everything_is_a_miracle.yaml
ling: !include config/ling.yaml
nearl: !include config/nearl.yaml
nian: !include config/nian.yaml
nian_unfettered_freedom: !include config/nian_unfettered_freedom.yaml
phantom_focus: !include config/phantom_focus.yaml
rosmontis: !include config/rosmontis.yaml
skadi: !include config/skadi.yaml
skadi_sublimation: !include config/skadi_sublimation.yaml
w: !include config/w.yaml
...

Operator Config

in packages/operator/config/<name>.yaml

filename: dyn_illust_char_1013_chen2 # live2d assets name
logo: logo_rhodes_override # operator logo
fallback_name: char_1013_chen2_2 # fallback image name
viewport_left: 0 # live2d view port settings
viewport_right: 0
viewport_top: 0
viewport_bottom: 0
invert_filter: false # operator logo invert filter
codename: # operator name
  zh-CN: 假日威龙陈
  en-US: Ch'en/Chen the Holungday
use_json: false # whether the spine skel is in json format

LICENSE

The LICENSE file applies to all files unless listed specifically.

LICENSE_SPINE file applies to following files including adapted code for this repo:

  • apps/module/libs/spine-player.css
  • apps/module/libs/spine-player.js

Copyright © 2017 - 2023 Arknights/Hypergryph Co., Ltd applies to following files:

  • all files under packages/operator/data folder and its sub-folders
  • all files under packages/music/data folder and its sub-folders
  • all files under packages/background/data folder and its sub-folders

Instructions on Extracting In-Game Assets

Assets Name Location Type
Logos spritepack/ui_camp_logo_0.ab Sprite
Logo Mapping gamedata/art/handbookpos_table.json3 TextAsset
Dynaimc Character arts/dynchars/ Texture2D & TextAsset
Static Image Operator: chararts/ ; Skin: skinpack/ Texture2D
Background arts/ui/homebackground/wrapper/ Sprite
Voice Clips audio/sound_beta_2/voice{_*}/ AudioClip
Voice Lines3 gamedata/excel/charword_table.ab TextAsset
Portrait Images1 arts/charportraits Texture2D & MonoBehaviour
Home Music2 audio/sound_beta_2/music AudioClip

1: portrait_hub is required to locate the image

2: gamedata/excel/display_meta_table.json->homeBackgroundData3 and gamedata/excel/audio_data.json3 is required to locate the music.

3: Data is encryped, decryped version can be obtained from ArknightsGameData for the Chinese version and Kengxxiao/ArknightsGameData_YoStar for other regions.

About

A project that builds showcase webpage for Arknights Live2D-equipped operators. Showcase webpage can be used as a wallpaper.

Resources

License

Stars

Watchers

Forks