Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
efdd25a
support jp zh reademe
jjiill888 May 28, 2024
9590e0e
provide winpkg example
jjiill888 May 28, 2024
393893f
release-tool
jjiill888 May 28, 2024
c689ace
up cubismsdk4.1 to 5
jjiill888 May 28, 2024
856daf7
fix swing version in wayland
jjiill888 May 28, 2024
bcc3cc0
release-tool need openseeface file
jjiill888 May 28, 2024
6ff80ac
support 120fps webcam facetracking
jjiill888 May 28, 2024
68a4f19
fix webcam
jjiill888 May 28, 2024
9428300
Optimise animation update logic
jjiill888 Dec 30, 2024
f7e9830
Speed up model import
jjiill888 Jan 7, 2025
c62198e
Provides default avatar functionality on the ui
jjiill888 Jan 7, 2025
ef035e3
how to using default avatar
jjiill888 Jan 7, 2025
a3f1413
add model config gui
jjiill888 Jan 14, 2025
b227f92
Fixed the problem of messy json import caused by the character set
jjiill888 Jan 14, 2025
96803e6
Emoji shortcut mapping
jjiill888 Jun 10, 2025
23e04f4
update readme
jjiill888 Jun 10, 2025
1020895
update readme
jjiill888 Jun 10, 2025
aa1217b
update readme
jjiill888 Jun 10, 2025
72df899
update console output word
jjiill888 Jun 10, 2025
67d0812
change jvm start command
jjiill888 Jun 10, 2025
8a29b72
Body movement and full-body sway driven by face tracking
jjiill888 Jun 11, 2025
50bf8d8
Fix incorrect averaging logic in OpenSeeFaceDataConverter, Eye-openne…
jjiill888 Jun 13, 2025
16baecc
Last avatar support
jjiill888 Jun 13, 2025
1a4ab2b
Enabling the checkbox in the face tracking panel writes a file so t…
jjiill888 Jun 14, 2025
f89ef74
green background
jjiill888 Jun 14, 2025
1b5f152
Updated the Swing and SWT face tracking panels to start OpenSeeFace a…
jjiill888 Jun 14, 2025
92e9987
LoadInitialAvatar now runs after the shell is visible, letting the ap…
jjiill888 Jun 14, 2025
17d430c
Added a method setTransparentBackground in SpriteControl to toggle th…
jjiill888 Jun 14, 2025
ce5a20b
Implemented a new checkbox in the face‑tracking panels to toggle simu…
jjiill888 Jun 14, 2025
432e398
update readme
jjiill888 Jun 14, 2025
c613af1
fix release fail
jjiill888 Jun 16, 2025
832a53d
fix release fail
jjiill888 Jun 16, 2025
9591b92
fix release fail@3
jjiill888 Jun 16, 2025
befb601
fix release fail@4
jjiill888 Jun 16, 2025
f9eb529
fix release fail@5
jjiill888 Jun 16, 2025
a54284a
fix release fail@6
jjiill888 Jun 16, 2025
95decb0
fix release fail@7
jjiill888 Jun 16, 2025
61017d6
fix release fail@8
jjiill888 Jun 16, 2025
ccb1f10
fix release fail@9
jjiill888 Jun 16, 2025
7ae2f5b
new java start command
jjiill888 Jun 16, 2025
37ac6e2
add javafx module@1
jjiill888 Jun 16, 2025
d26e97d
add javafx module@2
jjiill888 Jun 16, 2025
9b3b818
fix release fail@10
jjiill888 Jun 16, 2025
d4347a4
Create JavaFXAvatarDisplayArea with OpenGL Canvas
jjiill888 Jun 17, 2025
508fdcd
Add JavaFX toolbar mirroring SWTToolbar
jjiill888 Jun 17, 2025
7c47ade
Fix JavaFX toolbar
jjiill888 Jun 17, 2025
15a9513
Add dark theme to JavaFX example
jjiill888 Jun 17, 2025
c6182bd
Add JavafxAvatarControlPanel
jjiill888 Jun 17, 2025
df8de20
Add load avatar
jjiill888 Jun 17, 2025
884e4b8
fix load avatar
jjiill888 Jun 17, 2025
b2deb69
Invoke display() on OpenGL thread in switchAvatar
jjiill888 Jun 17, 2025
1491bbe
NEW README
jjiill888 Jun 17, 2025
e8231be
NEW README
jjiill888 Jun 17, 2025
c8a8ae3
NEW README
jjiill888 Jun 17, 2025
cdb2c53
Enable automatic recording background selection
jjiill888 Jun 17, 2025
4595a88
update using_guideline.md
jjiill888 Jun 17, 2025
0fe531b
update using_guideline.md
jjiill888 Jun 17, 2025
cfc396e
XWayland support
jjiill888 Jun 17, 2025
004d5f7
Update Using_Guideline.md
jjiill888 Jun 19, 2025
403d975
Added an eyeBlinkEnabled switch to face tracking so eye openness upda…
jjiill888 Jun 19, 2025
a3b0ef1
test openseeface eye gaze
jjiill888 Jun 20, 2025
18ec829
add webcam reset
jjiill888 Jun 20, 2025
a956716
Added a JVM shutdown hook to close the facetracker whenever the appli…
jjiill888 Jun 20, 2025
cb43b05
Introduced UI-hiding capture mode for the SWT demo, showing how the m…
jjiill888 Jun 20, 2025
f16cac9
Updated the capture mode logic so the toolbar and status bar are excl…
jjiill888 Jun 21, 2025
ed53cde
Inserted a “Webcam reset” button directly below the camera selector a…
jjiill888 Jun 21, 2025
93b91e8
Support running dual face tracking instances on a single machine
jjiill888 Jun 22, 2025
673a6fe
Created a new release task that generates a “start.sh” script for Lin…
jjiill888 Jun 28, 2025
f71e3e2
upgrade scala2 to scala3
jjiill888 Aug 29, 2025
8b83e28
update doc
jjiill888 Aug 29, 2025
d1c26ee
Update README.md
jjiill888 Aug 29, 2025
c159f48
fix bug
jjiill888 Aug 30, 2025
04986ff
debug some model load problems
jjiill888 Aug 30, 2025
3ed2dca
Add window position and size saving functionality
jjiill888 Aug 30, 2025
38af79f
Update README.md
jjiill888 Aug 30, 2025
414e89e
add bundled JRE support
jjiill888 Aug 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 13 additions & 9 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
branches: [ "master" ]

# Allows you to run this workflow manually from the Actions tab
branches: ["master"]
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
Expand All @@ -19,19 +20,19 @@ jobs:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
EXCLUDE_TEST_TAG: moe.brianhsu.AudioOutputTest
container:
image: openjdk:11
image: openjdk:17-slim-bullseye
steps:
- uses: actions/checkout@v3
- name: Install packages
run: |
apt-get update -yqq
apt-get install apt-transport-https -yqq
apt-get install -yqq apt-transport-https curl gnupg
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add
apt-get update
apt-get -y install sbt
apt-get -y install xorg-dev libglu1-mesa libgl1-mesa-dev xvfb libxinerama1 libxcursor1 libswt-gtk-4-java libswt-gtk-4-jni libxml2-utils bc zip
apt-get -y install xorg-dev libglu1-mesa libgl1-mesa-dev xvfb libxinerama1 libxcursor1 libswt-gtk-4-java libswt-gtk-4-jni libxml2-utils bc zip gnupg

- name: Setup Git Information
run: |
Expand All @@ -45,15 +46,15 @@ jobs:

- name: Archive Test Results
if: always()
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: test-results
path: target/test-reports-html/

- name: Set Coverage rate for badges
id: CoverageExport
run: |
echo "::set-output name=COVERAGE_RATE::$(xmllint --xpath "string(/scoverage/@branch-rate)" target/scala-2.13/scoverage-report/scoverage.xml)"
echo "COVERAGE_RATE=$(xmllint --xpath "string(/scoverage/@branch-rate)" target/scala-2.13/scoverage-report/scoverage.xml)" >> $GITHUB_OUTPUT

- name: Release
run: |
Expand All @@ -63,7 +64,7 @@ jobs:
- name: Export Version
id: VersionExport
run: |
echo "::set-output name=CURRENT_VERSION::$(git tag | tail -n1)"
echo "CURRENT_VERSION=$(git tag | tail -n1)" >> $GITHUB_OUTPUT

- name: Prepare mvn repository
run: |
Expand Down Expand Up @@ -94,6 +95,8 @@ jobs:
message: Update badages for ${{ steps.VersionExport.outputs.CURRENT_VERSION }}

- name: Assembly JAR
apt-get -y install xorg-dev libglu1-mesa libgl1-mesa-dev xvfb libxinerama1 libxcursor1 libswt-gtk-4-java libswt-gtk-4-jni libxml2-utils bc
- name: Compile and Test
run: |
./distclean
sbt clean assembly
Expand All @@ -104,19 +107,19 @@ jobs:


- name: Upload Swing Version
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Live2DForScala-Swing
path: Live2DForScala-Swing-${{ steps.VersionExport.outputs.CURRENT_VERSION }}.zip

- name: Upload SWT Linux Version
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Live2DForScala-SWT-Linux
path: Live2DForScala-SWT-Linux-${{ steps.VersionExport.outputs.CURRENT_VERSION }}.tar.gz

- name: Upload SWT Windows Version
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Live2DForScala-SWT-Windows
path: Live2DForScala-SWT-Windows-${{ steps.VersionExport.outputs.CURRENT_VERSION }}.zip
Expand All @@ -128,3 +131,4 @@ jobs:
branch: ${{ github.ref }}


xvfb-run --auto-servernum sbt compile test
6 changes: 3 additions & 3 deletions .github/workflows/unitTest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ jobs:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
EXCLUDE_TEST_TAG: moe.brianhsu.AudioOutputTest
container:
image: openjdk:11
image: openjdk:17-slim-bullseye
steps:
- uses: actions/checkout@v3
- name: Install packages
run: |
apt-get update -yqq
apt-get install apt-transport-https -yqq
apt-get install -yqq apt-transport-https curl gnupg
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add
Expand All @@ -39,7 +39,7 @@ jobs:

- name: Archive Test Results
if: always()
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: test-results
path: target/test-reports-html/
109 changes: 109 additions & 0 deletions Developing_Guideline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Developing Guideline

This guide describes how to build, test, and contribute to the Live2D For Scala forked project.

---

## Prerequisites

- **Java Development Kit (JDK) 21**
- Windows: [Microsoft Build of OpenJDK](https://learn.microsoft.com/en-us/java/openjdk/download)
- Linux: Install via your distro's package manager
- macOS: `brew install openjdk@21`

- **SBT (Scala Build Tool)**
- Installation guide: [https://www.scala-sbt.org/download.html](https://www.scala-sbt.org/download.html)

---

## Build & Test Instructions

### 1. Clone the Repository

```bash
git clone https://github.com/jjiill888/Live2DForScala.git
cd Live2DForScala
```

### 2. Run SBT Console

```bash
sbt
```

### 3. Compile the Code

```sbt
compile
```

### 4. Run Unit Tests

```sbt
test
```

> ⚠ On macOS, SWT + LWJGL-based tests may fail due to platform limitations.

---

## Running Demo Applications

Inside the SBT console, use:

```sbt
exampleSwing/run # Run Swing version
exampleSWTLinux/run # Run SWT version on Linux
exampleSWTWin/run # Run SWT version on Windows
```

---

## Packaging with Assembly

To generate executable JAR files:

```sbt
exampleSwing/assembly
exampleSWTLinux/assembly
exampleSWTWin/assembly
```

---

## Creating a Release Package

To bundle the app with dependencies and OpenSeeFace face tracking engine:

```sbt
releaseswing # Swing version
releaselinux # SWT Linux version
releasewin # SWT Windows version
```

You may ignore errors related to existing directories on reruns.

---

## Project Structure Overview

```
modules/
├── core # Core rendering and Live2D logic
├── joglBinding # JOGL OpenGL binding
├── lwjglBinding # LWJGL binding
├── swtBinding # SWT integration
└── examples/
├── swing # Swing-based demo
├── swt # SWT-based demo
└── swt-*-bundle # Platform-specific bundles
```

---

## Notes

- Make sure your JDK version is 21 (some modules may not run correctly on older versions).
- First SBT run may take a while as it downloads dependencies.

For more details, see: [`Old_README.md`](./Old_README.md)
6 changes: 4 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Copyright (c) 2022 Brian Hsu
MIT License

Copyright (c) 2025 jjiill888

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -16,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
Loading
Loading