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

ゴーストをつくろうとしてる人たちが話すスレ

1164任意たん@age推奨:2024/12/15(日) 12:22:32
>>1163
element0,base,0000.png,0,0
は本体の顔で、0001.png〜0030.pngにかけて角度が変わっていくものと推察します
以下はその推察に基づいてお話します。

surface0とsurface1とでは顔の角度が変わるので
前髪、目、口の角度も相応に変わるかと思います
そのため、surface0のまばたきとsurface1のまばたきとでは
パーツの角度が違うために別々に設定する必要があるはずです

surface.append0の内容のうち
animation0は顔の角度のアニメーションなので
これは削除して独立させます

animation1以下はsurface0用のアニメーションなので
これらはすべてsurface0内に統合します

surface1内に
element0,base,0001.png,0,0用の角度の前髪、まばたき、口パクを記述します
これらに使用されるパーツはbase,0001.png用の角度で作られるので
surface0のまばたき用のsurface100〜surface106は使用できません
前髪、口パクについても同様です

surface0〜surface30用にそれぞれ専用のアニメーションを設定したら
surface1000(数字は適当)
{
element0,base,0000.png,0,0
element1,overlay,eye/0000.png,0,0
element2,overlay,mouse/0000.png,0,0

animation0.interval,always
animation0.option,shared-index
animation0.pattern1,base,1,20,0,0
animation0.pattern2,base,2,20,0,0
(略)
animation0.pattern29,base,29,20,0,0
animation0.pattern30,base,30,20,0,0
}
とすることで顔の角度に合わせて
各パーツがアニメーションするサーフェスができるかと思います

動作確認ができないので
多分そうだろうという予測で書いています
違っていたらごめんなさい

1165任意たん@age推奨:2024/12/15(日) 20:24:39
>>1164
ご推察いただいた通りの仕様です。0000.pngは顔と体パーツになり、0001.png〜0030.pngにかけて少しずつ角度が変わった後0000.pngの位置に戻りループするものです。説明不足を補って読み解いてくださり感謝いたします。
それとmouthがmouseという誤記になっておりました。紛らわしい記述をしてしまい申し訳ありません。

surface0-30 顔体・目・口パーツ
surface100-130 まばたき画像1(半目)
surface140-170 まばたき画像2(閉じる)
surface300-330 口パク画像1(半開け)
surface340-370 口パク画像2(開ける)
surface200-230 前髪画像
それぞれsurface0-30に対応して位置・角度が変わりループする画像です

surface.append0
{
//まばたき
animation1.interval,sometimes
animation1.option,shared-index
animation1.pattern1,overlay,100,50,0,0
animation1.pattern2,overlay,140,50,0,0
animation1.pattern3,overlay,-1,50,0,0
//口パク
animation2.interval,talk,1
animation2.option,shared-index
animation2.pattern1,overlay,300,50,0,0
animation2.pattern2,overlay,340,50,0,0
animation2.pattern3,overlay,-1,50,0,0
//前髪
animation3.interval,always
animation3.option,shared-index
animation3.pattern1,overlay,200,0,0,0
}
(略)
surface.append30
{
//まばたき
animation1.interval,sometimes
animation1.option,shared-index
animation1.pattern1,overlay,130,50,0,0
animation1.pattern2,overlay,170,50,0,0
animation1.pattern3,overlay,-1,50,0,0
//口パク
animation2.interval,talk,1
animation2.option,shared-index
animation2.pattern1,overlay,330,50,0,0
animation2.pattern2,overlay,370,50,0,0
animation2.pattern3,overlay,-1,50,0,0
//前髪
animation3.interval,always
animation3.option,shared-index
animation3.pattern1,overlay,230,0,0,0
}

surface1000
{
element0,base,0000.png,0,0
element1,overlay,eye/0000.png,0,0
element2,overlay,mouse/0000.png,0,0

animation0.interval,always
animation0.option,shared-index
animation0.pattern1,base,1,20,0,0
animation0.pattern2,base,2,20,0,0
(略)
animation0.pattern29,base,29,20,0,0
animation0.pattern30,base,30,20,0,0
}

以上のように作り直してみました。
ご指示に添えているかあまり自信がありません。確認いただきご指摘があればお願いいたします…。
この状態でsurface1000を確認するとアニメは0(ALWY)のみが表示されアニメしています。surface0-30に設定した各アニメは表示されません。
surface0-30にはそれぞれ1(RAND),2(TALK),3(ONCE)が設定されており1と2を選ぶとまばたきと口パクをし、前髪が表示されています。

1166任意たん@age推奨:2024/12/16(月) 02:24:22
横槍失礼します。
現時点でのSSPでは、アニメーションからアニメーションを呼び出すことは(着せ替えのbind以外では)できなかったと思います。
(surface1000からアニメーションとして呼び出したsurface0〜30のアニメーションは動作せず、
ベースサーフェスのみが表示される)
参考情報1: https://ssp.shillest.net/ukadoc/manual/descript_shell_surfaces.html#introduction_drawmethod
参考情報2: https://wikiwiki.jp/ukatec/%E5%A4%9A%E9%87%8D%E7%9D%80%E3%81%9B%E6%9B%BF%E3%81%88%E5%AE%9A%E7%BE%A9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

そのため、構成段階での工夫が必要になります。
(体全体が動くモーションをするタイミングとまばたき口パクをするタイミングを分ける等)

1167任意たん@age推奨:2024/12/16(月) 19:34:44
>>1166
ありがとうございます。情報をいただけて助かります。
素人考えですが、アニメーション呼び出しが必要な部分(まばたき、口パク、前髪等)は多重着せ替えで設定することで上手くいきそうにも思えます。
単純に>>1165のsurface1〜30のまばたき、口パクアニメーションをbindで設定し直せばよさそうと思ったのですが、surface1000にもanimation1〜3を設定しなければおそらく動きませんし、surface1000に設定されたanimation1〜3はHUBサーフェスでなければそこに設定されたアニメをするだけだと思われました。結局以下のように書いてみましたがこれは失敗です。
(surfaces.txt)
surface.append1000
{
animation0.interval,bind+always
animation0.option,shared-index
animation0.pattern1,base,1,20,0,0
(略)
animation0.pattern30,base,30,20,0,0
//まばたき
animation1.interval,bind+random,5
animation1.pattern1,overlay,5000,50,0,0
animation1.pattern2,overlay,5001,50,0,0
animation1.pattern3,overlay,5000,50,0,0
animation1.pattern4,overlay,-1,50,0,0
}
//まばたき1
surface5000
{
element0,base,hub.png,0,0
animation0.interval,bind+always
animation0.option,shared-index
animation0.pattern0,overlay,100,20,0,0
(略)
animation0.pattern30,overlay,130,20,0,0
}
//閉じ
surface5001
{
element0,overlay,hub.png,0,0
animation0.interval,bind+always
animation0.option,shared-index
animation0.pattern0,overlay,140,20,0,0
(略)
animation0.pattern30,overlay,170,20,0,0
}
(descript.txt)
sakura.bindoption.group,基本動作,mustselect
sakura.bindgroup0.default,1
sakura.bindgroup0.name,基本動作,ー
sakura.bindoption.group,まばたき,mustselect
sakura.bindgroup5000.default,1
sakura.bindgroup5000.name,まばたき,ー
まばたきのHUBサーフェスであるsurface5000と5001にanimation0をalwaysで設定することでsurface1000と同じタイミングでちょうどいい画像が呼び出されるといいなと思いましたが、理解が足りていませんでした。多重着せ替えは便利ですが難しいです。出来そうではあるように思いますが…。

おっしゃっていただいたように構成段階での工夫をするのが無難に思われます。ご助言に感謝いたします。
例えば、まばたきは体全体が動くモーションに組み込んでもいいのかもしれません。そして口パクは諦めて、トーク時はゴースト側で口を開けた表情に変更することでそれっぽさは出そうです。
または、まばたき口パクに使われる目や口の位置は、どこに来てどの組み合わせになっても違和感ない程度の範囲で動かすという画像を制作をするのもいい方法かもしれません。
もう少し試行錯誤を続けてみます。ありがとうございます。

1168任意たん@age推奨:2024/12/16(月) 21:49:04
>>1167
シェル「Heavy Pressure」でそれに近い実装がされていますね
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=heavy_pressure

1169任意たん@age推奨:2024/12/17(火) 18:18:40
>>1168
教えていただいてありがとうございます!すごい!これが見てみたかったというそのものが…

1170任意たん@age推奨:2025/03/29(土) 20:33:34
初心者ながらどうしても分からない点があってご相談させてください。
現在、里々を使用してゴーストを作成しているのですが、里々Wikiに書かれている「初回起動イベント」と同じものを作成した所、
その条件式が作動してジャンプ先にジャンプをしてくれません。以下はそのプログラムです。

*初回
>起動【タブ】(初回イベントを完遂)==1

:テスト

\![raise,初回イベント完了]

###インラインイベント
*初回イベント完了
$初回イベントを完遂=(初回イベントを完遂)+1


*起動
>初回【タブ】(初回イベントを完遂)==0
>(時間帯)に起動

問題点についてですが、2回目の起動時、初回イベントを完遂が0の場合に本来は「初回」の方へジャンプさせたいのですが
「(時間帯)に移動」にジャンプしてしまいます。里々Wikiの「困ったときの対処法」のページも読みましたが、
どうしても解決する事が出来なかったので、もしよろしければ原因を教えていただけると幸いです。

1171任意たん@age推奨:2025/03/29(土) 20:52:07
何度も書き込みしてしまいすみません。>>1170です。
前レスや対処法のページを確認して気づきましたが、どうやら「replace.txt」「replace_after.txt」の二つのファイルが
存在しなかったせいで動かなかったようです。ご迷惑をおかけしました。

1172任意たん@age推奨:2025/05/04(日) 14:43:10
どなたかご助力お願いします。
ゴーストの開発初心者です。
ななっち様配布の、
ゴースト開発のとっかかりとして「いじってもいい」ゴースト
として配布されています、
湯空温泉 旅館舞桜別館をベースに改変してみようと、
さとりすと2を使わせて頂きながら触っているところなのですが、
「次に喋るトークを予約する」
という機能を、思ったように動かせないでいます……。

里々wikiのランダムトークについてのページに記載されています、下記のとおりにコピペ


:トラックにかぼちゃ、なす、トマトが乗っています。
急カーブで落ちたのはどれ?
:えーと……。
$次のトーク【タブ】答え

*答え
うーむ、わからん。
:答えは「スピード」でした。
ざんねーん。

(※【タブ】の部分については、キーボード端にあるTabキーを押して空白のみを入れ込んだうえで、
さとりすとの編集画面上に表示される、$次のトーク>> 、という変数が黄色になっていること、
ジャンプ先の項目の名前欄には、答え、という次のトークの題名も記入しています)

しているつもりなのですが、
ジャンプ先の次のトークだけではなく、その他の通常のランダムトークも順序を無視して喋ってしまいます。
どうすれば正しく次のトークを予約し、トークを続けられるでしょうか?

1173ナマモノ7号 ◆AglxOFU/zQ:2025/05/04(日) 16:42:54
>>1172
「湯空温泉 旅館舞桜別館」では、ランダムトークは無名の「*」ではなく、「*ランダムトーク」という文として書かれているようです。
なので、前半の『トラックにかぼちゃ(略)』というトークの名前を「*ランダムトーク」にしてみてください。

また、キャラをつついてランダムトークをしてもらう選択肢では、予約トークが行われないようになっています。
つつきメニューの選択肢でも予約があればそのトークをする、という状態にしたい場合、dic_menu.txtにある以下の項目を変更してください。

#変更前
*ランダムトークをきく
>ランダムトーク

#変更後
*ランダムトークをきく


1174任意たん@age推奨:2025/05/04(日) 19:09:07
つつきメニューの選択肢でも予約があればそのトークをする、
という状態にはできたと思います、これも悩んでいたところでした。
ありがとうございます……!
ただ、トークの予約はまだ完全にできているようではないようで、
順序が守られず他のトークに飛んだり、
1、2,3つの順で予約してあるトークのうち、
1、2まではつづくのに、3つめは喋らず、他のトークになってしまいます。

ちなみに、頂いたアドバイスにおいて、

前半の『トラックにかぼちゃ(略)』というトークの名前を
「*ランダムトーク」にしてみてください。

というのは、
下記のような修正方法である、という解釈で正しかったでしょうか?

#変更前

:トラックにかぼちゃ、なす、トマトが乗っています。
急カーブで落ちたのはどれ?
$次のトーク 答え

#変更後
*ランダムトーク
:トラックにかぼちゃ、なす、トマトが乗っています。
急カーブで落ちたのはどれ?
$次のトーク 答え

1175任意たん@age推奨:2025/05/04(日) 20:10:48
>>1174
多分こうなっているんじゃないかというのを推測で返信していますが、
違ったら教えてください。

>ただ、トークの予約はまだ完全にできているようではないようで、
>順序が守られず他のトークに飛んだり、
>1、2,3つの順で予約してあるトークのうち、
>1、2まではつづくのに、3つめは喋らず、他のトークになってしまいます。

里々は「*【題名】」という文(*で始まるもの)が複数あると、それらの中から1つだけをランダムに選んで実行します。
「湯空温泉 旅館舞桜別館」では、里々本来のランダムトークである「*」を、「*ランダムトーク」へジャンプするためだけに使っています。
そのため、里々wikiにあるように「*」でトークを書いてしまうと、トークは複数個の「*」からランダムで実行されてしまいます。

#〜〜〜〜
#例の始まり
#〜〜〜〜


>ランダムトーク
#このゴーストでは、ここ以外に無名の「*」が存在しないようにしてください

#*
#:このトークのシャープを外すと、一つ上の「φ*」と
#このトークとの、どちらかがランダムで選ばれてしまいます。

#※φは、里々で意味のある文字(*など)を無効化するために使っています※

*ランダムトーク
:このトークには続きがあと2個あります。
いま喋っているのは1個めです。
$次のトーク ランダムトークの続き1

*ランダムトークの続き1
:このトークには続きがあと1個あります。
いま喋っているのは2個めです。
$次のトーク ランダムトークの続き2

*ランダムトークの続き2
:このトークは前のトークの続きです。
いま喋っているのは3個めです。

*ランダムトーク
:これは特に続きのないトークです。
例として入れてあります。

#〜〜〜〜
#例の終わり
#〜〜〜〜


>ちなみに、頂いたアドバイスにおいて、(略)
その解釈で合っています。

1176任意たん@age推奨:2025/05/04(日) 20:15:36
>>1175 にて、変数代入のタブ文字(「$次のトーク」の後)が、投稿の際に空白になってしまいました。
実際の辞書ではタブ文字にするなどしてください。

1177任意たん@age推奨:2025/05/04(日) 21:29:52
>>1172です。

>>1175さん、詳細かつ例文の記述まで、ありがとうございます。
けれども、申しわけありません。
未だ解決に至れておりません……。
示して頂いた例文について、質問させてください。


>ランダムトーク
#このゴーストでは、ここ以外に無名の「*」が存在しないようにしてください

の、ここ以外、というのは、どこの場所を示すものでしょうか。
さとりすと上の表記になりますが、
画面左端に出るファイルイベントツリーの中に並んでいる
*ランダムトーク
あるいは、その真下にある
* (※ここに記述されている、>ランダムトーク、のこと)
ものを指しているのでしょうか……?

自らの無学ゆえ理解が至らないとは弁えているつもりです。
お手数おかけして申し訳ありません……。

1178任意たん@age推奨:2025/05/04(日) 21:51:42
>>1177
さとりすとをリスト化モードで使っているのですね、気付いていませんでした。すみません。
(さとりすとを初期状態から変更していなければリスト化モードの状態です)

>の、ここ以外、というのは、どこの場所を示すものでしょうか。
後者です。

さとりすとの表示で言うと、左枠「dic_talk.txt」の中に「*」があり、それをシングルクリックすると下枠に「>ランダムトーク」が出ます。
・そこに「>ランダムトーク」のひとつだけがあり、それ以外のものは何もない
・ゴースト内の他のdic_〇〇.txtすべてを含めた中に「*」が無い
という状態にしてください。
「*」が複数ある、または「*」の中身が複数あると、どれが実行されるかわからなくなってしまいます。

以下はさとりすとのスクショです。
https://i.postimg.cc/NMfWS194/image.png

1179任意たん@age推奨:2025/05/04(日) 22:12:30
>>1178
追加のスクショです。 >>1175 の例をさとりすとで入力したものです。
https://postimg.cc/Cn8jdYCb
https://postimg.cc/8svWRpW6
https://postimg.cc/HJj8Vddj
https://postimg.cc/rDftVK6v

1180任意たん@age推奨:2025/05/04(日) 22:34:33
>>1177
横から失礼します
里々wikiの*の項目を読むと役に立つかもしれません
https://soliton.sub.jp/satori/?%E7%89%B9%E6%AE%8A%E8%A8%98%E5%8F%B7%E4%B8%80%E8%A6%A7#d0671588

1181任意たん@age推奨:2025/05/04(日) 22:57:38
スクショまで……ありがとうございます!
例文と、試しに自作したトークともに、
予約の順序通りに続けられるようになってきました!
ただ不思議なことに、ソロゴーストなのでkero側は存在しないはずなのですが、
例文のふたつめ以降で、
吹き出しの位置、向き、ともにsakura側とは異なる、
明らかにkero側としか思えないバルーン表示にくわえて、

?このトークには続きがあと1個あります。
いま喋っているのは2個めです。

?このトークは前のトークの続きです。
いま喋っているのは3個めです。

と言った具合に、
本来なら、ːがあるべき文頭に?が入ってしまいます。
さとりすとを閉じて開きなおし、例文のトークを確認したところ、
閉じる前はたしかにːだった文頭が?に変化していて、
自分の頭も疑問符だらけになってます……。
複数回、さとりすとを閉じ開きして確認したので、
見間違いではないはずですが、これはどうすればいいのでしょうか?

1182任意たん@age推奨:2025/05/04(日) 23:08:04
>>1180さん
ありがとうございます……!
改めて読みなおしてきます(/・ω・)/

1183任意たん@age推奨:2025/05/04(日) 23:40:37
>>1181
なぜかはわかりませんが、全角コロンが文字化けていますね。
誤 「ː」
正 「:」

1184任意たん@age推奨:2025/05/05(月) 00:02:05
>>1183さん
ごめんなさい、単純なことに半角でコロンを置いていたみたいです……(恥9
文字化けによるkero側出現、解決しました。
それと、おそらくですが次のトークの予約の記述も、
問題なくできるようになったと思います。スムーズに動かせています。
非常に助かりました……!
夜分遅くまでお力添えしていただき、ありがとうございました( ˘ω˘ )

1185任意たん@age推奨:2025/05/05(月) 20:37:51
>>1172の者です。
昨日、大変お世話になりました。
またご助力願いたく、質問させてください。
自作のマスターシェル(キャラクター何とか機とコロペタを使用して作成)を使いたいため、
湯空温泉 舞桜旅館別館のshellフォルダと、自作shellのフォルダを、
フォルダごと入れ替えてみたところ、
ランダムトークや予約トーク、つつきメニューの表示とその内容の操作などは問題なく動くものの、
頭なでられや胸つつかれの触り反応が機能しなくなりました。
カーソル表示は、shellフォルダの入れ替え前までと同じ、
頭や胸の該当部位に重ねると手のマーク形状には変化します。
どうすれば、自作のshellでも頭なでられや胸つつかれによる、
触り反応のトークを以前のように出せられるのでしょうか……。

1186任意たん@age推奨:2025/05/05(月) 21:32:05
>>1185
触り部位のIDが違ってたりはしてないでしょうか?
例えば、頭のIDが元シェルでは『Head』、自作シェルでは『head』と違っていた場合、
頭に当たり判定があること自体は同じなのでカーソル変化は発生するものの、
触って呼び出されるトークは元シェルの場合は『0Head〜』、自作シェルの場合は『0head〜』となり、元シェルと自作シェルでトークが発生するしないが分かれることになります。
IDは、さとりすとでしたらサーフェスビューワv3タブを開いてから『設定』→『触り判定を表示』で視覚的に確認できます。
自作シェルの触り部位のIDと、元のシェルの触り部位のIDに違いがないかをチェックしてみてください。

1187任意たん@age推奨:2025/05/05(月) 21:37:05
>>1185
自作シェルの方のsurfaces.txtはご自分で書かれたものをお使いでしょうか?
その中に「collision【数字】,【数字】,【数字】,【数字】,【数字】,【当たり判定の名前】」のような箇所があると思います。
そこの当たり判定の名前が「Bust」「Head」のように大文字アルファベットになってしまっていませんでしょうか?

自作シェルの記述(surfaces.txtなど)とゴースト側の記述(dic_call_response.txtにある)が一致するようにしてください。
(アルファベットの大文字小文字は基本的に別の文字として認識されます)

※余談ですが、SSPはアルファベット大文字小文字に関わらず、
head・Head・HEAD(頭)やbust・Bust・BUST(胸)のような名前の当たり判定に対して、自動的にカーソルの形を変えてくれているようです。

1188任意たん@age推奨:2025/05/05(月) 22:14:34
>>1186さん
触り部位のIDが違っていました。
ご推察のとおり、Headとheadという形で、大文字と小文字の差異が原因だったようです。
記述を揃えたところ、問題なく動作できるようになりました。
初歩的な見落としでした、お恥ずかしい限りです……。
ご返信とご助言、ありがとうございました!


新着レスの表示


名前: E-mail(省略可)

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

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

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

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