伺的なフォーラム

伺か向けのフォーラム。自由に使ってください。ユーザアカウント登録なしで閲覧できます。

共有アカウント: 774user / 774user

ログインしていません。

#1 2015-11-13 13:46:26

もっしょくし
Moderator
登録日: 2015-11-12
投稿: 13

里々での開発相談

里々を使ったゴースト制作に関する相談・質問など全般を扱うトピックです。

■関連サイト

■最新版の里々の入手
https://drive.google.com/folderview?id= … e_web#list
分りにくいですが、ずらっと並んでいる「satori-mc○○-○.zip」の中で○○の番号が一番大きいやつ(下の方)が最新です。
それをクリックした後、内容が表示されたら画面上の方にある下向き矢印に下線が引かれたようなアイコンを押すと、ダウンロードできます。

オフライン

#2 2015-12-21 16:38:55

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

里々にて、ゴーストを開発しています。

1.「好感度が低い時は、低い時のトークしかしない」

2.「好感度が一定値に達したとき、専用のイベントが起こる
(イベントが起こるのは、1回だけを想定)」

3.「イベントが起こったあとは、イベント後(デレ)のトークしかしない」

という動作にしたいのですが、
主に2行目の
「好感度が一定値に達したとき
、専用のイベントが起こる
(イベントが起こるのは、1回だけを想定)」の
実装方法が、思いつかず、困っています……。

現状の実装は、

好感度が低いとき(ツントーク):

*【タブ】(好感度)<=100
:あなたに話すことなんてないわ。

理想の動作(実装・記述していません):
(好感度が100に達したときに発生する)

*好感度100イベント
:…私は、許されないことをしたわ。
…こんな私でも、あなたは許してくれるの?

好感度が高いとき(デレトーク):

*【タブ】(好感度)>=100
:あなたって、変な人ね…ふふっ。

のような実装をしています。
(トークなどは例です)

辞書の大幅な改修が必要かとは思いますが、
よい方法があればご教授頂ければと思います。

また、この質問が既出・既出に近いものであれば、
お手数かと思いますが、恥ずかしいので削除して頂ければと思います。

よろしくお願い致します。

オフライン

#3 2015-12-21 21:11:19

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>2

◆発生タイミング

2.「好感度が一定値に達したとき、専用のイベントが起こる
(イベントが起こるのは、1回だけを想定)」

の、(例で言うなら「好感度100イベント」)を起こしたいタイミングは、どういう時でしょうか?

とりあえずいくつか考えてみると、

  1. 好感度が加算された瞬間(カーソル反応・起動など?)

  2. ダブルクリックなどで独自のメニューを出している場合、そこに(条件を満たした時のみ)イベント開始ボタンを置く

  3. 起動・終了時

  4. ランダムトーク発生時に条件を満たしていればイベントにジャンプ

作者さんの意向が大いに現れる部分だと思いますので、上の例示に希望するものがなくても遠慮なく教えてください。


◆一回だけ起きるイベント

【タブ】はタブ文字です。

イベントの末尾あたりで変数を作成しましょう。
sync関数を使用しているのは、起こすイベントが\xや選択肢分岐など一度に表示されない場合に、ちゃんとイベント(のスクリプト)が最後まで実行されてから記録をしたいからです。
行末のファイは見易くするための改行の無効化です。

*好感度100イベント
:…私は、許されないことをしたわ。
…こんな私でも、あなたは許してくれるの?φ
(sync,(set,好感度100イベント発生済,1))

イベントが分岐するタイミングに

>好感度100イベント【タブ】(when、(変数「好感度」の存在)、(好感度)>=100&&(変数「好感度100イベント発生済」の存在)!=1、0)

みたいな感じでいかがでしょうか。

オフライン

#4 2015-12-21 21:58:06

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

>>3
ろすえん様

早速のご返信、どうもありがとうございます。
当方の不手際で、

1.イベントを起こしたいタイミング

2.前提条件(好感度の加算タイミング)

の2つが投稿の記入から漏れておりました。
申し訳ございません。

イベントを起こしたいタイミングは、
ろすえん様が仰って頂いている

『 4.ランダムトーク発生時に条件を満たしていればイベントにジャンプ 』

を想定しています。

開発中のゴーストの好感度の加算タイミングなのですが、

*OnTalk
>(R1)【タブ】(R0)
$好感度=(好感度)+(乱数0~1)
()

のように、ランダムトークで上昇する
(この記述の場合、上昇しない場合もあると思いますが…)
記述をしております。

この場合、(4)の動作を起こしたい場合は

*OnTalk
>好感度100イベント【タブ】(when、(変数「好感度」の存在)、(好感度)>=100&&(変数「好感度100イベント発生済」の存在)!=1、0)
>(R1)【タブ】(R0)
$親密度=(好感度)+(乱数0~1)
()

のように記述すれば、

*好感度100イベント
:…私は、許されないことをしたわ。
…こんな私でも、あなたは許してくれるの?φ
(sync,(set,好感度100イベント発生済,1))

のイベントにジャンプしてくれるのでしょうか?
無学でお恥ずかしいのですが、よろしくお願い致します。

オフライン

#5 2015-12-21 22:01:09

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

>>4
すみません、>>4の投稿の者です。
一部『親密度』と『好感度』を間違えてしまった記述がありますが、
見落としによるミスですので、今回はあまり気にしないで頂けると幸いです…。
重ね重ねお恥ずかしいです。

オフライン

#6 2015-12-21 22:17:17

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>4
その記述で大丈夫だと思います。

あと大筋では影響のない事(好みの問題レベル)ですが、いくつか追加を。

◆「好感度」変数の存在しない状態がありえない(satori_conf.txtで初期状態を設定しているなど)場合
条件分岐を短くできます。

>好感度100イベント【タブ】(好感度)>=100&&(変数「好感度100イベント発生済」の存在)!=1

◆「好感度100イベント」がさほど長くない場合
例の文章ぐらいの長さなら、$による変数代入でもいいと思います。一覧性が良くなるかもしれません。

*好感度100イベント
$好感度100イベント発生済【タブ】1
:…私は、許されないことをしたわ。
…こんな私でも、あなたは許してくれるの?

オフライン

#7 2015-12-21 22:29:00

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

>>6
ろすえん様
>>2からの質問の者です。
ご教授ありがとうございます。
教えて頂いた記述で実装しようと思います。
わかりやすく、丁寧に教えて頂き、どうもありがとうございます!

オフライン

#8 2016-07-11 02:56:47

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

はじめまして。里々でソロゴーストを開発しているのですが
辞書フォルダを通常の物から別のに変更するとなぜか¥1側に着せ替え衣装のサーフェスが出るようになってしまいました。
通常の辞書では¥1側には何も表示されません。
辞書切り替え時にデフォルトサーフェス1【タブ】10にするなどしてみましたが改善されませんでした。
改善方法をご存知でしたら是非、ご教授をお願いしたいです。
宜しくお願い致します。

オフライン

#9 2016-07-23 15:08:52

名無し
メンバー
登録日: 2016-07-23
投稿: 2

Re: 里々での開発相談

初めまして。
ゴーストの開発はつい最近始めたばかりで、右も左も分かりません…

お伺いしたいのはOnUserInputに関することです。
ユーザーに半ば無理矢理「好き」と言わせるイベントを作成しています。とりあえず
¥![open,inputbox,好き]
でインプットボックスを開き、
$(R0)【タブ】(R1)
>(R0)を教えてもらった


*好きを教えてもらった
に飛んで、R0とR1が一致した場合のみ(好き と入力された場合のみ)先のイベントに飛ぶようになっています

しかし完全一致の場合でしかイベントに飛べません
複数の言葉(好き 愛してる スキ すき)を指定するにはどうすればいいのでしょうか…

オフライン

#10 2016-07-23 18:24:00

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

>>9
簡単な方法であれば、countを使うことでも対処ができます。

*好きを教えてもらった
>イベント【タブ】(count(バイト値、1)好き_愛してる_スキ_すき(バイト値、1)(好き))>0

countは(count,対象文字列,探す文字列)で、対象文字列中に探す文字列が何個あるかを調べるものです。
里々wikiも参照してみてください。
欠点として、これだと「き_愛し」などでも条件を満たしてしまいますが、このコードを見ないかぎりは思いつかないでしょう。

オフライン

#11 2016-07-24 15:25:14

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

>>8
情報が足りないので推測でしかないのですが、
辞書フォルダを別のに変更するときの記述に、「サーフェス加算値」が混ざってはいないでしょうか?
これは、サーフェス加算値で指定した数値を番号に加算するための設定で、
例えば、>>8さんのおっしゃる着せ替え衣装のサーフェスのファイル名が、surface110.png、になっていた場合
ここに $サーフェス加算値【タブ】100 という記述があったのであれば
\1側に表示されてしまうと思われます。

オフライン

#12 2016-07-26 14:58:36

名無し
メンバー
登録日: 2016-07-23
投稿: 2

Re: 里々での開発相談

>>10
ありがとうございました!想定通りに動きました。
これからはしっかりwikiを読もうと思います……

オフライン

#13 2016-11-12 22:57:51

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

はじめまして。現在入力した時間が経過するとお知らせしてくれるゴーストを作成中なのですが、

*タイマーを設定したい
:いいよ!
何分にする?
:ダイアログに何分かを入力して「OK」を押してくれ
\![open,inputbox,時間]

*OnUserInput
$(R0)【タブ】(R1)
>(R0)を教えてもらった

*時間を教えてもらった
>おかしい【タブ】(is_digit,(時間))==0
:(時間)分でいい?
だめなら入力しなおしてね

_いい【タブ】タイマー設定
_だめ【タブ】タイマーを設定したい
_やっぱりやめる【タブ】やっぱりなんでもない


*タイマー設定
:(時間)分後にお知らせするねっ!
$お知らせタイマ【タブ】(時間)

*お知らせ
:タイマーを設定した時間だよー!


*おかしい
数字を入れろ!!
:おっ、落ち着いて!
$時間【タブ】

_入れなおす【タブ】タイマーを設定したい
_やっぱりやめる【タブ】やっぱりなんでもない

inputboxに数字以外の文字列を入れられないようにis_digitを入れてあるのですが
数字を入れてもその他の文字を入れても「おかしい」のトークに飛んでしまい、
時間を入力することすら出来ません。
どこかおかしいのでしょうか……。

オフライン

#14 2016-11-15 05:07:58

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

こちらでそのスクリプトを動かしたところ、正常に動作しますね。
考えられるのは以下2点でしょうか。

・里々が古い
is_digitは古いバージョンだと使えません。(正確には、ssu.dllという同梱SAORIの機能)
最新版の里々に入れ替えてみると治るかもしれません。

・「時間」という名前の文、単語群がすでに存在している

(文「時間」の存在)
(単語群「時間」の存在)

上記で1なら存在しています。
この場合、「時間」を「タイマー時間」など重複しない名前に変えることでうまく動くと思います。

余談ですが、時間設定が「分」単位なのに対し、お知らせタイマにそのまま代入しているため、「秒」単位になってしまっています。

*タイマー設定
:(時間)分後にお知らせするねっ!
$お知らせタイマ=(時間)*60

など、分を秒に変換する必要があります。

オフライン

#15 2016-11-15 19:25:16

774user
774user
登録日: 2015-11-16
投稿: 60

Re: 里々での開発相談

ありがとうございます!
ファイル内を確認してみたところ、ssu.dllが無かったため導入して再度試行してみた結果、正常に動作しました。
どうやら手違いで消去してしまっていたようです。

時間に関してのアドバイスもありがとうございました。無事分単位のタイマーをかけられるようになりました。

オフライン

#16 2017-02-04 18:41:11

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

はじめまして。
昔開発したゴーストを久々にネットワーク更新しようと思い、セーブデータやprofileフォルダ等を消してupdates2.dauを生成、サーバーにアップロードしたのですが、ネットワーク更新をしようとすると更新情報を取得中(*OnUpdateBegin)の台詞で止まったままになってしまいます。
クリックすると更新をかけたゴーストは台詞が消えていつもの動作に戻りますが、フォルダの中身は更新されていません。
更新の内容は、里里を新しくしたのと、簡単なバグ対応です。取得中より先に行けないのにはどんな理由が考えられるでしょうか。
久々に触ったので、色々忘れたり新しくなっていたりして、下手に触れないのでここに質問させて頂きます。

オフライン

#17 2017-02-04 22:15:43

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>16
何らかの理由で更新に失敗していると思われます。
そのゴーストに「*OnUpdateFailure」はありますか?
あればそこの「R0」という変数に失敗理由が入っていると思います。
「*OnUpdateFailure」が無いのであれば、テスト用に手元のゴーストのデータに一時的に「*OnUpdateFailure」を書き加えて、どういう結果になるかもう一度試していただけますでしょうか。

以下は書き加える場合のスクリプトの例です。

*OnUpdateFailure
:ネットワーク更新に失敗しました。
理由は「(R0)」です。

失敗理由の詳細は、http://ssp.shillest.net/ukadoc/manual/l … ultfailureをご覧ください。
リンク先はukadoc(伺か関連の仕様文書集約プロジェクト)です。

オフライン

#18 2017-02-04 23:04:21

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

>>17
ありがとうございます。
*OnUpdateFailureはネットワーク更新(R0)にジャンプするするように記述していました。ジャンプではなく上記の方法に変更して更新してみましたが、OnUpdateBeginのセリフで完全に止まって理由はわかりませんでした。
昨日からアップロード方法をGDMにしたりと色々していた所、取得中の台詞で完全に固まるようになりました。反応なく、フリーズして落ちてしまいます。

オフライン

#19 2017-02-04 23:55:18

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>18
私がいま思いつく原因は、
1 里々に何か重い操作をさせてしまっている(無限ループとか)
2 本体(SSPなど)の不具合
3 サーバーの不具合
の3つです。

1であるかどうかはれしばを見てもらうとわかるかもしれません。
Rポストと狛犬に含まれています(リンク先里々wiki)

2であるかどうかは、ssp.exeと同じフォルダにSTACKTRC.TXTができているかどうか、できている場合そのファイルの更新日時を確認して、SSPが落ちた時刻と同じであれば原因の特定に役立ちます。(内容にはコンピュータのログインユーザ名や同時に起動しているプログラム名などが含まれるので、アップする際はご注意ください)
近い時刻のファイルがある場合、以下の点を教えてください。
4行目の「Time: ~~」といった時刻がそのファイルの記録内容の日時です。
・行の先頭に「==>」という文字がある行が「ssp.exe」であるかどうか
・行の先頭に「==>」という文字がある、二番目の行が「satori.dll」または「ssu.dll」であるかどうか

3の確かめ方は私にはわかりません。ごめんなさい。

オフライン

#20 2017-02-05 01:21:47

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

>>19
SSPが落ちた正確な時間かどうかわからなかったので、もう一回再現してみようかと思った所、取得中のままですが、バルーンにself]descript.txt1/7と表示され、取得中のアニメーションだけ動くようになりました。しかしその後結局SSPの反応が不安定になるのは一緒でした。
れしばを見たところ、複雑な動作を起こしているようでもないみたいです。
STACKTRC.TXTですが、
Time: 2017/2/4 18:14:16.803
==> -00002040 : ssp.exe (1 Threads.)
                2.3.96.3000 - SSP
という記述の事でしょうか

オフライン

#21 2017-02-05 01:31:59

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>20
可能性の4つめとして、アンチウイルスソフトにSSPの更新動作がブロックされているというのはないでしょうか。
アンチウイルスソフトの検知ログみたいなものにSSPが載っていればその可能性が濃厚です。
一般に配布されている他所のゴースト(あなたの制作されたものでない)は正常にネットワーク更新できますか?

オフライン

#22 2017-02-05 02:31:27

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

>>21
試しに他PCで更新を試した所、無事更新できました。とりあえず更新方法が間違っていなかったことだけはわかり一安心です。
ただ、問題源のPCで他のゴーストを更新したところ、更新できたゴーストも居ましたが、不安定で中には同じ症状になるゴーストも居ました。
セキュリティソフトのログにはSSPはありませんでした。今度はこっちの原因探しになりそうです。この症状だともしかしたら他のユーザーにも同様の例が確認されているかもしれません。

オフライン

#23 2017-02-08 14:59:23

ろすえん
メンバー
登録日: 2015-12-21
投稿: 19
ウェブサイト

Re: 里々での開発相談

>>22
お役には立てませんでしたが、ひとまず更新はできたようで良かったです。
OSのファイアウォール機能でも、SSPなどでのゴーストのネットワーク更新がブロックされる時があるかもしれません。
その辺は私は明るくないので、詳しい方の登場を願うしかありません。
SSP不具合でしたらばぐとら研ToDoが報告窓口です。

オフライン

#24 2017-02-11 01:37:25

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

>>23
いえ、一人では暫く詰んでいたでしょうから、とても助かりました。ありがとうございます。何回か再起動をかけたところ、更新が正常になりました。同じ原因かはわかりませんが、ばくとらでは原因究明中みたいですね。

オフライン

#25 2017-02-11 23:42:45

MA
メンバー
登録日: 2017-02-04
投稿: 13

Re: 里々での開発相談

質問失礼致します。
\![set,sticky-window,0,1,2]でソロゴーストに\1以降のバルーンを追従させたのですが、saori等も更新されているのにも関わらずネットワーク更新先では\2のバルーンが追従しません。編集段階では0,1,2問題なく一緒に動きます。

\![set,alignmenttodesktop,free]\![move,0,0,0,0,left.top,left.top]\![set,sticky-window,0,1,2]
を起動時に加えています。
更新先で追従しないバルーンは、
\p[2]\c\b[4]台詞
といった具合です。

オフライン

Board footer