したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

製作初心者講座スレ

1あなたの名前を入力してください:2018/12/17(月) 19:27:03 ID:XL3qFHUU
ここは全く製作したことの無い人達が一段階ずつ製作者へ目指していくスレです。
eraでこれが作りたいと思ったり、eraであれがやりたいんだ
といった情熱があっても、どうしていいかわからないといった方の参考になるべく立てられました
製作したいといった情熱があればぜひ目を通していってください。

情報提供されるの皆さまへ
このスレに書きこまれた、こうしたほうがいいといった発言やまとめはeraシリーズを語るスレ まとめWiki V3に掲載されるかもしれません。
そういった事を踏まえて初心者の方々に有益な情報の提供をお願いします。

このスレに書きこむ前にこちらをお読みください
スレのテンプレ>>1-3

※注 ・投下されたサンプルへの意見交換などは歓迎しますが、
    サンプル投下者への人格批判につながるものや、誹謗中傷に取られるものは禁止とします。
    また、議論も禁止とします。
    意見交換の際に、誰かから苦言を呈されたらいったんレスを止め、時間を置いて落ち着いてください。

406405:2020/08/03(月) 18:37:02 ID:Qzhub8LY
うわぁごめんなさいっ;;テンプレあるのに確認してないとか・・・!
書き直します!

【質問】
・環境:eratohoK、eraRanceK
・質問内容:調教時のタブを追加したいがどこをどうすれば良いか
・目的
 構文を改造して見たけど思った通りにならないので、どういう仕組なのかを勉強しながら
 思った通りに動かしてみたい。

以上です、すみませんでした!

407あなたの名前を入力してください:2020/08/03(月) 21:04:38 ID:J42BG5Rs
Kの調教画面はいじったことなくて状況がよくわからん

・新設したタブボタンの表示はできている(はい/いいえ)
・新設したタブボタンをクリックした後、新設したタブボタンの色が表示中の色に切り替わっている(はい/いいえ)
・クリックした後、新しいタブに分類しておいたコマンド群が表示されている(はい/いいえ)

USERCOM.ERBで「;タブ設定」とコメントしてあるあたり、
@USERCOMの中でタブ切り替え入力時のTFLAG:7の変更処理があるんだけど
そっちはいじってある?

408あなたの名前を入力してください:2020/08/04(火) 05:29:15 ID:nb6XXe06
>>405
ERBは基本的に3種類の処理を組み合わせて動作しているのだが、どれが欠けても思った通りに動作しない。
A.画面に情報を表示する処理
B.コマンド入力を受け付ける処理
C.内部データを書き換える処理

今回のケースでは用意したボタンをクリックしても反応しないとのことだが、
TRAIN画面ではINPUTなどのコマンド入力用の処理を用意しなくても常にプレイヤーが入力した結果を受け取るように設計されている。
入力されたコマンドはRESULTに格納される。よって、「B.コマンド入力を受け付ける処理」に問題があるわけではない。
内部処理のフロー図:ttps://ja.osdn.net/projects/emuera/wiki/flow

>>407が指摘してくれているのは、
806行目にある @USERCOM で記述されている「C.内部データを書き換える処理」に問題があるのではないだろうか?ということ。
タブを管理している TFLAG:7 を書き換える処理は1056行目の TFLAG:7 = RESULT - 800 と書かれている部分なので、
途中にある IF/ELSEIF などの条件分岐を通過できるように改造してやる必要がある。

409好好 ◆hcbh0U7bsY:2020/08/04(火) 06:08:56 ID:mgbD6unk
>>406
新規タブとコマンドの追加についてですが、
以下の手順で可能だと思います。

1.対象となるコマンドファイルを作成(例:COMF0_愛撫.ERB)
2.Train.csvに対象となるコマンドを登録(番号が既存の物と被らないように注意してください。)
3._COM_CATEGORYに対象コマンドのタブの種類を登録
4._COM_KNOWLEDGE_LEVEL.ERBにコマンドの必要な性知識レベルを登録
5.USERCOM.ERB:220行目~232行目あたりにあるタブボタン表示処理に、対象のタブを追加する
6.USERCOM.ERB:969行目~971行目あたりにある、(;タブ設定)以下に追加したタブの番号を含むように数値を修正する

以上で、新規タブと新規コマンドの追加ができるはずです。
また必要であれば優先度の登録や、各コマンドに対しての新規コマンドの併用条件などを改修してください。

410好好 ◆hcbh0U7bsY:2020/08/04(火) 06:11:19 ID:mgbD6unk
すみませんsage忘れてしまいました。

あと>>409はeraRanceK環境で確認したことなので、
他のバリアントの場合は違う可能性もあります。

411405:2020/08/04(火) 19:15:48 ID:UMfDfEk6
みなさんありがとうございますっ!
今PCが触れる環境ではないので帰ったら早速試してみます!
本当にありがとうございました!!
また何か詰まったら質問させていただくコトになるかもしれませんが、
その時はどうかよろしくお願いいたします・・・!
バリアントの完成はまだまだ先になるかもしれませんし、完成できるかも
分かりませんが、やってみます!

>>410さん
好好さんありがとうございます、今はあたしもRanceさんの方でしているので
とてもありがたかったですっ!

412405:2020/08/10(月) 21:41:37 ID:HMQNCrC2
改めましてお礼を、みなさんのおかげで何がダメだったのかを知るコトができました、
ありがとうございます!

>>407さん
まさにここでした、もう少し構文の中をちゃんと見る癖を付けないとダメですね・・・。
教えてくださってありがとうございます!

>>408さん
ERBの仕組みを解説していただいてすごく為になりました、親切に分解して
説明していただいたのでわくわくしながらメモをさせていただきました!
408さんの解説は自分の中でeraの理解を深める機会になったので本当に助かりました!
ありがとうございます!

>>410の好好さん
具体的な手順の説明ありがとうございますっ!
1〜4までは出来ていたのですが、5〜6を書き換えなければいけないコトに
気が付かず一か月唸っていました・・・。

今回の解説と助言は本当に嬉しくて為になって思い切って聞いてみて良かったと
思っています!バリアントの完成を目指せるように頑張ります!
ありがとうございましたっ!

>>408さん

413あなたの名前を入力してください:2020/08/10(月) 21:47:40 ID:BT.ixpBI
聞くは一時の恥

414405:2020/08/11(火) 01:06:20 ID:L5X5Nu9Y
>>413さん
勇気を出してみて本当に良かったです。
バリアントを完成させたりeraに詳しくなって今度は教えれる立場になるのが、
お返しになるかなと思うので精進します。

415好好 ◆hcbh0U7bsY:2020/08/11(火) 14:59:34 ID:tXW7KLuM
>>412
バリアント製作がんばってください。
完成を楽しみにしています。

416405:2020/08/12(水) 12:33:50 ID:5HJtK3xs
>>415さん
好好さんありがとうございます、頑張りますね!
まさかRanceKの作者さんから助言いただけるとは思わなかったのでちょっとテンパっていました、
私も続いて誰かの琴線に触れるコトができるバリアント目指して頑張ります!

417あなたの名前を入力してください:2020/10/10(土) 02:12:06 ID:ZXimRhK.
関数処理についてGETNUM(STR, "")を使えるようにする場合
ファイル名をSTR.CSVをSTRNAME.CSVに変えれば使えるようになったのですが
代わりにSTR:0などが使用できなくなりました

erbの全体的な変更したくないのですが、STR.CSVとSTRNAME.CSVのCSV2種を併用するか
erbに記述されたSTRをSTRNAMEに置換するだけなのでしょうか?

418あなたの名前を入力してください:2020/10/10(土) 03:55:32 ID:IKQEWvb2
>>417
多分根本の理解が間違ってる
STRはSTRに格納する値を書くファイルで、STRNAMEが各STRの要素名を書くもの
https://ja.osdn.net/projects/emuera/wiki/exvar
>「str.csvで指定するのはSTRの中身であって要素名ではない」

なので、STRに格納している値を検索するならFINDELEMENTなんかで検索する必要がある

419あなたの名前を入力してください:2020/10/10(土) 05:44:49 ID:ZXimRhK.
>>418
ありがとうございます
STRnAME新しく作らなくても実装できました

420あなたの名前を入力してください:2020/12/10(木) 12:00:27 ID:Ass1jS/E
はじめまして。バリアント作成で困っているので質問させてください
配列の一括初期化方法と、配列の0以外の要素が入っている数の取得方法が分からず困っております。

配列の一括初期化方法は毎度配列長分だけループを回して初期値を代入すれば実装できるのですが、もっといい方法があるなら知りたいです。

配列の0以外の要素が入っている数の取得方法に関しても、ループを回して0以外の数を数えれば実装できるのですが、こちらももっといい方法があるなら知りたいです。

というのも現在SLGを作っており、最大ユニット数1024に設定しているため、AIの各勢力が自勢力のユニットを取得したり更新したりする際に何度も1024回ループを回さないといけないため、処理が重くなってしまうからです。
何かいい案がありましたら、是非教えていただけると助かります。
よろしくお願いいたします。

421あなたの名前を入力してください:2020/12/10(木) 12:08:32 ID:A/X1UBxo
>>420
https://ja.osdn.net/projects/emuera/wiki/excom
初期化はVARSET
https://ja.osdn.net/projects/emuera/wiki/exmeth
数えるのはINRANGEARRAY

422あなたの名前を入力してください:2020/12/10(木) 12:27:10 ID:Ass1jS/E
>>421
ご回答ありがとうございます。助かりました!

423あなたの名前を入力してください:2020/12/11(金) 22:36:31 ID:4/eDdq4s
ERBファイルの名前って、アルファベットじゃないとダメだったりしますか?
既存のバリアントに新しいERBで関数作っていじったりしてる時、
日本語ならファイルの中身が一見してわかりやすそうだなと思うのですが

424あなたの名前を入力してください:2020/12/11(金) 22:48:58 ID:qsYqrXXA
日本語でも中国語でもロシア語でも大丈夫
ただし公開するとファイル名エンコーディングの違いでトラブりやすいので注意

425あなたの名前を入力してください:2020/12/12(土) 04:13:22 ID:049LW9dY
アップロードするとファイル名が文字化けする恐れがあるという事でしょうか
であれば念の為、ファイル名はアルファベットで統一しておこうと思います

426あなたの名前を入力してください:2020/12/12(土) 07:12:51 ID:tSN8K/S6
文字化けはアップロード時じゃなくてzip解凍時に起こりやすい
解凍するときの環境(解凍ソフトやOSなど)によってフォルダ名の文字コード判定が誤認識を起こすことがある

tohoKなんかはフォルダ名・ファイル名ともに日本語ファイル名多いゾ
一回やってみてだめだったら切り替えてもいいんじゃない

427あなたの名前を入力してください:2020/12/12(土) 08:06:36 ID:c.mOGqB6
https://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1498745115/105

文字化けしたバリアントで起動した場合にエラーを出す汎用関数もあるのでこれを使ってもいいと思う

428あなたの名前を入力してください:2020/12/12(土) 18:50:30 ID:049LW9dY
情報ありがとうございます
日本語名での製作も前向きに考えてみようと思います

429あなたの名前を入力してください:2020/12/27(日) 15:05:33 ID:IUBZ9X6k
eratohoA系列で汎用口上を作りたいのですが、何を参考に作ればいいか分からず困っております。
どなたか参考になるバリアント、あるいは具体的な作り方を教えていただけたらありがたいです。

430あなたの名前を入力してください:2020/12/28(月) 03:15:30 ID:kT9X5rXA
今はどうか知らないけど昔のイメージだと
A系列口上ならMegaten、汎用口上ならtohoYMが化け物って印象

431あなたの名前を入力してください:2020/12/28(月) 03:34:45 ID:EAOEqaBk
文章と構文どっちの参考になるものが欲しいの?

432429:2020/12/28(月) 09:31:09 ID:7JNprlcQ
>>430
eraMegatenですね、ちょっと見てみます!ありがとうございます

>>431
技術的な、汎用口上という仕組みそのものの実装方法が知りたかったです。言葉が足りてませんでした。

433あなたの名前を入力してください:2020/12/28(月) 09:40:34 ID:2rt36uZ.
>>432
基本は個別口上の存在チェック→なかったら汎用口上呼び出すだけだよ
個別口上の存在チェックのやり方と汎用口上の持たせ方とで多少違いはあるけど

434429:2020/12/28(月) 09:48:07 ID:7JNprlcQ
>>433 なるほど。それを踏まえて調べてみます。ありがとうございます!

435あなたの名前を入力してください:2021/01/03(日) 20:32:56 ID:e5T/hH3s
EraGVTに「@PASTTIME_街に出る」などの日本語を含んだ関数名がありますが
もしかして関数の名前は@以降は何語でも問題なかったりしますか?

436あなたの名前を入力してください:2021/01/03(日) 20:47:42 ID:54JSXwyg
>>435
半角記号はアンダーバーしか使えませんが、それ以外は漢字でもキリル文字でも使えます
https://ja.osdn.net/projects/emuera/wiki/diff#h5-.E9.96.A2.E6.95.B0.E5.90.8D.E3.81.AB.E4.BD.BF.E7.94.A8.E5.8F.AF.E8.83.BD.E3.81.AA.E6.96.87.E5.AD.97

437あなたの名前を入力してください:2021/01/04(月) 17:40:40 ID:hQKEfZxM
>>436
ありがとうございます
見たことのある大体の関数がアルファベットだったので入力できるのはアルファベットのみかと思ってました

438あなたの名前を入力してください:2021/01/04(月) 22:23:01 ID:BQ/eIn0o
>>437
大抵の言語では半角アルファベットと記号少々以外の文字を許容しないので、同じノリがEmueraでも生きてるんだと思う
じゃあEmueraではどうかというと、全角文字はファイルのエンコードで化ける可能性があるので個人的には関数名なんかに使うのは推奨しない
ただ、TALENTの定義とかで全角文字使った方が分かりやすいのは事実なんで、好みの問題といえばそうではある

439あなたの名前を入力してください:2021/01/05(火) 00:35:51 ID:/zgt3huQ
???
ファイルエンコードに問題があればそもそも正常動作は期待できないんだから、関数名に使おうが使うまいが関係なくない?
なんなら関数呼べずにエラー落ちしてくれた方が、ミスにすぐ気付けて助かるまであるし

440あなたの名前を入力してください:2021/01/05(火) 00:49:18 ID:5xcuShZs
どっちかというと「どっちも化けた結果動いてしまう」可能性があることが問題かな

441あなたの名前を入力してください:2021/01/05(火) 09:02:06 ID:Uc16LBEg
関数名に日本語を使うのは問題ない
んだけどファイル名に日本語を使うと文字化け時に意図しない動作になることがまあまあある

ファイル名に日本語を入れて文字化けした場合に、警告を出すパッチを以前作ったのでよかったら使ってみてね
https://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1498745115/105

442あなたの名前を入力してください:2021/03/18(木) 07:54:57 ID:O1RIOrmM
東方系列などで
既に口上のあるキャラに対して全く別の口上を作ってみたいなと思ったのですが
仮に作った場合、口上はどちらか一方だけをERBに入れるようにしないとダメでしょうか
システム側に何か追加するか書き換えるかして
キャラにどの口上を適用するか選べるようにできないでしょうか

443あなたの名前を入力してください:2021/03/18(木) 08:23:51 ID:9E0jwO6g
>>442
すでに存在するヴァリアントに口上追加するなら、住民の方で対応するだろうから口上に専念してもええで

自作ヴァリアントなら、megatenとかに口上選択システムあるから参考にしていいと思う

444あなたの名前を入力してください:2021/03/18(木) 19:38:38 ID:O1RIOrmM
>>443
了解です
まずは口上作ってから考えてみます
ありがとうございます

445あなたの名前を入力してください:2021/05/02(日) 21:52:21 ID:JqPqcGwM
Rename.csvは具体的にどのように活用するものなのでしょうか
少しググッて見ても、Rename.csv自体がどのような働きを担っているかの説明が見つかりません

また、Emuera.configのデフォルトで無効になっていますが、有効にする必要がないor推奨されないということでしょうか

446あなたの名前を入力してください:2021/05/03(月) 00:46:14 ID:KiqKwz6w
あれそもそもeramakerEx用の定義だもの
ERB内の単純置換をするだけで、要はLISPのマクロと同じ
可読性損なうから必要性がないなら使わない方がいい

詳細はEmueraのconfig設定の説明とeramakerExの記載を参照

447あなたの名前を入力してください:2021/05/03(月) 03:34:57 ID:6EBFkv4E
EramakerExのReadmeを読みました
ERBを記述する際に、素質「臆病」を操作する際などに
TALENT : xxではなく[[臆病]]で処理が通るようにするツールという事でしょうか

ひとまず現在の環境に適したもので無さそうなのは理解できました
ありがとうございます

448あなたの名前を入力してください:2021/05/07(金) 18:58:44 ID:T1NuZT36
昔、Wikiかどこかで「一文字変数は使わないほうが良い」といったような記述を見た気がするのですが
改めて探してみてもソースが見つかりません
実際に一文字変数は現在の環境で相性が悪かったりするのでしょうか
また、他にもデフォルトの変数の中で使用を控えた方が良いものはあるでしょうか

449あなたの名前を入力してください:2021/05/07(金) 19:48:12 ID:kTuIlDkY
1文字変数はとにかく視認性が悪くgrepもしづらい
他のもCFLAGだろうがEXPだろうが数字直打ちはおすすめしない
CSVで名前つけるかERHで変数定義するかした方がいい

450あなたの名前を入力してください:2021/05/07(金) 20:08:50 ID:lNc40D0g
>>448
https://seesaawiki.jp/eraseries/d/%a5%b7%a5%b9%a5%c6%a5%e0%b2%fe%c2%a4Q%26A#content_1_1
相性悪いとかいう次元でなく諸悪の根源レベルなので、一文字変数の使用は禁忌

他に使用すべきでないのは、下リンク先で「この変数はobsoleteです」と書かれている
LOCAL/LOCALSと組み込み多次元配列変数。理由は一文字変数とも共通するけど、変数名から内容を類推しづらいから
https://ja.osdn.net/projects/emuera/wiki/exvar

451あなたの名前を入力してください:2021/05/07(金) 20:12:55 ID:hSvtoCQA
(ループ変数は1文字で許してください)

452あなたの名前を入力してください:2021/05/07(金) 20:24:15 ID:lNc40D0g
(そうしたいのはやまやまだけど、ERBだと問答無用でグローバルになっちゃうのでダメー)

453あなたの名前を入力してください:2021/05/07(金) 21:05:51 ID:hSvtoCQA
(説明見てきました。おこりうる自体を想像したら、なんか背筋がゾッとしたんですが……orz)

454あなたの名前を入力してください:2021/05/07(金) 22:02:25 ID:i72ecdsc
一文字変数のスコープはマジでバグの原因だからな・・・・
今参加してるバリアント、いきなりあなたが㌧タヒする謎のバグが出てて、原因がCALL呼び先で一文字変数上書きしてることだったオチがある

455あなたの名前を入力してください:2021/05/07(金) 22:05:43 ID:RdHL1Q6M
いつでもどこでも使えるからこそ不用意に他で使ってる文字を使ってしまってバグるんよね

456あなたの名前を入力してください:2021/05/07(金) 22:52:44 ID:T1NuZT36
>>449
>>450
了解です
ソースもありがとうございました

新たに2点よろしいでしょうか

1
「CSVで名前をつける」というのはERBで見かける
 EXP:V経験
といった表示の事かと思われますが
これはどのように設定すれば良いでしょうか
CSVにはよく
 1,V経験
とカンマ区切りで名前が書かれていますが
これで名前が付いてERBでも反映されるという事でしょうか

2
ユーザー定義変数(関数内DIMでもERHでも)を定義する際
変数の名前を日本語で定義する事は出来るでしょうか
 #DIM 総数
みたいな形で

457あなたの名前を入力してください:2021/05/07(金) 23:00:29 ID:yqvKmO0Q
1も2もそれで正しい

458あなたの名前を入力してください:2021/05/07(金) 23:57:04 ID:T1NuZT36
了解です
ありがとうございます

459あなたの名前を入力してください:2021/05/08(土) 00:31:25 ID:jBdpv9Z.
>>456,458
補足
名前で要素指定できる変数は、以下リンクの「文字列による配列変数の要素の指定」に一覧がある
https://ja.osdn.net/projects/emuera/wiki/exetc

460あなたの名前を入力してください:2021/05/11(火) 21:53:36 ID:3gUQUBoY
csvいじったりMOB増やしたりしかしたことがない初心者です

【質問】
・環境
 新バリアント

・質問内容
 一般的な調教系eraの中で、ベースとして適しているバリアントを教えてほしい、
 構造がシンプルで理解しやすいものであればありがたいです
 ※一応現時点ではwikiの「eracustom ver0.03」か「eraMeiQ外伝」を使わせていただく想定

・目的
 一般的な調教系バリアントをベースに、
 調教フェイズの前に調教対象を追い詰める調査フェイズと戦闘フェイズを追加したバリアントを作成する

ざっくりした質問で申し訳ないですがよろしくおねがいします。

461あなたの名前を入力してください:2021/05/12(水) 22:26:42 ID:P793RW1E
その想定ならcustomになると思う。eraMeiQ外伝はreadmeの「ほか」項を読もう
おすすめを教えるのが難しい理由は
おすすめバリアントを否定的に言う人が出ると迷惑をかけてしまうからってのもあるが
種類が多くてパッチもあるから、ライセンスまで把握してる人がいないってもある
バックアップreadmeライセンス確認他ツール、このあたりばっかりは自己責任で

462あなたの名前を入力してください:2021/05/13(木) 18:25:15 ID:Z5OdK/AQ
EratohoKシリーズでセーブやロードのショップ項目を左側に寄せて
更に残ったスペースにキャラ一覧を表示させていますが
一見して同じ行に別々の関数の結果を表示しているように見えるあのUIはどのように作られているのでしょうか
まだまだ理解が浅く、ERBを呼んでみてもどうにも要領を得られません

463あなたの名前を入力してください:2021/05/13(木) 19:35:44 ID:boVxsCgA
>>461
回答感謝、readme読めてなかったあぶない
指摘助かります
とりあえず自分の知ってるバリアントの範囲で検討します

464あなたの名前を入力してください:2021/05/15(土) 01:55:39 ID:JCqeJKHI
>>462
おおざっぱなイメージを知りたいなら
右のコンテンツで改行するとき、専用の改行関数をつかってる
その改行関数は、PRINTL の次行で行頭にボタンを表示するよう指定してる
どのボタンを表示するかは、表示開始時の行番号を保存、現在行番号から引くと
開始から今何行表示したかがわかるから、それで分岐させている

465あなたの名前を入力してください:2021/05/15(土) 10:43:46 ID:xUJNwc2Y
>>464
ありがとうございます
イメージが掴めたお陰でどのERBのどの部分が該当するのか把握できてきました
もう一度読み直してみようと思います

466あなたの名前を入力してください:2021/05/18(火) 17:41:38 ID:pwMy8RW.
デフォルトではゲーム開始時に、0番のキャラCSVがMASTERのデータとして適用され
作成されたMASTERを操作するていでゲームが進行するという理解で間違いないでしょうか

ADDCHARA 0を処理に含むバリアントが多く、Era悪魔でメイドではあなたをもう1人作っていたりする所をみると
あるいはMASTERに0番のキャラが反映された上で
0番のキャラを加入させないと調教時の主人等として動かせないという事でしょうか

467あなたの名前を入力してください:2021/05/19(水) 18:06:27 ID:wzzZp3S.
>>466
MASTERという変数は登録されたキャラのうち、マスターは誰なのか指定する変数です。なのでMASTERにはキャラ登録番号が1つ入ります。
多くバリアントでMASTERはあなたで、あなたのキャラ番号はCHARA.CSVで大抵0に指定されているので真っ先にADDCHARA 0され、真っ先に登録されたので登録番号が0になります。したがって、MASTERには0が入ります。
仮にキャラ番号2をMASTERにし、あなたを調教対象にしたいならADDCHARA 0とADDCHARA 2したうえでMASTERに1を入れます。MASTERに入るのはキャラ番号ではなく登録番号なので間違えないで下さい。

MASTERに数値を入れたからといってMASTERキャラが生成されるという訳ではありません。
あくまでADDCHARAされたキャラの内、誰がマスターなのかを指定するだけです。

あなたをキャラクターとして扱わない(主人公が存在しない)のであれば、あなたにABLやBASEなどのキャラ変数は必要無いのであなたをADDCHARAする必要は無いですし、MASTERを使う必要もありません。ぜんぶFLAGやTFLAGなどで賄えます。

era悪魔でメイドを見たことが無いのですがよく分からないのですが2度ADDCHARA 0されているという事でしょうか?
基本的にあなたのCSVを使うのは主人が入れ替わったりあなたを調教対象としたり、あなた以外のキャラ同士でうふふしたりするのを想定しているからです。不要であれば前述の通りあなたをADDCHARAしないバリアントを作ることは可能です。


何が疑問なのかいまいち判然としないのですが、質問の回答はこれでよろしいでしょうか?

468あなたの名前を入力してください:2021/05/20(木) 01:29:08 ID:7By6ades
>>466
たしかに「0番のキャラCSVがMASTERのデータとして適用され」ている
バリアントは多いが、自動的にそうなる処理か問われたら違う
MASTERに0番キャラが反映されているなら既にADDCHARA 0登録はされてるから
そこから更になんらかの加入処理をする必要もない(特殊な処理でない限り)

charaX.csvはADDCHARAなどでゲームに登録されないと読み込まれない
それは0番でも調教者でも他キャラでも同じ
eratohoまとめV3 Q:キャラ番号と登録キャラ番号とはなんですか?
ttps://seesaawiki.jp/eratoho/d/ERB%b3%ab%C8%AFQ%26A#content_1_9
キャラ番号(CSV番号)と登録番号の違い、ADDCHARAのやってることが曖昧そうだから
ここに書いてくれてることを読んでみるといいかも

※最近の話補足
「登録キャラ番号」のほうがよく使うから「登録キャラ番号」を
「キャラの番号」という広義の意味で「キャラ番号」ってつい表現してしまいがち
そのせいか最近は「キャラ番号」を「NO」とか「CSV番号」って
区別して呼ぶ人が多い気がする

「登録キャラ番号」を「キャラ配列番号」って呼ぶ人もいる
「登録キャラ番号」がBASEやCFLAGの配列番号だからだと思う

469466:2021/05/20(木) 02:14:19 ID:zSRQOJvA
>>467
MASTER関連の挙動や役割をよく分かっていませんでした
初回起動時にMASTERに0が代入されて自動的に番号0番のキャラが主人公になるのでなく

・ADDCHARAで番号に対応したキャラデータが読み込まれゲーム内に作成される
・ADDCHARAされたキャラは作成された順に別途、登録番号を持つ
・作成されたキャラの内、MASTERと同じ登録番号のキャラがどこかのタイミングで主人公に指定される
・MASTERへの能力変化等の干渉は、主人公に指定されたキャラに対して処理される

こういう事でしょうか
問題なければおおよその疑問が解けたかもしれません
ありがとうございます


Era悪魔でメイドでは0番のあなたと99番のドッペルあなたを用意して
変数の一時保存等に使うとERBに記述されていました
私の今の理解度よりももっと複雑な処理なのかもしれませんので、ひとまず取り下げます


加えて以下について質問してもよろしいでしょうか

・調教対象リストなどを新たに作る場合、
 MASTERであるキャラを除外して表示させないと調教対象に主人公が含まれる状況になるか

・MASTERに対応する番号のキャラが居ない状態で
 「EXP:MASTER:1 ++」のようにステータスを操作した場合はエラーになるか

470あなたの名前を入力してください:2021/05/20(木) 02:24:19 ID:zSRQOJvA
>>468
ADDCHARAでキャラを読み込んだ上で
MASTER等の役割をあてていく形で間違いないでしょうか
情報ありがとうございます


Emueraの勉強がてら1から基本的な部分を記述していってみてるのですが
いざやってみると分からない事だらけで…
現行のバリアントでもERBのどこかに
MASTER = 0(あるいは対応する変数)とか
TARGET = *
のような記述があったりするのでしょうか
ttps://ja.osdn.net/projects/emuera/wiki/flow
ではMASTERやTARGETの指定に言及が無いので、ERB側で指定するのではと考えているのですが

471あなたの名前を入力してください:2021/05/21(金) 00:08:44 ID:FY47N0sQ
概ねその理解でいいと思います。MASTERの初期値は0なので書き換えしない限り一番最初にADDCHARAされたキャラが主人になると言うことです。

キャラを全員表示した場合、除外しない限り当然MASTERも表示されます。それが調教対象選択の場面であればMASTERがMASTERを調教するということも起こりえます。

キャラクター変数で0〜CHARANUM-1以外のキャラ登録番号を参照しようとすると必ずエラーが発生します
MASTERだけでなくTARGETやASSIでも同様です。
DELCHARAなどでキャタクターを消した場合でも、登録番号は前に詰められるので負の値やCHARANUM以上の値を与えない限りエラーになることはありません。ただ、TARGETやASSIは初期値(誰も選ばれてないとき)は-1なので代入せずに使うとエラーになります。

また、キャラ操作系命令でキャラの登録番号が入れ替わってもMASTER,TARGET,ASSIなどは自動で追従するので殆どの場合手動で操作する必要はありません。

基本的にゲーム中に主人が変わることは余り無いのでMASTERを書き換える事はありません。だから主人になるキャラを最初に生成してMASTERは初期値のままのバリアントが多いです。

TARGETやASSIなどは頻繁に書き換わります。
と言うかキャラクター変数の第一引数は省略されていることが多いので、TARGETを書き換えないことにはキャラを選択出来ないです。

472466:2021/05/21(金) 14:36:06 ID:W00rNSUo

詳細な説明まことにありがとうございます
当初気になっていた部分は全て理解できたと思われます

MASTER代入の前例が余り無いながらも
仮に主人として操作するキャラを変更する場合は専用の関数等を作って
TARGETやASSI同様にMASTER == *で
その後のMASTERを対象にした処理では、代入した登録番号のキャラが参照されるという事で間違いないでしょうか

ご説明を拝読して思い出し、触手宮やSQNの入れ替わり処理やTWやKのなりきりニューゲームを見た所
MASTERはそのままに
ステータスを置き換える処理や
SWAP CHARAで登録番号だけ置き換える処理だったので
余り適切な処理では無いのかも知れませんが

473あなたの名前を入力してください:2021/05/21(金) 18:24:22 ID:MTWFqUYs
eramakerの仕様で言えばMASTERに任意のキャラ番号を代入するだけでいいはずなんだけど、
調教対象キャラを列挙するときに(MASTER==0を前提に)1〜CHARANUMで
ループしちゃってたりするので、SWAPCHARAで0番に入れ替えるとかじゃないかなぁ
この場合は SIF (COUNT == MASTER) ⇒ CONTINUE なんかで除外するようにすれば問題ない

後は単に調教対象キャラリストの番号が飛ぶのが嫌という神経質な人も居るかも(わたしです)
リスト選択肢番号とキャラ番号を分けて対応するのも面倒だし……

474あなたの名前を入力してください:2021/05/21(金) 23:08:47 ID:W00rNSUo
>>473
ループ処理との兼ね合いはとてもストンと納得できました
情報ありがとうございます

475あなたの名前を入力してください:2021/06/05(土) 23:45:39 ID:1hMPOvBs
興味もってwikiやらざっと目を通してみたんだけどほぼ内容理解できなかった…
プログラミングの知識から身に付けるべきなんでしょうか?

476あなたの名前を入力してください:2021/06/05(土) 23:50:51 ID:qxvsaLd.
実践しないと身につかない
恋慕に必要な好感度が記載されてるファイルを特定して数値をちょっと変えてみるとか簡単な改造から始めよう
数値弄るだけでエラー吐くことは少ない

477あなたの名前を入力してください:2021/06/06(日) 00:59:55 ID:Kru5v1LM
つまり前提知識は必要ではないのですね。返答ありがとうございました。善処します

478あなたの名前を入力してください:2021/06/06(日) 01:27:41 ID:HsZmTquE
トライアンドエラーでガチャガチャやってるうちに分かってくるレベルではあるけど、
変数とかIF分岐とか程度の初歩知識はあった方がスムーズに理解が進むかも

479あなたの名前を入力してください:2021/06/06(日) 01:55:52 ID:HOy/u1bw
wikiは行き詰まったら見返すぐらいがいいと思う

480あなたの名前を入力してください:2021/06/06(日) 09:30:13 ID:JBMyT9DI
IFとかも基本的な英語だから触ってればそのうち何となく分かるよね

481あなたの名前を入力してください:2021/06/07(月) 21:59:03 ID:dTIgsFhU
すいません、K系列でコマンドを自作する際はどのようにすればいいでしょうか

482あなたの名前を入力してください:2021/06/10(木) 00:06:01 ID:e2NKxmO.
>>481
tohoKの変更ログを見たらわかるかもしれんね
https://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1593673769/83-84n

483あなたの名前を入力してください:2021/06/10(木) 19:32:07 ID:WzkQvzlw
似たコマンドのCOMFをコピペして条件設定、train.csvに追加するまでは他と同じ
日常系は300番からで、持続行動が多いから他コマンドを網羅的にイメージして
重複できない体位や行動を実行中は不可に条件設定する必要がある
カテゴリ(愛撫とかSMとかのタブ)の設定と性知識条件が別ファイルにある
(_COM_CATEGORY.ERB/_COM_KNOWLEDGE_LEVEL.ERB)
できたらAI側にも追加(COM_AUTOSELECTフォルダ内)でよかった気がする

484あなたの名前を入力してください:2021/06/11(金) 19:54:00 ID:DdJGcgto
>>482、483
ありがとうございました。無事できました

485あなたの名前を入力してください:2021/06/16(水) 21:35:34 ID:pI78OSNY
【質問】SORTCHARAのキーワード(FORWARD or BACK)は、必ずベタ打ちしなければならないのでしょうか?
キャラクタをソートするボタンを作っているのですが、分岐処理がスマートに書けなくて泣いています

以下の例はシンプルですが、ABL、BASE、CFLAGなどのパターンと合わせると手間が結構変わるのでどうにかならないかな、と。
tohoKは自作のソーターを用意しているようでこの問題とは無縁でした。簡単に借りられるようなスケールでもなかったので以下で検討しています

・入力例
 RESULTS '= "FORWARD"
 RESULT = 1

・期待するコード (不正なキーワード扱いでエラー落ちする)
 SORTCHARA ABL:TARGET:RESULT, RESULTS

・妥協したコード
 IF RESULTS == "FORWARD"
  SORTCHARA ABL:TARGET:RESULT, FORWARD
 ELSE
  SORTCHARA ABL:TARGET:RESULT, BACK
 ENDIF

486あなたの名前を入力してください:2021/06/17(木) 21:19:18 ID:zlk8271g
>>485
tohoKは表示順を並べ替えているだけであって、実際のキャラ登録番号をソートで変更しているわけではありませんよね、確か。
それはともかく、FORWARDだけなら省略可能ですがBACKのベタ打ちは避けられないと思います。+ではないera板のEmueraスレで軽く要望が出されてたみたいだけど取り入れようという動きは無いと思います。
FORWARDとBACKでSORTCHARAの記述回数が2倍になるのを避けたいならば対処は2パターン思い付くけどスマートとは言い難いな……

パターン1. まずはFORWARDもBACKも指定無しでSORTCHARAしてから、必要に応じてキャラ順をループで前後入れ替える

パターン2. ソート基準になるパラメータを別に用意してからSORTCHARAする
; こんな感じで。文字列のソートには使えないけどね。逆順でパラメータに__INT__MIN__が含まれている場合も多分このままではダメ。
;
; ここからさらにSTRFORM()をうまく使って一旦文字列に変換してから数値に戻せばFORループ中のIFも減らせるかもしれないけど回りくどいし、静的な解析で検出できないエラーが出る可能性もあるからオススメとは言えないかもね……
IF ソート条件2 == "逆順"
 係数 = -1
ELSE
 係数 = 1
ENDIF
FOR LCOUNT, 0, CHARANUM
 IF ソート条件1 == "体力"
  CFLAG:LCOUNT:ソート基準 = 係数 * BASE:LCOUNT:体力
 ELSE ; ソート条件1 == "好感度"
  CFLAG:LCOUNT:ソート基準 = 係数 * CFLAG:LCOUNT:好感度
 ENDIF
NEXT
SORTCHARA CFLAG:ソート基準

487あなたの名前を入力してください:2021/06/17(木) 22:11:30 ID:8A6OzL0A
>>486
回答ありがとうございます! パターン2がステキだと思います
負数を掛ければFORWARD一発でいけるという発想が出てこなかったので助かりました

文字列ソートについても
OSDNのexcomにSTRFORM()が引っかからなかったのですが、
頭3文字くらいかじってENCODETOUNI()でもいけそうですね

過去の経緯も聞けて嬉しかったです。ありがとうございました!

488あなたの名前を入力してください:2021/06/17(木) 22:30:27 ID:L9Mg5SwU
自前でソーティングアルゴリズム書くんやで・・・・(邪笑)

489あなたの名前を入力してください:2021/06/17(木) 23:28:08 ID:zlk8271g
文字列のキャラクタ変数でソートする話とSTRFORMを使う話は別なのよー
STRFORMはexcomじゃなくてexmethなのよー

ところで、文字列のデータをあえてENCODETOUNIを使って数値に変換してソートするという手法は面白いかもしれませんね
逆に、「マイナスの数値が出ないように適当な値を加算してから桁数を揃えた文字列にする」で、さらに複数の数値をそれぞれ文字列にして連結してからソートすれば「体力が小さいキャラから順に並びつつ、体力が同じキャラ同士の中では好感度が小さいキャラから順に並ぶ」もSORTCHARAで実現可能かもしれませんね 自前でソート処理を書いたほうが早い(速くはないかもしれない)気もするけど

490あなたの名前を入力してください:2021/08/30(月) 10:54:44 ID:ofQA/SUQ
ちょっと質問
以下みたいにローカルで定数きった場合、続く配列宣言でその定数を認識してくれないんだが、これは仕様だろうか
UserVars見る限りではいけそうな気がするんだが

@HOGE(fuga:0 = "",fuga:1 = "")
#DIM CONST VALUE_COUNT = 2
#DIMS fuga,VALUE_COUNT ;<-コイツがエラー吐く
FOR index,0,VALUE_COUNT
PRINTFORML fuga:index
NEXT

491あなたの名前を入力してください:2021/08/31(火) 00:10:46 ID:YFTFos2s
>2018/07/16 ver 1.822
>対象の.NetFrameworkのバージョンを2.0から4.5に更新
>ERH内で宣言した定数をERH内で他の変数の宣言に利用できるように修正

ERB内では宣言できないと思う

492あなたの名前を入力してください:2021/08/31(火) 01:37:51 ID:g1YHBm/2
ドキュメントで言う「定数式」は式であって(プライベートの)CONST変数じゃダメってことかね
ERHの方でVALUE_COUNTを定義すれば通るけど、「この関数中では定義されていません」って
エラーメッセージが不自然だし、バグなんじゃないかなぁとも思うが、C#よくわからないんだよなぁ

493あなたの名前を入力してください:2021/09/04(土) 13:49:17 ID:HdZgv6Mg
>>491-492
んー、やっぱりバグっぽいのかな
一応確認してみるか

494あなたの名前を入力してください:2021/09/11(土) 18:16:34 ID:989l8OXo
幾つかのバリアントを参考に基礎的な部分を勉強しているのですが
最近まで更新されてるバリアントの多くが
関数@EVENTBUYを形だけ宣言して中身がほぼ無かったり別の関数に飛ばしたりしている印象を受けました

このEVENTBUYの扱われ方について独学ではいまひとつ要領を得られずこちらに書き込みました
自分で調べた限りでは
ショップ画面等でアイテムとして定義されてる番号を手打ちすると@EVENTBUYが実行される仕様があるという記述を見かけ
独自の購入処理関数を作ってEVENTBUYをそこへ飛ばす処理とする等で無効化しているのかなと考えています

また一部のバリアントではゲーム中でアイテムの売買が行われていながら
_replace.csvでは販売アイテム数が0に設定されている例もありこれもEVENTBUYに関連する事なのでしょうか

495あなたの名前を入力してください:2021/09/12(日) 01:02:30 ID:2/vKB4fY
>>494
@EVENTBUY はeramaker標準のアイテム購入処理時に呼び出されるイベント関数です。

ITEM の値を増やしたり、MONEY を減らしたりする処理はeramaker本体が行うので、
実は @EVENTBUY の宣言は必須ではなかったりします。
(EVENTBUYの主な用途は、購入メッセージの表示や個数限定アイテムの制御など)

詳しい処理内容については、以下の「SHOP」の項を参照してください。
https://ja.osdn.net/projects/emuera/wiki/flow

496あなたの名前を入力してください:2021/09/12(日) 01:05:36 ID:2/vKB4fY
>>494
で、多くのバリアントで @EVENTBUY が使われていない理由ですが、恐らく
eramaker標準のアイテム購入処理だといろいろ融通が利かない部分があるため、
標準処理を使わずに @USERSHOP 内で自前の購入処理を使う事が多いからでしょう。

_replace.csvでの 販売アイテム数,0 指定もこれに関連するもので、
ここでゼロを指定すると @SHOW_SHOP 後の入力で標準購入処理が呼ばれなくなります。
詳しくは下記の「販売アイテム数」の項を参照してください
https://ja.osdn.net/projects/emuera/wiki/replace

497あなたの名前を入力してください:2021/09/12(日) 18:55:20 ID:Y.AvNE3A
>>495
>>496
本当にありがとうございます
疑問が一気に解消されました

498あなたの名前を入力してください:2021/09/13(月) 07:40:27 ID:NGLbFyUY
Eramegatenでは同じキャラを複数加入させることが可能ですが
単純に同じキャラをADDCHARAさせれば番号以外の情報が同じキャラが追加されるという事でしょうか

499あなたの名前を入力してください:2021/09/13(月) 13:15:42 ID:J/RFbQiQ
>>498
可能だよ

500あなたの名前を入力してください:2021/09/13(月) 14:56:41 ID:NGLbFyUY
>>499
了解です。ありがとうございます

501あなたの名前を入力してください:2021/09/20(月) 17:36:49 ID:oTmt4s5.
CSTRの中身によってフラグを立てたいとき、現在見様見真似で作った例として
SELECTCASE CSTR:性格
CASE "強気", "生意気"
 SIF TALENT:処女
  CFLAG:1 = 1
ENDSELECT
という書き方でやっているのですが、処理したいものが1つなので2行で済むように書くと
SIF TALENT:処女 && (CSTR:性格 == "強気" || CSTR:性格 == "生意気")
 CFLAG:1 = 1
ここまではわかりまして(合ってるはず)、
これを条件が増えても書けるようにもっと縮めるにはどのように記述すればいいのでしょうか?
SIF TALENT:処女 && (CSTR:性格 == "強気" || "生意気")
 CFLAG:1 = 1
などは試してもエラーが出てしまいます

502あなたの名前を入力してください:2021/09/20(月) 18:18:40 ID:kWAu3Qmo
SIF TALENT:処女 && GROUPMATCH(CSTR:性格, "強気", "生意気")
条件式をこう書けばいけるかな

503あなたの名前を入力してください:2021/09/20(月) 18:27:12 ID:oTmt4s5.
>>502
求めてたものバッチリそのものでした!ありがとうございます!

504あなたの名前を入力してください:2021/09/23(木) 17:33:17 ID:4emUQ6RQ
4XのCSTRを編集したいのですが、方法がわかりません。
今までは主に触っていたeramegatenにはCSTRのファイルがCSVにあったのですが、
4Xにはないようで、GREPをかけてもそれらしい一覧を見つけることができませんでした。
どなたか教えていただけませんでしょうか。

505あなたの名前を入力してください:2021/09/23(木) 17:49:42 ID:PFhZsw/.
>>504
cstr.csvはあくまでラベリングのためのファイルだからなくてもいい
存在しないなら、当該バリアントで使用してないだけのことなので、追加してやれば動くには動く
ただ、バリアント主に一言言っておいた方がいいかもしれんが


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板