yktsr / Text2Frame-MV

テキストファイル(.txtファイルなど)から「文章の表示」イベントコマンドに簡単に変換するための、RPGツクールMV・MZ用の開発支援プラグインです。/ Plugin for RPG Maker MV/MZ to convert text to event command
MIT License
10 stars 1 forks source link

注釈タグやスクリプトタグの挟み方の追加 #31

Closed HidetoshiKawaguchi closed 4 years ago

HidetoshiKawaguchi commented 5 years ago

注釈タグとスクリプトタグを位置によらず挟んだものをそのまま挿入したい。

具体的には以下の3例ような書き方でもcommentやscriptをタグと認識してほしい。

<comment>この辺でいい感じのBGMを挿入</comment>
<script>console.log("今日も一日がんばるぞい!(و ・ㅂ・)و ")</script>
<comment>この辺でいい感じのBGMを挿入
</comment>
<script>console.log("今日も一日がんばるぞい!(و ・ㅂ・)و ")
</script>
<comment>
この辺でいい感じのBGMを挿入</comment>
<script>
console.log("今日も一日がんばるぞい!(و ・ㅂ・)و ")</script>

逆に、以下のように文字列の中にあるタグはメッセージの一部として認識される。

\n
メガ粒子〜
レクイエム〜
青葉<Face: Actor1(1)>はじめ<WindowPosition: Top>ひふみ<Background: Dim>ゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑
\n
\n
メガ粒子〜レクイエム〜<comment>
この辺でいい感じのBGMを挿入</comment>
青葉<Face: Actor1(1)>はじめ<WindowPosition: Top>ひふみ<Background: Dim>ゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑
\n

以下の例では、Face, WindowPosition, Fadeoutがタグとして認識され Background, Fadeinはメッセージの一部として認識される。

<Face: Actor1(1)>
<WindowPosition: Top>メガ粒子〜
レクイエム〜<Background: Dim>
青葉はじめひふみゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑<Fadein>
<Fadeout>

更新履歴

yktsr commented 4 years ago

上記を導入する前にタグのスコープを明確に定義したい タグのスコープは

を明確にしたい。

例えば、以下の例文があったとき

\n
メガ粒子〜
レクイエム〜
青葉<Face: Actor1(1)>はじめ<WindowPosition: Top>ひふみ<Background: Dim>ゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑
\n

改行によってのみ切れる場合は、以下のようになる。

<Face: Actor1(1)><WindowPosition: Top><Background: Dim>
メガ粒子〜
レクイエム〜
青葉はじめひふみゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑

タグによって切れる場合は、以下のようになる。

メガ粒子〜
レクイエム〜

<Face: Actor1(1)><WindowPosition: Top><Background: Dim>
青葉はじめひふみゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑

行頭にない場合は、単に文字列と考えることができるが、

メガ粒子〜
レクイエム〜
青葉<Face: Actor1(1)>はじめ<WindowPosition: Top>ひふみ<Background: Dim>ゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑

以下の例文を許容するか検討が必要。 <FC>はタグ?文字列?

青葉<FC>
今日も1日頑張るぞい

</comment>はタグ?文字列?

<comment>
この辺でいい感じのBGMを挿入</comment>
HidetoshiKawaguchi commented 4 years ago
青葉<FC>
今日も1日頑張るぞい`

<FC>は文字列としたい。 FaceやWindowsPositionのタグがメッセージ中にあるケースというのがあまり考えられない。 現在の実装の動作を確認したところ、どうやらこのケースはタグと認識されているようだね。 wikiを確認したところ、

空行で区切られた文章の先頭にメタタグを挿入するとその文章に限りウインドウの状態を変更することができます。 以下の例文では、<位置: 上> の効果は「今日も一日がんばるぞい!」にのみ適用されます。 という文がある。 現在の実装から動作が変更されるのが少し心配だけど、おそらくメッセージ中にFaceやWindowsPositionのタグを入れ込んでいる人はほとんどいないだろうというのもあり、この際まとめて上の<FC>のケースは文字列としたい。

<comment>
この辺でいい感じのBGMを挿入</comment>

</comment>はタグとしたい。

なので、最初の質問は

改行によってのみ切れるのか

こっちになる認識。

一応補足の具体例を出すと

\n
メガ粒子〜レクイエム〜<comment>
この辺でいい感じのBGMを挿入</comment>
青葉<Face: Actor1(1)>はじめ<WindowPosition: Top>ひふみ<Background: Dim>ゆん
シュート!(ﻭ ・ㅂ・)ﻭ ̑̑
\n

こういう場合の <comment>, </comment>,<Face: Actor1(1)>,<WindowPosition: Top>,<Background: Dim>は文字列として扱われる。

HidetoshiKawaguchi commented 4 years ago

テストケース入れました。