ここはElonaのテキスト改造・作成・利用に関する疑問全般に関する手引き(FAQ)のページです。
質問内容は技術的なことに限っていません。ついでに質問がされたわけではなくとも自分が作成した時に
こんなミスをした、等も書いてもらって大丈夫です。一人がミスをしたならば、他の人が同じ場所に躓く
可能性もあるものです。
Elonaのテキスト改造・作成に関して前提となる知識
テキスト改造・作成行為の主な種類
現在Elonaにおける台詞に関連する行為は以下の4つに分けられます(1つはomake系のみ)。これらは一人のキャラに対して併用ができないことに注意してください。*1併用した場合、次のような優先順位で適用されます。
「口調を変える」・「言葉を教える」>「CNPCの作成時に記述された台詞」(CNPCのデフォルト)>「c_talk(キャラ単体)」>「c_talk(性別全般)」>デフォルト
ちなみにCNPCの台詞を「口調を変える」で書き換えても、再度デフォルトの口調に戻すことができます。
- 言葉を教える*2
ペットやNPCが、何もしていないときに発するメッセージ(妹の「お兄ちゃん」「お姉ちゃん」など)を追加する機能です。
NPC1体につき1つの言葉を覚えさせることが出来ます(前に教えた言葉は上書きされる)。教えた言葉を消去するには、空文字列を教えます。
文字の色は標準では水色ですが、メッセージ中に"「"が含まれているとセリフと見なされて黄色になります。 - 口調を変える
干渉メニューから実行できる、対象キャラの台詞をそれが書かれたtxtファイルの内容に変更できる機能です。
当Wikiのメインとなる機能です。
- CNPCファイル内の会話文テキスト
CNPCを定義するtxtファイル内の会話文部分(%txt~%endtxt)です。作った後に書き直せないこと以外は基本的に
「口調を変える」にて用いられるテキストの扱いに準じますが、こちらはCNPCファイルの読み込みの際に読み込まれる会話文に上限があり、それは下記の「CNPCファイルにおける会話文記述の読み込み制限」の通りです。
「口調を変える」側には制限がないので、自分用のCNPCであり、体裁を気にしないというのであれば、CNPCを作ったあとで口調を設定することでたくさん会話するCNPCを実現するというのも手です。
- 「c_talk」(omake系)*3
「口調を変える」と同じく elona/user/talk フォルダに「ctalkX_Y.txt」(Xがキャラの識別番号*4、Yが0なら男性、1なら女性)というtxtファイルを作り、そのファイルに文章を記述すれば、性別がYのXのキャラに記述した文章を発言させられるという機能です。別に性別ごとに会話内容を変える「ctalkgender_Y.txt」という機能もあります。
ただしこれを用いると該当のキャラ全ての台詞を変えてしまうことになり、ログがやたらと埋まったり、同じ台詞があふれて大変、となることもありうるので使い道に注意が必要です。
なお記述の仕方は「口調を変える」のものと同等です。
CNPCファイルにおける会話文記述の読み込み制限
CNPCファイルにはキャラクターの情報を記述する部分の下に、そのキャラクターの会話文を書くスペースがありますが、この会話文(%txt~%endTxtまで)は一定の容量までしか読み込まれないようになっています。具体的には公式及び互換ヴァリアントが8kバイト、omake系ヴァリアントが16kバイトまでしか読み込まれないようです(MMA/TTは暫定的に32kバイトまで拡張)。user/talkフォルダ内において口調ファイルとして運用する分には制限がなく、今まで通りの運用で問題ありませんが、互換性を意識したCNPCファイル作成の場合には以下のようにすると良いです。
- 会話部分を公式準拠(及び他のヴァリアント?)の場合は8kバイト、omake系は16kバイト、MMA/TTは32kバイトとする。
- 区切りの線や説明文などを削ってみる。
- テキスト内のタグの順序を読み込み容量に従い、公式準拠→omake以外のヴァリアント→omake→MMA/TT関連とする。(容量が足りるならば特に必要はない。)
テキストの改造・作成全般に関して
テキスト内に{player}・{aka}等を使ったが、変換されずに表示される。
置換文字列早見表にもあるのですが、公式の1.22ではCalmなどに{player}等の置換文字列が対応していません。使えるのは Dialog のみです。
1.22ではCalm(待機時)で{player}、{aka}等が対応していないと知った。直すのめんどくさい。
「編集」から「置換」して直してください。大抵のtxtファイルを作成ソフトにはその機能があるはずです。
なおこの手順は他のヴァリアントでのテキスト作成・修正でも非常に有用です。ただし修正する
必要のない部分まで全て置換しないように注意してください。
作成したテキストをCNPCで使ってみたがうまく発言されない(CNPC利用以外についても)
以下のような可能性があります。
- タグの記述が本来は大文字のところが小文字になっている、「,」が入っていない、「,JP」がない、等。特にどこかからかコピペした時に起こりがちです。
- 使ったタグ・条件式が対応しないヴァリアントである。
- 記述したテキストの量がCNPCファイルの読み込み上限を超えてしまっている。(上記の「会話文記述の読み込み制限」参照。)
こういった要素を確認した後にバグや不備を疑うようにしてください。
台詞の発言頻度について
口調ファイルの「%txtCalm」と神の待機時台詞の「%txtWhisper」の発言条件は以下のようになっています。
※ゲームの内部情報なので反転して閲覧してください。
「%txtCalm」はキャラがヘイトを持たない時に5ターン毎に1/4の確率判定をして発言。「%txtWhisper」は電波を受信できる時に1/1000の確率判定をPCの行動ターン毎にして発言。
台詞の発言頻度を調整したい
発言頻度を調整したい箇所に、何も書かない行を追加してください。
少女などのデフォルトの台詞と作成した台詞を共存させたい。
デフォルトの台詞を発言させられるヴァリアントもありますが、公式あるいはその機能を持たないヴァリアントでそれを行いたい場合は、キャラクターの発言内容を調べてそれも書きこむしかありません。
ハートを使いたくて「♪1」を利用したが、表示されない時がある。
表示される時に、改行で♪と1が離れてしまうとハートに変換されません。改行されない位置にするなどの対策をとる必要があります。
なおMMA・omake_babyでは対策が取られています。
テキスト(ファイル)の利用に関して
テキストファイルをキャラクターに設定したのに無視される。
無視される相手の場合はDialogの会話は無理です。待機時の台詞などは発言されると思いますが、会話したければペットにしてください。
各ヴァリアントの拡張に依存する疑問に関して
omake系列に関して
{nnpc}、{nsnpc}を使っても「○の~~」の「○の」の部分が表示される。
次のようなケースの場合、{n~}の置換文を使っても「○の」はそのまま表示されます。
不都合がなければCNPC用テキストにはそのキャラの名前を直接記述した方が無難かもしれません。
- 干渉メニューから「名前を変える」で名前を変えている場合
- CNPCキャラに用いる場合
○その理由についての引用
189 :異形の森の名も無き使者:2012/12/29(土) 15:31:02 ID:n3whxdtc
readmeにもそこまで詳しく書いていないので、この場を借りて補足するよ!
ctalkを作られる皆さんの一助になれば幸いだよ!
omakeの{nsnpc}は、「(キャラクター名)の(個有名)」という名前から「(キャラクター名)の」を取り除き「(個有名)」だけを取り出す指定なんだよ!
キャラクター名というのは少女とか黄金の騎士とか、キャラクターごとに定まった名前だよ! だから黒天使に「白天使の(個有名)」という名前を
付けると{nsnpc}は上手く機能しないよ!
話をomake_overhaulに戻すよ! ooでは、カスタムNPCのname.をそのままキャラクター名として扱うよ!
だからname.が元々「姉猫の(個有名)」という定義の場合、{nsnpc}は(おそらくctalkの作者が望むようには)機能しないんだよ!
190 :異形の森の名も無き使者:2012/12/29(土) 21:08:21 ID:pL8Q/WJY
>>189
解説THX。こんな感じですね。
・omake本家の{nsnpc}
黒天使の、表示名『黒天使のテンコ』に使う
→表示名にキャラクター名が含まれているため、『黒天使の』が省かれ、
『テンコ』と表示される。
黒天使の、表示名『白天使のテンコ』に使う
→表示名にキャラクター名が含まれていないため、『白天使のテンコ』と表示される。
・OOの{nsnpc}
name の値が『姉猫のアネコ』のCNPCに使う
→nameに設定した値を丸ごと省くので、『姉猫のアネコ』が表示されなくなる?
193 :異形の森の名も無き使者:2012/12/29(土) 21:50:41 ID:n3whxdtc
>>190
念の為書いておくと、{nsnpc}の動作はカスタムNPC以外はomakeもomake_overhaulも同じだからね!
> ・OOの{nsnpc}
> name の値が『姉猫のアネコ』のCNPCに使う
> →nameに設定した値を丸ごと省くので、『姉猫のアネコ』が表示されなくなる?
「(キャラクター名)の」で判定するんだよ! だからこの場合、
name.の値が『姉猫のアネコ』のCNPCに使う
→表示名に「姉猫のアネコの」が含まれていない為、そのまま『姉猫のアネコ』と表示される。
が正解だよ!
「%txtactbefore(スキル識別子),JP」、「%txtactafter(スキル識別子),JP」で魔法の台詞が出ない。
それらは「~の手」、「ブレス」、「ブースト」等の「技能」を用いた時に台詞を設定するためのタグです。
「魔法」で台詞を付けたい場合、「%txtcastスキル識別子,JP」を使う必要があります。
ただし対応していない技能もありますので注意してください。
ちなみに表題のタグはomakeではなくomake_babyより追加されたタグです。omake_overhaul、MMA/TT等のタグ取り込み済みのヴァリアントでは対応していますが、omakeでは対応していないことにも注意が必要です。
ADDTとMMA
細かい時間の条件設定ができるようだが、「分」の指定が機能しているのか確認できない。
※冒険者の休息所「FAQ」より引用。
〔Esc〕→「設定の変更」→「メッセージとログ」→分表示追加を「する」
これによりメッセージログ欄の左端に今が何分であるかの表示が出るようになります。
「cdatan*:」「faith*:」「ccitem*:」等の条件で上手く発言されない。(MMA)
MMA/TTwikiの質問/回答より。
文字列を参照する条件式全般の注意点として条件式は「,」(カンマ)または改行までのすべての文字を比較対象にする
「%txt[MMA]ItemTake,JP,ccitem:younger sister bomb // 手投げ妹の場合」のような書き方をすると
「younger sister bomb」ではなく「younger sister bomb // 手投げ妹の場合」と比較したことになる
サンプルファイルで//をコメントとして使われることが多いが//自体に以降をコメントとして特別扱いする機能は無いので注意