Skip to content

Commit 6179ed1

Browse files
docs(20250603): change contents to link
1 parent 38b62f4 commit 6179ed1

1 file changed

Lines changed: 1 addition & 169 deletions

File tree

content/ja/posts/2025/20250603-june-roadmap.md

Lines changed: 1 addition & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -45,175 +45,7 @@ categories:
4545
>
4646
> ~~Alice Novel に関しては、機能実装を進めても面白いかもしれません。~~
4747
48-
Alice Novel については、5月末に Microsoft Store にて v0.9.3 が公式リリースされました。v0.9.4 の開発もかなり進んでいるため、これのリリースを早期に対応する予定です。その次のバージョン v0.9.5 では、大規模なリファクタリング、現在の Anproj + Anov for Alice Novel 形式から、後述する commonnovel-spec v0.1.0 で制定した仕様に合わせる予定です。
49-
50-
Alice Console に関しては、Alice Novel と同様に、commonnovel-spec v0.1.0 に適合させることと、`test` (1節に同じ命令が2つ被っている場合に警告) や `format` (命令が1つもない節 (改行) を削除、不要なスペースの削除) などのコマンド実装を考えています。
51-
52-
今までの考えとしては、Anov Syntax for Alice Novel と Anov Syntax for Alice Console の仕様を統一化して Common Novel とし、細かい部分については Flavor (イメージとしては [MFM](https://misskey-hub.net/docs/for-users/features/mfm/)[GFM](https://github.github.com/gfm/)[GLFM](https://docs.gitlab.com/user/markdown/) など) としてアプリケーションごとの個別仕様として定義するつもりでした。(ここでは、"旧 Common Novel 方式"とする)
53-
54-
しかし、Anov Syntax の仕様は、1節ずつ読み込むという特殊方式であり、あまり一般化に向いていません。
55-
56-
そこで、`.ipynb` (Jupyter Notebook) 形式のように、Json を利用する方式を考えました。[^discuss-11](ここでは、"新 Common Novel 方式/Common Novel - Json 方式"とします)
57-
58-
[^discuss-11]: https://github.com/orgs/AliceNovel/discussions/11
59-
60-
これの利用方法としては、今まで通り Anov Syntax で書いた `.anov` ファイルを、Alice Console などで `.an` (`.ns` (Novel Script)?) 形式に変換し、それを Alice Novel や Alice Console、Aqua Notesで読み込むという方式です。(C# を IL に変換するみたいな形です)
61-
62-
今まで:
63-
```mermaid
64-
flowchart TD
65-
66-
anov-novel[.anov - Anov Syntax for Alice Novel] -- Alice Console (pack command) --> anproj[Anproj File-format] --> novel[Alice Novel]
67-
anov-cli[.anov - Anov Syntax for Alice Console] --> console[Alice Console]
68-
```
69-
70-
新方式:
71-
```mermaid
72-
flowchart TD
73-
74-
anov-novel[.anov - Anov Syntax for Alice Novel] -- Alice Console (pack command) --> an[Common Novel - Json-type]
75-
anov-cli[.anov - Anov Syntax for Alice Console] -- Alice Console (pack command) --> an
76-
anov-others[その他の形式] -- 対応する変換ツール --> an
77-
78-
an --> novel[Alice Novel]
79-
an --> console[Alice Console]
80-
an --> web[Aqua Notes]
81-
an --> others[その他のアプリケーション]
82-
```
83-
84-
(Alice Console の場合は、基本 Hot Reload (JIT コンパイル相当) をするので、体感として Common Novel に変換している感じはないが、内部的には変換されている)
85-
86-
結論として、
87-
- Common Novel は Advanced Novel (Anov Syntax) を置き換えるものではない
88-
- Common Novel は Advanced Novel (Anov Syntax) の**処理**を合理化・高速化するための開発方針
89-
- Common Novel の処理系は今まで (Advanced Novel (Anov Syntax)) とはかなり異なる
90-
- 今までは Alice Novel、Alice Console、Aqua Notes では Anov Syntax 自体を直接読み込んでいたが、これからはCommon Novel に切り替え、読み込みの処理速度改善と、汎用性・冗長性の上昇を目指す
91-
92-
なお、具体的な構文は、`.ipynb` (Jupyter Notebook) 形式を参考にしています~~が、`metadata` 項目はなく、今までの `package.json``config.json` として管理する予定です~~ (未定です)。例を以下に表示します:
93-
94-
以前の Anov 形式:
95-
```anov
96-
> green-park.png
97-
- Alice
98-
[Hi, there.]
99-
100-
- Rabbit
101-
[Hi, Alice.]
102-
103-
[Nice to meet you.]
104-
105-
```
106-
107-
新 Common Novel 形式:
108-
```json
109-
{
110-
"cells": [
111-
{
112-
"lines": 1,
113-
"characrter-name": "Alice",
114-
// "character-image": "",
115-
"background-image": "green-park.png",
116-
"messages": "Hi, there."
117-
},
118-
{
119-
"lines": 2,
120-
"characrter-name": "Rabbit",
121-
"background-image": "green-park.png",
122-
"messages": "Hi, Alice."
123-
},
124-
{
125-
"lines": 3,
126-
"characrter-name": "Rabbit",
127-
"background-image": "green-park.png",
128-
"messages": "Nice to meet you."
129-
}
130-
]
131-
}
132-
```
133-
134-
画像をまとめる、拡張性のためにプラグイン (または Extension) 要素を追加する、分岐のためのフラグを用意するなども考えられます:
135-
```json
136-
{
137-
"cells": [
138-
{
139-
"lines": 1,
140-
"characrter-name": "Alice",
141-
// 画像をまとめる
142-
"image": {
143-
"frontground": "alice-normal.png",
144-
"background": "green-park.png"
145-
},
146-
"messages": "Hi, there."
147-
},
148-
{
149-
"lines": 2,
150-
"characrter-name": "",
151-
"image": {
152-
"background-image": "frutiger-aero.png"
153-
},
154-
"messages": "Let's search!",
155-
// プラグイン専用要素 (プラグインの性質によって config.json などで設定してもいいかも)
156-
"plugin": [
157-
{
158-
"name": "aliceproject-search.dll",
159-
"search-engine": "google"
160-
},
161-
{
162-
"name": "aliceproject-compression.dll",
163-
"image": "image/webp",
164-
"audio": "none",
165-
"video": "video/webm"
166-
}
167-
]
168-
},
169-
{
170-
"lines": 3,
171-
"characrter-name": "Rabbit",
172-
// 選択
173-
"selection": {
174-
"apple": "",
175-
"lemon": "",
176-
"grape": ""
177-
},
178-
"image": {
179-
"froutground-image": "fruits.png"
180-
},
181-
"messages": "Select fruit you like."
182-
},
183-
{
184-
"lines": 4,
185-
"characrter-name": "Rabbit",
186-
// 分岐 ("または"と"かつ" (AND, OR, XOR) をどのようにするかは微妙)
187-
// 当てはまる場合は、この行を表示、当てはまらない場合はスキップされる
188-
"if": {
189-
"apple": "true",
190-
"lemon": "false",
191-
"fruits": 2
192-
},
193-
"image": {
194-
"background-image": "green-park.png"
195-
},
196-
"messages": "Nice to meet you."
197-
}
198-
]
199-
}
200-
```
201-
202-
Alice Novel 向けのゲーム作成についても考えています。しかし、これについては Ivy Cafeteria ですでに SRFB の開発計画があるため、こちらの完成を考えたほうが良いかもしれません。(というか、現状はそのつもりです)
203-
204-
(おまけ: 拡張子名の選考)
205-
206-
採用:
207-
- `.anov`: Anov (**A**dvanced **Nov**el / **A**lice **Nov**el) Syntax >> 無難
208-
- `.fan`: 新 Common Novel (**F**ormatted **A**dvanced **N**ovel) >> ゲームは楽しい (fan) とあっていていいと思った
209-
210-
非採用:
211-
- `.an`: Anov (**A**dvanced **N**ovel / **A**lice **N**ovel) Syntax >> 短い (と、当時は考えていたが、今考えると悪くない)
212-
- `.ns`: 新 Common Novel (**N**ovel **S**cript) >> Json 形式であり、Script らしくない
213-
- `.annb`: 新 Common Novel (**A**dvanced **N**ovel **N**ote**B**ook) >> N が2回被るのと、発音が `.anov` とほとんど同じなのが微妙
214-
- `.ne`: 新 Common Novel (**N**ovel **E**lements / **N**ovel **E**ssence) >> 悪くないが、E が割と謎
215-
- `.cn`: 新 Common Novel (**C**ommon **N**ovel) >> 中国の国別コード (.cn) と被る
216-
- `.cnov`: 新 Common Novel (**C**ommon **Nov**el) >> `.anov` と類似しているため、ややこしい
48+
詳細は [Alice Novel v0.9.5 の予定と、新しい構文](https://alicenovel.web.app/ja/blog/20250605)をご覧ください。
21749

21850
#### Ivy Cafeteria
21951

0 commit comments

Comments
 (0)