[過去ログ] UnityC#勉強してMMO作たいけどどうする!?4(^^ (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
104: 2018/01/10(水)23:33 ID:Zyqi5EzB(1) AAS
RPG系だとパラメータが面白さに大きく影響を与えるから、ユーザが簡単にいじれないように、最低でもバイナリに置き換えた方がいいんじゃないか
↓試したことない拾い物だけどSQLITEの無料?アセット
外部リンク:qiita.com
ただ後から差し替えたり並行実装するのはそれほど苦じゃないだろうから、テスト段階はXMLやJSONの方がデバッグに向いてて好都合かもな
105: 2018/01/11(木)04:59 ID:vSzULNme(1) AAS
ちょっと保存関連ざっくりと調べてみた

ステだけではなくシーン状態も保存したくなるかもだから
unity/泥で使える、シリアライズ、高速、暗号化、バイナリとか条件しぼると
(派生系は無視)

・FlatBuffers google系、実績多いと思う、めんどい
・MessagePack らくちん系だがあなどれないやつ

て感じかねぇ、まず触ってみるなら後者のがいいかもしれん
106: 2018/01/11(木)06:08 ID:J+pvDqUl(1/3) AAS
あら、SQLite使えたのね
でももうSELECT文忘れちゃったよw

過去のエターナったプロジェクトにjson形式のセーブ機能実装してあるから
流用しようと思ってたけどMessagePackとやらの方が有能そうね
せっかくだからちょっと試してみよう
107: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/11(木)15:45 ID:he6Kw0tT(1/4) AAS
スロット作る所で悪戦苦闘!?(^^
アイテムがまず置けまふぇん(^^
108: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/11(木)16:11 ID:he6Kw0tT(2/4) AAS
何とかいい所までは行きまひた(^^
でふが謎のぬるぽに妨害されて進めまふぇん(^^
109
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/11(木)16:12 ID:he6Kw0tT(3/4) AAS
オブジェクト参照がオブジェクトのインスタンスに設定されていない

どういうことでふか?(^^
110: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/11(木)17:15 ID:he6Kw0tT(4/4) AAS
>>109は解決しまひたが別の場所がぬるぽ(^^
img.sprite = itemslot.Hundimg.sprite;
setSlotId(HundItem.Hundid);の二か所でふ(^^
111
(1): 2018/01/11(木)18:53 ID:J+pvDqUl(2/3) AAS
バグ潰しの基本はブレークポイント張ってステップ実行じゃよ
112: 2018/01/11(木)18:57 ID:1nwSMUoe(1/2) AAS
情報少な過ぎて誰も答えられねえよそんなの
itemslotとHundItemがそのメソッド内で定義されてなくて
なおかつその処理読んでるクラスのフィールドでも定義されてないんじゃねえの
113: 2018/01/11(木)19:02 ID:1nwSMUoe(2/2) AAS
>>111
visual studioのコンパイルエラーくせえぞこれ
デバッガ使う以前の問題かも
114: 2018/01/11(木)19:14 ID:J+pvDqUl(3/3) AAS
そうかコンパイルエラーか…
ああもうめんどくせぇ!片っ端からNew()しとけ!

今日はOnApplicationQuit()が非表示中のゲームオブジェクトでは呼ばれないことに気づかず
悪戦苦闘してました
115: 2018/01/12(金)18:44 ID:HmgEXI4t(1) AAS
セーブの実装完了
次はアイテム!といきたいとこだけど
どう実装したらいいのか思いつかないので明日はちょっとモデリングをやろう
116: 2018/01/12(金)21:39 ID:efZDHbaD(1) AAS
ボッキングはどうせまた投げ出すんだから放置でよろ
117: 2018/01/12(金)22:02 ID:cj5zcbz3(1) AAS
ボッキング何度でも勃ち上がるよ
そう不死鳥のように
118: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)00:14 ID:I3VEH6BN(1/6) AAS
3日粘ってダメなら人に聞くべし(^^
青丸がエラー吐いてまんこ(^^
画像リンク[png]:i.imgur.com
119: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)00:19 ID:I3VEH6BN(2/6) AAS
問題解決ボッキング!(^^
もう少しで完成でふ(^^
120: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)00:34 ID:I3VEH6BN(3/6) AAS
やったぁ!(^^
ついにスロットにアイテムが置けるようになりまひた(^^
121: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)00:49 ID:I3VEH6BN(4/6) AAS
スロットにアイテムが置ける感動(^^
ageっぱなしでひた(^^
画像リンク[png]:i.imgur.com
122: 2018/01/13(土)06:26 ID:AZq9YkjK(1/2) AAS
おめでとう
アイテムアイコン上手ね
123: 2018/01/13(土)08:01 ID:TRzhW3kB(1) AAS
ええやん
124: 2018/01/13(土)17:35 ID:VdwAi43V(1) AAS
「29歳既婚、2年前に会社を辞めた。ボードゲーム作りを始めて3700万円を
売り上げたけど何か聞きたいことはある?」回答いろいろ
外部リンク[html]:labaq.com
日本ボードゲーム界の異端児に聞く!ボードゲームデザイナーとして生きていくには?
外部リンク:bodoge.hoobby.net
はじめてボードゲームを作ってはじめてゲームマーケットに出店した ので、ひとり反省会をしてみる。
外部リンク:datecocco.hatenablog.com
省15
125: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)17:57 ID:I3VEH6BN(5/6) AAS
さて、今宵はどんな感じでふか?(^^僕のチンコは硬いでふよ(^^

次やりたいこと(^^
・アイテムスロットのアイテムをショートカットキー(1〜^)で消費(^^
・複数アイテムの導入(MUのポーション3個セットみたいな)(^^
・装備を作る(^^
・装備欄に特定の種類(頭なら頭みたいに)しか装備できないようにする(^^
・装備ステのステータスへの反映(^^
省4
126
(3): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/13(土)18:07 ID:I3VEH6BN(6/6) AAS
久々にプロジェクトうpりまんこ(^^
批評お願いしまふ(^^
外部リンク:www.axfc.net
127: 2018/01/13(土)19:23 ID:AZq9YkjK(2/2) AAS
>>126
インベントリであと5年くらいかかりそうね
起きたらやってみるよ

今日の俺は男キャラに再挑戦
野球部っぽいけどもうこれでいいや、寝る
画像リンク[jpg]:i.imgur.com
128: 2018/01/14(日)01:18 ID:Dv08m9dg(1/2) AAS
>>126
プロジェクトごとで起動するまで時間かかったわw
マップ、ワープポイント、NPC話しかける所とか色々追加されて来てて良いね

アイテム取得、しんだ時の効果音適当なの割り当ててくれると嬉しい
突然死に戻りしていつ死んだのか解からんかった
というかモンスター一匹も倒せんワニw
129: 2018/01/14(日)09:07 ID:oQnwGGTY(1/5) AAS
>>126
なんだプロジェクトを上げたのか
ところであのマップはどうやって作った?
130: 2018/01/14(日)09:14 ID:oQnwGGTY(2/5) AAS
マップっていうか地図ね
131: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)09:20 ID:6f5ITLo9(1/6) AAS
上から見たところをスクショして作りまひた(^^
なので細かい所に違いがありまんこ(^^
132: 2018/01/14(日)11:56 ID:oQnwGGTY(3/5) AAS
そうか、なるほどスクショか
133
(1): 2018/01/14(日)14:04 ID:oQnwGGTY(4/5) AAS
男キャラ完成
画像リンク[jpg]:i.imgur.com

変な上着いらなかったなと少し後悔
134
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)14:04 ID:6f5ITLo9(2/6) AAS
Unity2dでローグライクを作ることになりまひた(^^
ローグライクにMMO、なんで難しいものばかり挑戦してしまうのでひょう(^^
現状公式チュートリアルを改造して前後左右のスプライトが動くようになりまひた(^^
135: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)14:05 ID:6f5ITLo9(3/6) AAS
>>133
変な上着含めてとてもいいと思いまふ(^^
136: 2018/01/14(日)18:05 ID:oQnwGGTY(5/5) AAS
>>134
あまり今とやってること変わらん気がするが…
まあMMOよりかはゴールが近いしいいんじゃない

男キャラは欧米向けにすることを思い出して塗り直し
画像リンク[jpg]:i.imgur.com
今のシェーダーでは金属表現できないのを忘れてたよ
137
(1): 2018/01/14(日)18:14 ID:Dv08m9dg(2/2) AAS
ボッキングはシナリオ書けるの?
138: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)21:55 ID:6f5ITLo9(4/6) AAS
う〜ん(^^
チュートリアルのアレ、どうすれば部屋を複数、部屋を繋ぐ通路を作れるのでひょうか?(^^
あとサウンドリスナー?でひたっけ?が主人公に付けても左下に固定されるのでふが…(^^
139: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)21:55 ID:6f5ITLo9(5/6) AAS
>>137
シナリオは書けまふぇん(^^
シナリオのないゲームにしまんこ(^^
140
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/14(日)22:50 ID:6f5ITLo9(6/6) AAS
師匠いまふか?(^^
装備欄って装備一つにスクリプト一個がいいんでふか?(^^
それとも全装備スクリプト1つで管理したほうが楽?(^^
141: 2018/01/15(月)19:39 ID:YbBIKIss(1) AAS
本日はアイテムを少々やりました
毒とかの状態異常や属性なんかもあったほうがいいのかしら
142
(1): 2018/01/15(月)20:28 ID:SRp6KOdC(1/2) AAS
>>140
おお、わたしのかわいいぼっきんぐや・・・
それっぽっちんぐの情報でわかるか!!ちぎるぞ!!

と言いたいところだが
装備一覧から装備スロットにD&Dや右クリックで装備するようなものを想定すると・・

各装備スロットはプレイヤーの操作に対して
「実際にキャラに装備させる」、「アイコン画像を表示する/消す」
省6
143
(1): 2018/01/15(月)22:11 ID:SRp6KOdC(2/2) AAS
拝啓ワンコのおっさん

毒だけでなく装備サビサビ、疲労や腹ペコ、病気、特定の状況に耐性低下、祝福など
上手く使えばゲームに緊張、カタルシスなどの緩急や戦略を与えられるので良いと思います

また、属性といっても単に火・水みたいなものは安易に乱用されすぎて期待薄ですが
錆びた青銅製武器でのみ傷つく、植物族が近くにいるとアレルギーで弱体、
虫族がいるとおっかけちゃう、水場に入ると固まる/追跡を断念する
みたいな一様でない特性のようなアプローチならプレイに工夫の余地や彩りを加え
省2
144: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/15(月)22:16 ID:fteLtCeI(1/2) AAS
>>142
もしかしてアイテムスロットと同じスクリプトでint タイプ=1;//1=スロット 2=装備 みたいにしてもいいんでふか?(^^
145
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/15(月)22:50 ID:fteLtCeI(2/2) AAS
出来まひた、装備欄にアイテム置けるようになりまひた(^^
ここから持ってるアイテムの種類を取得してヘルムは頭に、武器は武器欄にしか置けないようにしたいでふ(^^
どうする!?(^^
146: 2018/01/16(火)07:49 ID:ODy/HO+H(1/6) AAS
>>143
ご丁寧にありがとうで候

武器 包丁:食べれそうな敵に大ダメージ
みたいなのを実装したいと思っていたので属性はやめて種族を取り入れてみようと思います
状態異常もやってみます
147
(1): 2018/01/16(火)12:30 ID:bJ2YdaBF(1/3) AAS
>>145
やりたいことははっきりしてるんだから
あとはコードにするだけ
装備スロット側、装備アイテム側にそれぞれ種別をもたせる
まで書けばあとはわかるだろ
148: 2018/01/16(火)18:25 ID:ODy/HO+H(2/6) AAS
毒、麻痺、眠りの状態異常を実装
あとFXで今月稼いだ分全部溶かしました

もうFXなんか2度とやらないと誓いました
149
(1): 2018/01/16(火)18:30 ID:bJ2YdaBF(2/3) AAS
なんとワンコのおっさんもFXやってるのか
その感じだと米ドルに往復ビンタくらったのかな
150: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)18:35 ID:Gmd31wGD(1/10) AAS
>>147
師匠は忘れてると思いまふ(^^
僕がUnityガチ素人で手探りで作ってるということを(^^
エクセルの種類の項目とスクリプト側のString変数が一致すれば…ってことでふか?(^^
ifでいいんでふよね?(^^
151
(2): 2018/01/16(火)19:00 ID:ODy/HO+H(3/6) AAS
>>149
今日も下目線だったのがいけなかった
あわててドテンLするも110越えず、あとは平常心を失って何をやっても裏目に出る

まあいいさ、ただの小遣い稼ぎさ
プラマイゼロになっただけさ

ああ…悲しみ
152: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:02 ID:Gmd31wGD(2/10) AAS
itm = lamtes.itemReturn(HundItem.Hundid);
if (itm.種類 == "Consumable")
{
スロットを入れ替える();
}

>>if (itm.種類 == "Consumable")
ここがぬるぽになりまふ(^^
省1
153: 2018/01/16(火)19:08 ID:ODy/HO+H(4/6) AAS
いい加減なぜヌルポになるか覚えやがれ!
lamtes.itemReturn(HundItem.Hundid)が何する関数かしらんが
引数HundItem.Hundidで返す値がないんだろうよ
154: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:08 ID:Gmd31wGD(3/10) AAS
もしかしてこれ前やりまひたっけ?(^^
155: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:16 ID:Gmd31wGD(4/10) AAS
itm = GameObject.Find("Itemyobidasi").GetComponent<Lamdatest>().itemReturn(HundItem.Hundid);
if (itm.種類 == "Consumable")
{
スロットを入れ替える();
}

こうしたところ無事ぬるぽは解決しまひた(^^
でふが今度は種類が一致してないにも関わらず置けるようになりまひた(^^
省1
156: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:30 ID:Gmd31wGD(5/10) AAS
おいおい・・・試しにアイテム入れ替え関数消してもアイテム入れ替えできるぞ(^^
なんででひょう(^^
157: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:34 ID:Gmd31wGD(6/10) AAS
Unityの不調でこうなることあるので落として再起動したら置けなくなりまひた(^^
158: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:39 ID:Gmd31wGD(7/10) AAS
置けなくなったはいいでふが(^^
今度はスロットのアイテム取り出せなくなりまひた(^^

バグの理屈としてはハンド変数=消費アイテムの時にアイテムを交換する仕様なので(^^
何も持ってないときは手の種類が消費ではなくNonなのがこのバグの原因でふね(^^
条件を消費orNonにすれば治ると思いまんこ(^^
159
(1): 2018/01/16(火)19:42 ID:bJ2YdaBF(3/3) AAS
>>151
午前中反発してたからねぇ
今も反発してるが、下目線だからなあ
プラマイゼロなら資金にダメージないんだし問題ないんではないか
反発してないときに売ればいいんだよ、さあエントリーしてごらん・・・フフフ・・・
160: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)19:58 ID:Gmd31wGD(8/10) AAS
調子悪かったのでpc再起動したら治りまひた(^^
次は何作りまひょうか?(^^
161: 2018/01/16(火)19:59 ID:ODy/HO+H(5/6) AAS
>>159
もうチャートとにらめっこする生活には疲れたよ
小心者の俺にはFXは向かないんだ
よし、これを期にきっぱりやめるぞ(4回目)
162: 2018/01/16(火)20:02 ID:ODy/HO+H(6/6) AAS
Unityが調子悪いってどういうことだよ
ボッキングのUnityは風邪でも引くんか?おおん?
163: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)20:03 ID:Gmd31wGD(9/10) AAS
たまにでふが書き換えたスクリプトが反映されなかったりすることあるんでふよ(^^
そういう時は再起動すれば治りまふ(^^
164
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/16(火)20:54 ID:Gmd31wGD(10/10) AAS
ゲーム制作に間違いはないとはいえ明らかに効率悪いやり方はあるんでふよね(^^
そこで次僕がやるべきことを教えてくらふぁい(^^
今は装備を頭は頭だけ、鎧は鎧だけ装備できるようにするとかが正解でふか?(^^
其れなら簡単そうでふ(^^
165
(1): 2018/01/17(水)00:32 ID:fIhbh8iZ(1/2) AAS
そういやワンコのおっさん
アイテムどう実装するか悩んでるって言ってたじゃんさ
消費アイテムの話なら内製スクリプト化がいいと思うぞ
応用次第で罠、会話イベント、演出、シーン遷移なども扱えるし

それ以外の方法だとデリゲート系(関数ポインタ)が手軽だが、
アイテム種増えがちなローグライクには不向きと思う

なお、俺は資金動かしたくてしぶしぶ買いポジ5万近く損切りした
省1
166: 2018/01/17(水)00:44 ID:fIhbh8iZ(2/2) AAS
>>164
簡単ならひとに聞く前に実装しちまえって
167: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)01:18 ID:F7oM5GBa(1/6) AAS
スクリプトで設定した関数がインスペクタ上に存在しないんでふがどこを変えればいいんでふか(^^
168: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)01:22 ID:F7oM5GBa(2/6) AAS
あ、一回再生したら表示されまひた(^^
なんかUnity調子悪いでふね(^^
169: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)01:28 ID:F7oM5GBa(3/6) AAS
とりあえずやっておきまひた(^^
装備アイテムはまだ画像作ってないので薬の種類をHelm,Armorにしてまふけど(^^
薬をかぶって薬を着るってどういう状態なんでふかね?(^^
画像リンク[png]:i.imgur.com
170: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)01:34 ID:F7oM5GBa(4/6) AAS
装備の防御力も簡単そうなのでやっておきまんこ(^^
171: ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)01:58 ID:F7oM5GBa(5/6) AAS
プレイヤー防御力実数= PlayerBlo + GameObject.Find("01頭装備画像").GetComponent<アイテムスロット置く>().Slotid + GameObject.Find("01胴装備画像").GetComponent<アイテムスロット置く>().Slotid;
こうやって装備変えるときにFind...+Find...+...ってやると恐ろしく長くなりそうでふ(^^
172: 2018/01/17(水)08:49 ID:Dc/pcjfN(1/3) AAS
>>151は110じゃなかった111だった
今みたら夜中のうちに安値更新かよ

>>165
なんかうまいやり方がないか考えてたけど
諦めてゴリゴリ書くことにしたよ
173: 2018/01/17(水)12:46 ID:LoHwqh9N(1) AAS
ダウ更新したらしいから難しい相場かもしれんね

ベタに書いていっていきづまったらなんか考えるでもいいんでないかい
174: 2018/01/17(水)18:36 ID:BctaKvqn(1) AAS
ところで画面サイズの変更とUIはどうしてる?
パネルとか使うと自動サイズ調整が無理だった
ああいうのはプログラムのほうで手動で調整してんのかな
175: 2018/01/17(水)19:49 ID:Dc/pcjfN(2/3) AAS
Android向けだから画面サイズは固定でござる
Canvas Scalerコンポーネントで画面サイズに合わせて拡縮みたいなことできなかったっけな
176: 2018/01/17(水)20:12 ID:Dc/pcjfN(3/3) AAS
迷っていたがアイテムもモデリングすることにしたぞ!
画像リンク[jpg]:i.imgur.com
まだ人工物は下手くそね

他、状態異常回復アイテムと
カメラが自動で障害物を回避するようにしました
177
(1): 2018/01/17(水)21:31 ID:yL2Iu5li(1) AAS
ワンコのおっさんはたいしたもんだね
とにかく仕事がはやい
コーラ系ポーションも味あって悪くないと思うけどね

一方ボッキングはアホの子すぎて全世界がドン引きしてしまっているわけだが...
slotidを足していくと防御力になるんだぜ...
もう意味わからんしstupidでいいじゃんとか思った...
ずっとそんなんでいいんかボッキングよ...
178
(1): ダーク王鍬大使 ◆SoVpkB15jY 2018/01/17(水)22:06 ID:F7oM5GBa(6/6) AAS
眠い時に作ると混乱しまんこ(^^
Unity初心者がいきなりMMO作るのは無理がありまひたね(^^
でも完成させたいのでヒントくらふぁい(^^
179
(1): 2018/01/18(木)08:03 ID:dTEmOz3n(1/2) AAS
ボッキング君、無駄とは思いつつお説教タイムだ
初心者だから作れないのではなく、初心者のままでは作れない、だ
もうちょっと詳しくなりたい、上手になりたいと思って取り組み続けた人だけが
作れるようになるだけ、いったいいつまで初心者のままなのかね

ヒントもらってればなんとかなると思っていること自体、根本的に間違ってるんだって
この期に及んであんな適当極まりない、始めて二週間の中学生みたいなクソコード書いて
ヒントくださいなんてなめすぎ、ふざけすぎ
省3
180: 2018/01/18(木)08:07 ID:Ct7q+Mne(1) AAS
>177
チャートを見てない日は仕事が早いのだ
しかし最近は誘惑も多くて流されそうだよ
モンハン面白いのかな

>>178
愚かなボッキングよ
slotidはデータベース検索用の値であろう
省1
181: 2018/01/18(木)12:31 ID:dTEmOz3n(2/2) AAS
111円ブレイクしたぜ?
あとモンハン楽しいよ!知らんけど!
くくく
182: 2018/01/18(木)16:10 ID:i4Ad4p7S(1/6) AAS
誘惑の言葉ばかり言ってくれる
FXはメモしたIDを破り捨てたのでもうログインできないよ
運営に問い合わせない限りはな!!

そういえばポケモンはストーリー途中で積んだし
買おうと思っていたドラクエ11に関しては買ってすらいない
ゲーム作っといてなんだが最近あまりゲームを面白いと感じなくなってきたよ
183: 2018/01/18(木)18:10 ID:PUWNxjYk(1/4) AAS
俺も同じ、ゼルダもドラクエもすぐやめちったな
作る方が刺激あるし、やり甲斐がまるで違うんだろうな

あ、FXは面白いですよ?フフ
開発もFXもドラマと成長のリアルRPGみたいなもの
184
(2): 2018/01/18(木)19:08 ID:i4Ad4p7S(2/6) AAS
今日はご要望にあったマップに挑戦してみたぞ!
画像リンク[jpg]:i.imgur.com

まあ、上空カメラで撮ったものをRenderTextureに映しただけなんだけどね
1-
あと 818 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s