-
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
324 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
185 changes: 185 additions & 0 deletions
185
.docs/content/posts/2024-06-27-one-year-since-stable-release.ja.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
--- | ||
weight: 1 | ||
title: "v1.0.0一周年を記念してちょっと歴史を振り返る" | ||
--- | ||
|
||
AAO: Avatar Optimizer v1.0.0一周年を記念してちょっと歴史を振り返ってみることにしてみる。 | ||
|
||
書いた人はanatawa12なので「私」はanatawa12を指す。 | ||
|
||
## Avatar Optimizerが生まれるまで {#before-born} | ||
|
||
### 2021年11月 {#2021-11} | ||
|
||
私がVRChatを始める。 | ||
このときにPublic (現在のLegacy欄)アバターから 2a7sちゃんを選んで使うことにした。 | ||
そしてこの子はSDK2アバターでかつ、パーツが結合された状態でfbxが組まれていた。 | ||
このときの経験がSkinned Mesh Rendererを増やすことに対する待避感につながってる気がする。 | ||
|
||
### 2022年 {#2022} | ||
|
||
和服を作ってた間などに(?)fbx更新でモデルがひどくなることの対策にprefab variantが使えることを知った。 | ||
それで非破壊で服を着せるツールが欲しくなってたりした。 | ||
|
||
また、買っただけになってたアバターなどをアップロードを始めてメッシュの分割などが多くて結合するツールが欲しくなってたが、 | ||
お金はかけたくなかった。 | ||
|
||
### 2022年11月末 {#2022-11} | ||
|
||
Modular Avatar v1.0.0がリリースされる。 | ||
|
||
{{< tweet user=bd_j id=1596993180573978625 >}} | ||
|
||
当日中にvpmでインストールして使ってみて、すぐに良さそうだなってなった。 | ||
と同時にissueとか書き始める([PhysBone Blocker]とか)。 | ||
|
||
## Avatar Optimizerが生まれる {#born} | ||
|
||
### pre-0.0.1 (2022年12月末) {#pre-0.0.1} | ||
|
||
Modular Avatarを読んでできそうということで、PhysBoneやMerge Skinned Meshのマージをするツールを作り始める。 | ||
当初はMergerという名前で作っていた。 | ||
|
||
(この名残で https://github.com/anatawa12/Merger というリンクでからAvatar Optimizerに飛べるようになっています。) | ||
|
||
{{< tweet user=anatawa12_vrc id=1607780946845257730 >}} | ||
|
||
### 0.0.1~0.1.3 (2023年1月~2月) {#0.0.1-0.1.3} | ||
|
||
マージする以外にBlendShapeの固定機能等をいれることにしてAvatarOptimizerに改名し、初回リリースをする。 | ||
https://github.com/anatawa12/AvatarOptimizer/releases/tag/v0.0.1 | ||
|
||
READMEに書かれてる通り、以下のコンポーネントが当時あった。 | ||
|
||
- Merge Skinned Mesh | ||
- Merge PhysBone | ||
- Freeze BlendShape | ||
- Merge Bone | ||
- Clear Endpoint Position | ||
|
||
その後、0.0.2ではMerge ToonLit Material, 0.1.1ではRemove Mesh in Boxを追加し、バグ修正でリリースを行っていた。 | ||
|
||
## Avatar Optimizerが広まり始める {#begin-spread} | ||
|
||
### v0.2.0開発中 & 0.1.4 (2023年2月頭) {#0.2.0-developing} | ||
|
||
保存形式の破壊的変更を行うため、v0.2.0を開発中、Avatar Optimizerの紹介記事が書かれる。 | ||
[ModularAvatarとAvatarOptimizerを使ったアバター編集|かんとう](https://note.com/tazutazu/n/na52579a6656f) | ||
|
||
当時の私の叫び | ||
|
||
{{< tweet user=anatawa12_vrc id=1629057081335771136 >}} | ||
|
||
破壊的変更に対応させるために 0.1.4 で破壊的変更への準備リリースを急遽用意し、マイグレーションの仕組みの開発を決定 | ||
|
||
## 継続的な開発 {#continue-develop} | ||
|
||
### v0.2.0 (2023年3月頭) {#0.2.0} | ||
|
||
いくつかのprereleaseを経て、v0.2.0をリリースした。 | ||
|
||
この時期からそれなりにクオリティを保ったソフトウェアとして開発を進めていくことになる。 | ||
そのため、Changelogの管理やprereleaseの仕組みを追加したのがこの時期。 | ||
|
||
### v0.2.2 (2023年3月中旬) {#0.2.2} | ||
|
||
Make Childrenコンポーネントを追加。 | ||
v1.0.0まで残るのですが、今となってはこれをAAOに入れたのは後悔してる。 | ||
(当初はNDMFがなく、Apply on playがクソ大変だったのでAvatar Optimizerに入れちゃってた。) | ||
|
||
### v0.2.6 (2023年3月末) {#0.2.7} | ||
|
||
多言語サポートの内部的な追加を行う(が、日本語の追加は0.4.0まで延びる)。 | ||
(誰か和訳作ってくれ〜と思ってたけど誰もやってくれなかった。) | ||
|
||
### v0.3.2 (2023年5月) {#0.3.2} | ||
|
||
公式ドキュメントを作成。 | ||
|
||
書くの面倒だなぁって思いながら書いていた。 | ||
|
||
### v0.4.0-v0.4.12 (2023年6月) {#0.4.0-0.4.6} | ||
|
||
日本語の追加やMergePhysBoneの保存形式の変更を行ってた。 | ||
|
||
v1.0.0を見据えて色々準備してた。 | ||
|
||
## ついに安定版 {#stable} | ||
|
||
### v1.0.0 (2023年6月末) {#1.0.0} | ||
|
||
半月ほどのprereleaseを経て、v1.0.0をリリースした。 | ||
|
||
やっとできたって感じがあった。 | ||
さやまめさんに背中押されたりして大々的に告知を打ったら拡散され方に少し恐れてた | ||
|
||
{{< tweet user=anatawa12_vrc id=1673650862160482304 >}} | ||
|
||
### v1.1.x (2023年7月中旬~) {#1.1.x} | ||
|
||
このタイミングでModular AvatarのApply on Playを上書きする仕組みなどを追加した。 | ||
|
||
当初は内部的な仕組みを公開するつもりがある程度あったけど、後にNDMFで全く別な形になる。 | ||
|
||
### v1.2.0 (2023年7月中旬) {#1.2.x} | ||
|
||
今日のAvatar Optimizerの目玉機能となった Trace and Optimize の前身となる Automatic Configuration 機能を追加した。 | ||
|
||
当時は FreezeBlendShape の自動的に設定を行っていた。この時点では手動設定のできるものを自動的に設定する機能のみであったため、 | ||
Automatic Configuration という名前になっていた。 | ||
|
||
当初はここまで目玉になるとは思ってなかった。 | ||
|
||
### v1.3.x (2023年8月中旬~) {#1.3.x} | ||
|
||
使われていないものの削除のように自動設定以上のものが追加されたため、Automatic Configuration が Trace and Optimize に改名された。 | ||
|
||
また、Avatar Optimizerの名前がAnatawa12's Avatar Optimizerとされ、AAOという略称も定まった。 | ||
|
||
当初からAnatawa12'sを入れるのが嫌いじゃなかったので後に`AAO: Avatar Optimizer`と再帰的接頭語に変更された。 | ||
|
||
### v1.4.x (2023年9月頭~) {#1.4.x} | ||
|
||
Trace and Optimizeで使っていたAnimatorのパーサーが強化された。 | ||
|
||
このリリースは主にバグ修正だけど大きな変更があったからminorにした記憶がある。 | ||
|
||
### v1.5.x (2023年10月頭~) {#1.5.x} | ||
|
||
Modular Avatarなどの非破壊ツール向けのフレームワークである[Non Destructive Modifying Framework][NDMF]がリリースされ、合わせてAAOもNDMFに対応した。 | ||
|
||
また、この時期から本格的に Trace and Optimize に注力するようになる。 | ||
|
||
### v1.6.x (2023年11月末~) {#1.6.x} | ||
|
||
Trace and Optimizeへのコンポーネント対応を追加するためのAPIを整備した。 | ||
|
||
また、Trace and OptimizeにメッシュのオンオフにPhysBoneが追従する機能を追加した。 | ||
|
||
#### v1.6.3 (2023年12月初旬) {#1.6.3} | ||
|
||
VRCSDK 3.5.0の3時間betaに振り回されたリリース | ||
|
||
CHANGELOGより引用 | ||
|
||
> - I was planned to release this changes while VRCSDK 3.5.0 is in beta. | ||
> - However, VRCSDK 3.5.0 beta was only 3 hours so I could not. | ||
このVRCSDKの動きが vrc-get-gui / ALCOM を作る原動力になった。 | ||
|
||
### v1.7.x (2024年4月中旬~現在) {#1.7.x} | ||
|
||
Animator Optimizerや自動 Merge Skinned Mesh、コンポーネント自身のAPI、Remove Mesh by Mask等とともにリリース。 | ||
|
||
VRCSDK 3.5.0 + VCC 2.2.0の酷さに困って vrc-get-gui (現ALCOM) を作ってたので間が空いてしまった。 | ||
|
||
結構長い間空いちゃったなぁと思いつついろんな最適化を入れれてるので満足してる。 | ||
|
||
## 未来 {#future} | ||
|
||
今後はTrace and Optimizeの機能を強化していこうかなと思ってる。 | ||
特にテクスチャメモリ周りを一切触れていないのでうまいことやりたいなぁと思ってる。 | ||
|
||
[ma-1.0.0-tw]: https://x.com/bd_j/status/1596993180573978625 | ||
[PhysBone Blocker]: https://github.com/bdunderscore/modular-avatar/issues/104 | ||
[NDMF]: https://ndmf.nadena.dev/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
|
||
<ul> | ||
<li class="book-section-flat"> | ||
{{ if eq "ja" $.Site.Language.Lang }} | ||
<span>Blog Posts</span> | ||
{{ else }} | ||
<span>Blog Posts(日本語)</span> | ||
{{ end }} | ||
{{ with (index .Sites 1).GetPage "posts" }} | ||
<ul> | ||
{{ range (where .Pages "Params.bookhidden" "ne" true) }} | ||
{{ $current := eq $ . }} | ||
<li> | ||
<a href="{{ .Page.RelPermalink }}" class="{{ if $current }}active{{ end }}"> | ||
{{- partial "docs/title" .Page -}} | ||
</a> | ||
</li> | ||
{{ end }} | ||
{{ end }} | ||
</ul> | ||
</li> | ||
</ul> | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
name: Update Website | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
version: | ||
description: "The version name in the documentation" | ||
required: true | ||
type: string | ||
prerelease: | ||
description: "Is the release is prerelease or not" | ||
required: false | ||
default: true | ||
type: boolean | ||
|
||
publish: | ||
description: "True to publish release to git, vpm. if false, this creates release asset only" | ||
type: boolean | ||
required: false | ||
|
||
env: | ||
PKG_NAME: com.anatawa12.avatar-optimizer | ||
SOMETHING_RELEASER_SEMVER: 1 | ||
|
||
concurrency: | ||
group: publish | ||
cancel-in-progress: true | ||
|
||
permissions: write-all | ||
|
||
jobs: | ||
create-release: | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: actions-github-app | ||
|
||
env: | ||
VERSION: ${{ inputs.version }} | ||
PRERELEASE: ${{ inputs.prerelease }} | ||
|
||
steps: | ||
- uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
- uses: actions/checkout@v4 | ||
with: | ||
token: ${{ steps.app-token.outputs.token }} | ||
submodules: recursive | ||
- name: Setup Hugo | ||
uses: peaceiris/actions-hugo@v2 | ||
with: | ||
hugo-version: '0.111.3' | ||
extended: true | ||
|
||
# remember update release.yml | ||
- name: Prepare build folder | ||
run: mkdir build | ||
|
||
- name: Update .docs/config.toml | ||
run: sed -i'.bak' -e "s/(SNAPSHOT)/($VERSION)/" .docs/config.toml && rm .docs/config.toml.bak | ||
|
||
- name: Build docs as a beta docs | ||
working-directory: .docs | ||
run: ./build.sh 'https://vpm.anatawa12.com/avatar-optimizer/beta' "$VERSION" | ||
|
||
- name: Copy to beta dir if it's release | ||
if: ${{ !fromJSON(env.PRERELEASE) }} | ||
working-directory: .docs | ||
run: mkdir -p static && mv public static/beta | ||
- name: Build docs as a release docs if it's release | ||
if: ${{ !fromJSON(env.PRERELEASE) }} | ||
working-directory: .docs | ||
run: ./build.sh 'https://vpm.anatawa12.com/avatar-optimizer' "$VERSION" | ||
|
||
- name: zip docs | ||
run: cd .docs/public && zip ../../build/website.zip -r . | ||
- name: Upload docs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: website | ||
path: .docs/public | ||
|
||
- name: Restore .docs/config.toml | ||
run: git restore --staged --worktree .docs/config.toml | ||
|
||
- name: Upload zip file | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
run: | | ||
WEBSITE_NAME="website-${GITHUB_RUN_ID}.zip" | ||
mv build/website.zip "build/$WEBSITE_NAME" | ||
gh release upload "v$VERSION" "build/$WEBSITE_NAME" | ||
publish-vpm: | ||
uses: anatawa12/vpm.anatawa12.com/.github/workflows/update-package.yml@master | ||
needs: create-release | ||
if: inputs.publish | ||
with: | ||
#version: No version to update package only | ||
environment: vpm.anatawa12.com | ||
website_zip: https://github.com/anatawa12/AvatarOptimizer/releases/download/v${{ inputs.version }}/website-${{ github.run_id }}.zip | ||
website_path: ${{ inputs.prerelease && 'beta' || '' }} | ||
secrets: | ||
TOKEN: ${{ secrets.VPM_GITHUB_PAT }} |