伺的なフォーラム

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

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

ログインしていません。

#26 Re: 開発 » 里々での開発相談 » 2018-08-04 08:44:12

里々で開発しています。
ドラッグしてきたファイルを指定の場所に指定の名前で保存する、という動作を目指しています。
解凍・圧縮したり壁紙を変更したりする動作と同じようなイメージなのですが
OnFileDrop2でファイルを渡す以降がどうしたらいいかわかりません。
ご助力お願いします。

#27 Re: 開発 » 里々での開発相談 » 2018-01-16 23:09:14

#35です
改善しました。
ありがとうございます。

#28 Re: 開発 » 里々での開発相談 » 2018-01-15 23:16:54

SSP2.4.13.3000, 里々で開発をしております
原因が全く分からないのですが、自分が開発してるゴーストが
SSPカレントディレクトリ\date\script.txt

行22(#sspext_talkrandom4)と行236~行282(時報)と行426(#extimemessage verylong)を喋るようになりました
どうすれば抑制できるのでしょうか……

#29 Re: 開発 » 里々での開発相談 » 2017-11-09 01:09:44

ありがとうございます。
少し理解に時間が掛かりましたが期待通り動きました。
ご丁寧にありがとうございました。

#30 Re: 開発 » 里々での開発相談 » 2017-11-05 00:29:09

里々にて、ゴーストを開発しています。
「ある時点」でのbindによる着せ替え情報(メガネを着けている、外している 猫耳を着けている、外している等)を記録しておいて、必要になった時にその情報を読み込んで着せ替えできるようにしたいです。
OnNotifyDressupInfoを使えば良いということは分かるのですが、具体的にどうすれば良いか分かりません
教えて頂けると助かります。

#31 Re: 開発 » 文/YAYAでの開発相談 » 2017-08-14 03:40:28

スクリプトの間違いは修正しているとします。
こちらの環境では、正しく現在の値が取れています。
get,propertyで取得した値を、すぐに使う場合、embedもしくはraiseで、別のイベントとして処理しなければなりません。
embedの解説も読んでみてください。

#32 Re: 開発 » 文/YAYAでの開発相談 » 2017-08-03 22:26:25

#31
get,propetyを使います。
何が取得出来るのかは、ukadocを参照してください。

getCoordinate
{
    _ret = ''
    _ret += '\![get,property,OnGetCoordinate,'
    _ret += 'currentghost.scope(0).x,currentghost.scope(0).y,'
    _ret += 'currentghost.scope(1).x,currentghost.scope(1).y
    _ret += ']'
    _ret
}

OnGetCoordinate
{
    sakuraPosX = reference[0]
    sakuraPosY = reference[1]
    keroPosX = reference[2]
    keroPosX = reference[3]
}

// any event
OnRandomTalk
{
    _talk = ''
    _talk += getCoordinate()
    _talk += '\![embed,OnCoodinateTalk]'
    _talk
}

OnCoodinateTalk
{
    _talk = ''
    _talk = '\0My X is ' + sakuraPosX + '.'
    _talk = '\1My Y is ' + keroPosY + '.'
    _talk
}

#33 Re: 開発 » 文/YAYAでの開発相談 » 2017-06-21 23:02:17


関数「OnEventName」を呼び出す


関数「OnFetchBootingGhostNameList」を呼び出す

#34 Re: 開発 » 文/YAYAでの開発相談 » 2017-06-21 22:59:45

ベースウェア「SSP」でのみ動作します。
関数「OnEventName」を呼び出すと、グローバル変数「ghostbootinglist」に現在起動しているゴーストの名前が配列で取得出来ます。
「さくらスクリプト」については、ukadocを参照してください。

OnFetchBootingGhostNameList
{
	_talk = ''
	_talk += '\![get,property,OnGetBootingGhostNameByPropertySystem'
	for _i = 0; _i < 100; _i++
	{
		_talk += ',activeghostlist.index(' + _i + ').name'
	}
	_talk += ']'
	_talk
}

OnGetBootingGhostNameByPropertySystem
{
	ghostbootinglist = IARRAY
	for _i = 0; _i < 100; _i++
	{
		if ( STRLEN(reference[_i]) > 0 )
		{
			ghostbootinglist ,= reference[_i]
		}
	}
}

「さくらスクリプト」を使うため、トークとして出力するので、注意してください。
起動と同時にゴースト名リストを取得したい場合、以下のような処理が必要です。

OnBoot
{
    _talk = ''
    _talk += OnFetchBootingGhostNameList()
    _talk += '\![embed,OnBootTalk]'
    _talk
}

OnBootTalk
{
    _talk = ''
    _talk += 'Hallo!\n'
    _talk += ANY(ghostbootinglist) + ' is booting.'
    _talk
}

#35 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-20 19:16:28

>33
整備班の里々使用環境です。
環境移行無く対処例もご提示頂き、ありがとうございます。
無事動きました。

#36 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-20 04:03:40

一定時間で切り替わってしまうということから、おそらく整備班の里々を使っていると推定します。
以下は里々での話です。

里々では、基準となるサーフェスを変更することができます。
http://soliton.sub.jp/satori/index.php? … 4#la079620

たとえば、キャラクターのオン/オフをメニューから制御する場合、以下のような書き方で制御できると思います。

#「satori_conf.txt」の既存の「@初期化」の末尾に追加
@初期化
#デフォルト記述内容省略
$キャラの表示=0

#「dicで始まる適当な辞書ファイル」に記述
*0つつかれ
>メニュー

*メニュー
:メニューです。
_◯キャラ表示切り替え

#↓以下が呼び出されるたびに、キャラの表示オン/オフが切り替わります。
#変数「$キャラの表示」には0なら1を、1なら0を格納しています。
#表示がオンの場合はkeroにはデフォルトでサーフェス20番を、オフなら10番を表示させます
*◯キャラ表示切り替え
$キャラの表示=(calc,(キャラの表示)==0)
$デフォルトサーフェス1=(when,(キャラの表示)==0,10,20)
:keroを(when,(キャラの表示)==0,非表示,表示)にしたよ。

#37 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-19 03:39:03

はじめまして。
ゴーストに実装したい機能が実現可能なのかどうか不明だったので、
もしよければ下記の要素が実現可能なものなのかどうか詳しい方に確認をお願いしたいです。

実装したいものは「ソロゴーストにスイッチ式のkeroを実装する」機能です。
別々のゴーストとして作る場合、セーブデータが分かれてしまい好感度などの変数が共有できないため、
ゴースト1体に何かしらのON/OFF機能で相方シェルの表示/非表示を切り替える機能を作れないかと考えています。

surface10を透明にし、別番号に相方シェルを振り分けたのですが、
スコープ切替時に番号指定をすることでkeroとして表示はできても、一定時間でsurface10に切り替わってしまい常時表示ができません。
kero側のみ一定時間で初期サーフェスに戻さない、といったようなことは可能なのでしょうか?

#38 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-05 21:31:28

何がしかの助けになれていれば、幸いです…!
こちらは好きでやっていることですし、
自分自身も色んなゴーストさんを見直してみて新しい発見があったり、
ななっちさんのお話から刺激を受けたこともありで、こちらこそ感謝しております。
あと、いろいろ書き出し(=思ってることを文章として形にしてみ)て、
それを時間をおいて見直してみることで、だんだんと実際に目指す形や着地点が見えてくることもあると思いますし、
結果オーライではないかなー、とも。

実際、刺激を受けた例として、
> 心理的に近いことを表現するために物理的に壁を作る
というのも、言われて初めて「あ、確かに」と感じたところだったりします。

なにか、「ユーザさんとゴーストの間で共有する問題というか障壁」があることで、
同じ釜の飯を食った仲的な…なにかもっと適切な表現があったような気もするんですが、
ともかく、そういう親近感というか仲間感というか連帯感を生み出す原動力になりうるなー、と。
しかし仰る通り、このアプローチだと「重い」ので、
ななっちさんの目指しておられる方向性にはそぐわない感じもしました。

それもあって、#29でななっちさんが仰った中の、下記部分はかなり重要なのではないか、と感じてます。
> 一方で、これは違うなと思うのが、ユーザさんが意図せず行動してしまう部分みたいです。
> 例えばランダムトークのなかにユーザさんの台詞や行動がはいっていたり、心理描写がはいったりとかな部分といったものがどうしても「おしつけがましく」感じてしまいます。
> ここをなくすことが、ユーザさんがユーザさんのままで接することができる…というものかなあと…
仰る通り、「ユーザさんが意図せず行動してしまう部分」が入ると、
「現実に伺かを起動してるユーザさん」≠「ゴースト世界観の中のユーザさん」なんだな、と受け取ってしまう人が多そうな感じ。

よほど深く物語世界に没入できるタイプの方といいますか、
どんなゴーストさん相手でも、その世界観のユーザさんに「なりきれて」しまうような方ならともかく、
大半の方はそうではないと思いますので、
「ユーザさんが意図せず行動してしまう部分」をできるだけ排除する方向は正解な気がしました。

ここで「できるだけ」と申し上げたのは、完全に0にするのは不可能だろう、と感じたからです。
(極端な例ですが、選択肢一つとっても「作者の想定する選択肢の中から選んでもらう」ことになる以上、
これとて「ユーザさんの選びたい選択肢がない」という形で、
「ユーザさんが意図せず行動してしまう部分」になってしまう可能性があるなー、と思いました)

なので、ななっちさんが既に挙げられた例の通り、
「ランダムトークのなかにはユーザさんの台詞や行動を入れない」「ゴースト側でユーザさんの心理描写をしない」
あたりを基本方針として持つくらいが、ちょうどいい塩梅ではないかと感じてます。
というより、それだけで十分ユーザさん側は自然体で接することができそうな気も。

昔ながらの、ゴーストがゴーストの世界で漫才したり駄弁ってるだけ(=ユーザさんの反応をそもそも期待してない)な子とかを眺めてて、
ああ、そういえばこの「軽さ」がデスクトップマスコットとか人工無能とか言われてた所以だったような気もするなあ、
と今更ながらに思っているところです…。

#39 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-05 06:39:27

いえ、おっしゃる通り、
「ロスト・ユー・サムウェア」の「ユーザさんとゴーストは(互いに異世界の住人で)交信しているだけ」という基本設定は今でも変わっておりません。

いちおう、ユーザさんは仮の実体を持った状態でルストリカさんの前にいるらしく、
ゴースト世界のユーザがルストリカさんに触ったり、飴玉をあげたり、ワインを飲ませてへべれけにしたり、
と、いろいろユーザさん→ゴースト方向の働きかけができるようにはなったりはしたのですが
ななっちさんの言われる通り、「ある意味で最初からずっと壁がある」ものですから、
「心理的な」意味ではともかく「物理的な」意味では今でも変わらず隔たりがある状況だな、と思います。

特に、ルストリカさんは「私(ルストリカ)からあなた(ユーザ)には何も(体温も、感触も、 物理的な何もかもを)伝えられないのが悲しい」、と
トークやさわり反応でたびたび言及されているため、むしろ「物理的な」意味での隔たりを強調する描写は少なくありません。
ただ、それが逆に、「ロスト・ユー・サムウェア」というゴーストの世界観描写に一役買っている感じです。
そこは変わらない一線なのだろうな、と感じさせる意味で。

ただ、「物理的に」そばにいる、という感覚…演出…よい表現が見当たりませんが、
ともかく「物理的に」のほうをうまく描写しようとすると…伺かのプラットフォームだと、厳しいものを感じてしまいますね。

自分の認識が、
「どんなゴーストもディスプレイ一枚隔てた別世界の住人」で、
「ゴースト→ユーザさんへの働きかけは言葉でしか為せない」
という固定観念があるせいだとは思いますし、そこを工夫すれば(錯覚なり何なりで取り除くか忘れさせれば)いいだけのような気もするのですが…

また、それこそARやVR系のアプローチ(現実世界への投影、五感刺激や強制的な没入感)が使えれば、
「物理的にそばにいる」を「体感」という形で強烈に表現できるので、
割合簡単に実現できそうな気がするものの…これはないものねだりになってしまいますね。

伺かのプラットフォーム上でも、
工夫すれば「物理的に隔たりがある」を「感じさせないようにする」ことはできないわけではない
(自分のような人に対してなら、「私もあなたに触れればいいのに」といった、ゴースト→ユーザさんの物理的な働きかけができないことを認識させてしまうようなトークを実装しない、など)
と思いますし、
伺かだからこその利点(慣れ親しんだマウス反応やトークといった諸要素が使える/ユーザさん側も大体反応が予想できる)
もあろうかと思いますので、
実装的に「物理的にそばにいる」を表現するのは不可能ではない(が、ちょっと難しい)のかな、と思っているところです。

先に挙げた実装例が、いずれも「心理的にそばにいる(距離を縮める)」効果を「積極的に」狙えるものであるのに対し、
現状思いついた「ゴースト→ユーザさんの物理的な働きかけができないことを認識させてしまうようなトークを実装しない」が、
「消極的な」ものであることも理由の一つだったり。

こちらからはそんな感じです。
「心理的にそばにいる」方向の効果を狙った実装例は探したつもりですが、
「物理的にそばにいる」方向の効果を狙った実装例は、(先入観もあって)ほとんど見れてませんでした。
ちょっと視点を変えて、見直していってみますね。(またのんびりペースになるとは思いますが…)
よろしくお願いします。

#40 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-04 05:40:23

ほか、気になったものとしては…
「Bar Lakritze」の莉玖さんの場合も、同じように「ユーザの好みを聞いてトークに活かす」パターンがありました。

こっちはランダムトークの一つで「あっ、そうだ……(ユーザ名)はどんなお酒が好きかな?」と聞いてくれて、
「甘いのが好き」「辛いの好き」「酒が好き」の選択肢回答結果を(ユーザ嗜好)として保存しておき、
「一緒にお酒飲もうよ」とコミュで誘ったときに、
「うん……なら、(ユーザ名)と同じの飲もうかな……。 ……確か、(ユーザ名)は甘い/ドライなカクテルが好きだったよね。
じゃあ…(甘口カクテル)/(辛口カクテル)でいいかな……。」
みたいに、ユーザさんと一緒のを選んで飲んでくれるというのがありました。
「酒が好き」の場合は(甘口カクテル)/(辛口カクテル)に限らずすべてのカクテル中からランダムチョイスする感じではありますが、
それでもユーザさんと同じのを飲もうかな、と言ってくれるのは同じ。

「好み(に限らず、ユーザさんの固有の何か、誕生日もその一つでしょうか)を覚えていてくれる」のは…
ベタかもしれませんが、やっぱりグッとくるものがあるなー、とは思いました。
会話の流れで自然に聞き出しておいて、
ここぞというトークで「あ、ちゃんと覚えててくれたんだ」と思わせるように出すと、より効果的かな、とも。

また何か、現実のユーザさんに寄り添うような効果が狙えるかなと思えた実装があれば、
適宜ご報告しますね。
ひとまず、以上です。よろしくお願いします。

#41 Re: 開発 » 伺か関連開発なんでも相談 » 2017-04-01 02:38:17

一つだけ、#21で申し上げたのと同じことかもですが。

「蓮華と乳母ゅう」さんの蓮華さんにて、
段階が進むと、起動時に「どういう味付けがお好きですか?」と聞いてくれて、
「濃いめ」「薄め」の選択肢回答を(ユーザ味の好み)としてセーブデータに保存しておき、、
さらに段階が進むと
「今日は(ユーザ味の好み)のお料理を作ってみました。」という感じで活かす、という実装がありました。

ご参考まで。

#42 Re: 開発 » 伺か関連開発なんでも相談 » 2017-03-28 01:08:54

ずいぶん間が開いてしまってすいません。
手持ちのゴースト1400体弱ほどを見てみたのですが、
「ゴーストが(現実の)ユーザに寄り添う」効果を狙ったような実装は、ルストリカさんを除いて皆無と言っていいほど見当たりませんでした…。
ほとんどのゴーストにおいて、ゴースト世界観内のユーザ≠現実世界のユーザであることを鑑みても、これほどとは…。

一緒に住んでるorそれに準ずる設定(例えば同じ事務所にほぼ住み込みで仕事してるとか)のゴーストさんは結構いらっしゃるものの、
いずれもゴースト世界におけるユーザさんとの会話を眺めている感じだったので、
ななっちさんの狙いに対して、それらの実装(アプローチ)が参考になるかは微妙な感じ…。

お力になれず申し訳ないです…。

#43 Re: 開発 » シェルの制作相談 » 2017-03-27 18:33:44

>>3
ありがとうございます!きれいに表示されるようになりました。感謝します。

#44 Re: 開発 » シェルの制作相談 » 2017-03-27 05:21:37

アニメーションのパターン0に問題があります。

animation1000.pattern0,overlay,1001,200,150,-101

上記の部分を以下のように書き換えてください。

animation1000.pattern0,overlay,1001,0,150,-101

アニメーションについて、「animation*.pattern*,描画メソッド,サーフェスID,ウェイト,X座標,Y座標」という順で記述しますが、
ここでのウェイトは「そのコマが表示されるまでの時間」を意味しています。
そして、着せ替えやアニメーションはサーフェスが変わるといったん全てリセットされ、最初から再生しなおします。
つまり最初の設定では「サーフェスが変わるたびに0.2秒の着せ替えの表示されない時間」が出てしまいます。

もし、使っているshioriが里々の場合、トーク開始時に必ずサーフェスをセットするため、トークにサーフェスの指定がなくてもこの問題が起こります。
里々wikiの説明も確認してみてください。

#45 Re: 開発 » シェルの制作相談 » 2017-03-27 01:19:51

SSPです。着せ替えのアニメーションを作ったのですが、台詞時に一瞬その着せ替えが消えます。

animation1000.interval,bind+always
animation1000.option,background
animation1000.pattern0,overlay,1001,200,150,-101
animation1000.pattern1,overlay,1002,200,150,-102
animation1000.pattern2,overlay,1003,200,150,-103

このような記述です。他のアニメーションの無い着せ替えパーツはちらつくことは無いです。
ちらつきを無くすにはどうしたらいいでしょうか。

#46 Re: 開発 » バルーンの制作相談 » 2017-03-11 22:40:13

#8

validrect.topの挙動が怪しいのかもしれませんね。
そうなると、各種定義ファイルの記述を変えるだけでは解決できそうにありません。
一応SSPの作者様にこのスレッドについて伝えましたが、より詳しい要因が分かったら、ここではなく、先のレスで述べたSSPのフォームへ報告した方がスムーズだと思います。

#47 Re: 開発 » バルーンの制作相談 » 2017-03-11 10:31:56

#6

validrect.topをballoons*s.txtで設定しているバルーンは数多くあります。
balloons*s.txtに書いた内容は、descript.txtの内容を上書きするはずなので、SSPのバグな気がしますね。

ゴースト上の右クリック→機能→開発用パレットにあるバルーンテストモード(要:開発者機能オン)ではどうでしょうか。
この状態で表示される行数と、自然にスクロールした時に表示されている行数は同じでしょうか。

#48 Re: 開発 » バルーンの制作相談 » 2017-03-09 22:35:03

#4

前提として、「行単位」で調整されるため、1行以下のズレは必ずでます。
スクロールの必要がないスクリプトの上端・下端の場合、めいっぱいまで表示しようとするので、少し下がって表示されることがあります。

それを踏まえて、最低限の設定ではどうでしょうか。
balloons*s.txt、balloonk*s.txtを全て削除し、descript.txtを以下のみにします。

charset,Shift_JIS
type,balloon
name,バルーン名

font.height,12

validrect.left,0
validrect.top,0
validrect.right,0
validrect.bottom,-38

これでも症状が出るのであれば、仕様かバグかなんとも言えませんので、SSPに報告した方が良いと思います。
ばぐとら研ToDo::SSP

#49 Re: 開発 » バルーンの制作相談 » 2017-03-09 16:29:14

#2

どのような記述をしているかは分かりませんが、validrect.bottomに負数を設定してみてください。
SSPなら、画像の下端からのピクセル数に設定されるため、スクロールがはみ出すことはなくなると思います。

#50 Re: 開発 » 伺か関連開発なんでも相談 » 2017-03-09 03:16:26

なにがしかのヒントになったのなら幸いです…!

…しばらくいろんなゴーストを見てみてたのですが、
特別なイベントが発生した時「以外」、つまりは「通常起動時に質問を投げかけてくる」ゴーストさんって、
ほとんど居ないのかしら…?

まだ300体と少ししかチェックできてませんが、
今のところ、「ロスト・ユー・サムウェア」のルストリカさんくらいしか居なさげ。

彼女の場合も、基本的には起動時ランダムトーク(の反応)のバリエーションを増やすのが主たる目的であって、
特にユーザさんの応答(反応)から得た「何らかの情報」を、他のトークや処理に使ってるわけではない
(dic_talk_start_and_end.txt の処理を覗いた限りでは、ですが)ことと、
愚直に、ユーザさんからの応答を逐一記録・活用する場合に発生する非現実的な作業量を考えると…

・当たり障りのないトークをする(おかえり・おはよう 等の挨拶ではなくランダムトークに近いような)
・選択肢を出して選んでもらう
は、(ルストリカさんの処理を真似る形になっちゃいますが)
・当たり障りのないトークをする(おかえり・おはよう 等の挨拶ではなくランダムトークに近いような)
・↑のトークと同時に選択肢を出しておき、反応があればランダムトークに彩りを添える程度の味付けをする
程度に抑えるのが、現実的な実装例の一つなのかな、と思いました。

…もう一歩すすんで、
・当たり障りのないトークをする(おかえり・おはよう 等の挨拶ではなくランダムトークに近いような)
・↑のトークと同時に選択肢を出しておき、反応があればランダムトークに彩りを添える程度の味付けをする
・ついでに応答内容を適当なフラグなりデータなりとして保存しておいて、他のトークや次回起動時に活用する
(たとえばご飯の話題とかで、「好物」や「味の好み」とかをさらっと拾っておいて、別のいちゃいちゃトークとかで使う)
くらいまでできたら良いなあ…と思いつつも、
コスパの悪さ(増加する作業量の多さに対して、演出効果が期待できる場面・範囲が狭くなりがちなこと)とか、
回答しなくてもよいトークにしつつ、自然に情報を引き出せるような「上手いトーク」にする工夫の大変さを考えると…
かかる労力に見合う効果が得られるかは…厳しそうですね。

あ、それと、
「選ばなくても特に後腐れがない、という軽さ」のお話がありましたが、
これもルストリカさんが上手く実現されてるように思います。

基本のトーク内容を「ユーザさんからの応答がなくても完結する話しかけ」としておいて、
ユーザさんの応答があれば、それに対応した付加的なトークで広がりを持たせる(=会話のキャッチボールが成立した感じを出す)感じなのですが、
これだけでかなりのいちゃいちゃ度向上、というか「ゴーストがユーザさんに寄り添ってきてくれてる」ような演出効果が得られそう、と感じました。

Board footer

Powered by FluxBB