デフォルトオブやシムにパイメニューを追加する(シムズ3 MOD 作成練習2)

拍手どうもありがとうございます!(*´∇`*)
返信不要でコメントくださった方もありがとうございました! シム3の日系シムは人数少ないからまだ許容範囲でしたが、トリさんの名前はもっと考えてあげてほしかったですねw


さて、なんだかんだでまだ懲りずに Script Mod 勉強中ですw
Hello World の巻」のあと、「これ実現させるには、この機能のこれを使えばいいんじゃない?」とゲームのコアライブラリ眺めるも実装できず、何度か途中まで書いては、はい次ー! を繰り返しておりましたw

もう少しチュートリアルを読もうと思い、次は「How to inject an interaction with a pure script mod by Nona Mena」を参考に、前回作ったテディベアに話しかけるコマンドを、全てのぬいぐるみに追加するように改造してみました。


わーい、成功~ヽ(o´∀`o)ノ
やっぱ時々の成功体験って必要ですわw

次に、ローカライズの設定も追加してみようと、「Tutorial:Sims 3 Localized Coding」を読みながら実装してみました。
ここでの例の中に、今までのチュートリアルで見たことなかったコードが1つあったので真似して追加してみました。どうなるのか見当もつかなかったんですけど、


グループ化の記述だった模様!!
それ、どうやって書くんだろうと思ってたんですわ!w

ちなみに「Whiny Interactions」が英語のままなのは、どう翻訳したらいいか判らなかったからですw
この部分は「{MA.Whiny}{FA.Grumpy} Interactions」と書かれていて、操作中のシムの性別によって表示する文を変える書き方らしいんですが、どんな風に実際表示されるのかさっぱり判らなくて。結果見ると、{MA.}{FA.} 以外の部分を翻訳すればよさそうですね!

日本語では「{MA.めそめそした}{FA.イライラした}対話」でいいみたいです。

いまだに interaction は日本語でどう言えばいいのかよく判らないです;
基本的に interaction と使われている場面では、プレイヤーがシムに対して出来る指示のことを指していると思うんで、コマンドとかパイメニューと勝手に置き換えることが多いですが。


本当は、「こんにちは、Lex Luthor!」となるのだと思うのですが、名前部分が表示されませんでした。ま、間違っててもクラッシュしないみたいなのでよかった~。


それから、このグループ化を利用して他の台詞用のメニューを追加してみよう~! と思って、ゲームライブラリや他の MOD 制作者さんの dll 見ながら頑張ってたんですけど結局よく判らず、またまたチュートリアル「Adding pie menu options to sims」に進みますw

シムにパイメニュー表示させることってないだろうとスルーするつもりだったのですけど、パイメニュー関連について詳しく書いてそうだったので!

シムにパイメニューを追加してみた

チュートリアルのパート1


チュートリアルの内容はこんな感じで、シムに「Show sim names」コマンドを追加するってものでした。


実行すると「○○が△△をクリックしましたぜ」ってポップアップで教えてくれますw

まあ、チュートリアルの中身そのままなら、ゲーム中に反映させるのももうお手のものです☆(笑)
でもこの後のパートはすごい細かい処理の連続…。

パート2

エラーチェックの処理追記から始まり、追加メニューを出すシムをティーン以上に設定したり、選択中のシムとクリック対象のシムが同じ世代でないとメニューを表示させないようにしたり、プレイ中に追加されたシムにもメニューが出るようにしたり、プレイ中に「シムのリセット」(おそらく)がされたときにメニューがダブらないようにしたり、子供からティーンに成長したときにもメニューが出てくるように処理したり…。

そこまで「こういう場合の処理」を考えないといけないのか…! と頭が爆発しそうでした>< そりゃバグもあんだけ出るわな、と思いましたよw

やっぱシムにはメニュー追加しないのが一番!w
とは言え、オブジェクトにしても「子供のみ」とか「正気でない特質持ってる場合のみ」とか、何か条件加えることもあると思うので、チュートリアルで例を挙げてくださってるのはありがたいですね!

パート2の内容を加えてみた結果


こちらの成人男性をクリックしても、追加したメニューはありません。


しかしこちらの若年男性にはメニューが現れました♪ 指示してるシムも若年です。
(顔が半分隠れちゃってごめんなさい。ご出演は、キャットミント在住のストール家のイケメン親子でした~)

子供で確認まではしてませんが……うん、ばっちりですね!(笑)

最初 EventTracker.AddListenerうんたらかんたらを追加する場所間違えて、延々ロード地獄に嵌ったのは内緒w タスクマネージャーから強制終了させましたよ(^_^;) 怖い怖いっ。

パート3

ここでは選択肢の出し方や、プレイヤーに文字入力させる方法が載ってました!
いやー、知りたかった項目があったよ!

でも読み始めたきっかけの、「複数メニューの出し方」が例にはなくて…。
実はちゃんと行間で書かれていたのですが、方法が解らないときに読んでも理解できませんでした(´ー`;) ゲームライブラリ見てて、もしかしてこうすればいいんじゃ…!? と気づいてから、まさにそれが書かれていることが解りましたw 判るとなーんだw って感じです。

というわけで、このパート3に書かれていた内の3つを追加してみました。
残り2つ(同じ処理を違う書き方で書いたものなので実質1つ)は洋服の着替えのような選択肢を出す方法で、難しそうだし使わなそうなので飛ばしましたw


じゃんっ!
無事、複数のメニューを出すことに成功しました!


まずは1つ目、Yes or No ダイアログの表示です!
上手くいったの確認♪

実は一番最初失敗しましたw private sealed class Definition<> 内のクラス名を変え忘れて、「○○が△△をクリックしましたぜ」が出てきたんですw

性別の好みってたまに知りたくなりますけどw、これかなり便利じゃないですか?! 3クリックで知れる! マスコンだと結構面倒くさかったりするんですよね;


続いては、選択肢3つ!
これってどういう場面で使われてましたっけ?

MOD 作りって、ゲーム中にどのように使われているかを覚えてないと、ゲームライブラリから探しようがないので、遊び込むのって大事ですよね。

最後に文字入力! これを知りたかったんですよ~。



ポップアップでの表示のさせ方が日付っぽかったので、テストした日を入力してみました~。


これでテディベアにコマンド色々と追加できそうです!
結果は次回にて!

ちょっと気になったこと

こういうデフォのオブやシムにコマンドを追加するのって作る側からしたら便利ですけど、ワールド読み込み時間的にはどうなんですかね?

例えばシムにコマンド追加する場合は、ワールド読み込み時に全シムを探して全シムにコマンド追加していくんですよ(冒頭のぬいぐるみなら全区画に設置されてるぬいぐるみを探す)。
PC からしたら大したことないレベルなのかもしれませんけど、ちりも積もれば…は侮れないしなぁ、と気になってしまいました。CC 全般と同じで、入れすぎは禁物ってことですかね~(^_^;)

このエントリーへのコメント

Disqus のほかにも Twitter や Google、Facebook アカウントでもログイン出来ます。
ログインしないで投稿するにはメールアドレスが必要ですが、サイト上には表示されませんのでお気軽にどうぞ(*^_^*)("アカウントを作成せず投稿する" にチェックを入れてください)

blog comments powered by Disqus