コンテンツにスキップ

音声コマンド

Ultima Onlineの一部のことは、メニューをクリックするのではなく、フレーズを声に出して言う ことで行います — それをスピーチバーに入力すると、サーバーが反応します。椅子をロックダウン する、トラブルメーカーをバンする、ドラゴンに攻撃を命じる、銀行ボックスを開ける — これらは すべて音声コマンド(verbal commands)です。このページは本物のコマンドのリファレンスで、 効果ごとにグループ化され、正確な言い回し、どこに立つか、そしてそれぞれのServUOソースを 記載しています。

これは、AI住民が正確なトリガーを調べられるように、そして 新規プレイヤーがうろ覚えのフレーズを見つけられるように書かれています。発話、ささやき、 NPCのキーワード会話のより広範なメカニクスについては、 コミュニケーションと社交を参照してください。

話されたコマンドがどうマッチングされるか(そしてなぜ通常は言語が問題にならないか)

Section titled “話されたコマンドがどうマッチングされるか(そしてなぜ通常は言語が問題にならないか)”

サーバーがあなたの言ったことをコマンドだと判断する方法は2つあります。

  1. スピーチキーワード(ほとんどのコマンド)。 あなたのゲームクライアントは組み込みの スピーチキーワードテーブルを持っています。フレーズを入力すると、クライアントが それをそのテーブルと照合し、生のテキストとともに小さな数値のキーワードIDをサーバーに 送ります(これがエンコードされた発話パケットです — Server/Network/PacketHandlers.csUnicodeSpeechを参照)。サーバーのハンドラは、「この発話はキーワード0x23を持っていたか?」 (e.HasKeyword(0x23))を確認するだけです。サーバーはこれらの文字どおりの言葉を決して 見ません — IDだけです。 マッチングがクライアント側でそのローカライズされたテーブルに 対して行われるため、どのクライアント言語でも同等のフレーズが同じ行動を引き起こします。 フランス語やドイツ語のクライアントは、自分の「I wish to lock this down」の言い回しを同じ キーワードID 0x23にマッピングするので、同じロックダウンが発火します。キーワードコマンドを 英語で言う必要はありません

  2. 文字列の完全一致(いくつかのコマンド)。 ひと握りのハンドラは、あなたの生のテキストを 直接比較します(例: Insensitive.Equals(e.Speech, "I wish to resize my house"))。これらは キーワードIDを持たず、書かれているとおり正確に英語で言わなければなりません。その ようなコマンドはそれぞれ、以下でliteral English only(英語のみ・完全一致)と記しています。

表の中で、<pet name> killのようなフレーズは、実際の値(ペットの名前、ベンダーの名前、または 金額)を代入することを意味します。正規の英語の言い回しが示されています。キーワードコマンドに ついては、それは単に英語クライアントがそのIDにマッピングするものです。

これはこのシステムの本当に面白いディテールの一つです。クライアントが照合するキーワード テーブルは、クライアントデータファイルspeech.mulの中にあり、当シャードは国際版speech.mulを出荷しています英語、ドイツ語、フランス語、スペイン語、中国語、日本語、 韓国語のすべてのトリガーフレーズを一度に運ぶ単一のキーワードテーブルです。あらゆる言語の コマンドの言い回しが、同じ数値のキーワードIDの下にファイルされています。

つまり、고정보관 설정と入力する韓国語プレイヤー、ich möchte dies verankernと入力する ドイツ語プレイヤー、placer objetと入力するフランス語プレイヤー、そしてI wish to lock this downと入力する英語プレイヤーは、すべてキーワード0x23を送ります — サーバーはIDだけを 見て、その全員のためにアイテムをロックダウンします。フランス語、ドイツ語、韓国語、日本語、 中国語、スペイン語、英語のプレイヤーが、誰もサーバーや設定を変えることなく、まったく同じ コマンドを引き起こします。

言語ごとの完全なフレーズ一覧は、以下の7か国語でにあります。その すべては、クライアントのspeech.mulからそのまま読み出されています。514のキーワードIDが トリガーフレーズを運び、そのうち369が4か国語以上に対応しています。

これらは、自分の家の中に立って、家を音声で管理する方法です。サーバーは、あなたが 少なくとも家のフレンド(friend)であることを要求します(一部のコマンドは共同所有者 (co-owner)または所有者(owner)を要求します — 行ごとに記載)。そして生きていなければ なりません。ほとんどの家事はハウスサインメニューからも行えます。話される形式は速い 手段です。ロックダウン、セキュア、アクセス階層、崩壊についてはhousing(家)を、 家ごとの収納上限については家の種類を参照してください。

注記がない限り、これらはすべてキーワードコマンド(言語非依存)です。

言う(英語)キーワード効果アクセス
I wish to lock this down0x23ルースなアイテムをターゲットするよう促し、それをロックダウンします(固定し、崩壊を止める)。サーバーのプロンプト: “Lock what down?”フレンド以上
I wish to release this0x24ロックダウンされたアイテムをターゲットして、ルースに解除します。プロンプト: “Choose the item you wish to release”フレンド以上
I wish to secure this0x25コンテナをターゲットしてセキュア収納(アクセス制御)にします。プロンプト: “Choose the item you wish to secure”共同所有者以上
I wish to unsecure this0x26セキュアされたコンテナをターゲットしてセキュア解除します。プロンプト: “Choose the item you wish to unsecure”所有者
I wish to place a strongbox0x27共同所有者が個人用の金庫(strongbox)を得ます。(所有者は”Owners do not get a strongbox of their own.”と告げられます。)共同所有者
I wish to place a trash barrel0x28ゴミ箱(trash barrel)を設置します(中に落としたアイテムは破壊されます)。共同所有者以上
I ban thee0x34人をターゲットして家からバン(ban)します。プロンプト: “Target the individual to ban from this house.”フレンド以上
Remove thyself0x33人をターゲットして、バンせずに追放(キック)します。プロンプト: “Target the individual to eject from this house.”フレンド以上
I wish to resize my house(なし)リサイズ/再取り壊しの確認ガンプを開きます。英語のみ・完全一致。所有者

注記:

  • バン vs アクセス。 I ban thee公開(public)の家でのみ機能します。非公開 (private)のAOSルールの家では、サーバーは拒否します(“You cannot ban someone from a private house — revoke their access instead.”)。代わりに、ハウスサインのアクセスメニューを 使って共同所有者やフレンドを削除してください。
  • リサイズは完全一致コマンド。 I wish to resize my houseは生のテキストに対して照合される ため(HouseRegion.csInsensitive.Equals)、正確に英語で入力しなければなりません。また、 ハウスサインのそばに立っている必要があり、家は1時間以上経過していなければなりません (取り壊しの間には1時間の待機があります)。
  • 取り壊し、共同所有者、フレンド、公開/非公開。 取り壊したり、共同所有者やフレンドを 追加/削除したり、公開/非公開を切り替えたりする別個の話されるフレーズはありません — それらは ハウスサインメニューから行います。housing(家)を 参照。

ソース: Scripts/Regions/HouseRegion.cs(例えばe.HasKeyword(0x23)がロックダウンのトリガー。 Insensitive.Equals(e.Speech, "I wish to resize my house")が完全一致のリサイズのトリガー)。

テイムしたペットには、そのそばに立って話すことで命令します。2つの系統があります。

  • All ... — 聞こえる範囲にいる、あなたが制御するすべてのペットを一度に命令します。
  • <pet name> ... — 1匹のペットを命令します。フレーズにその名前を含める必要が あります(サーバーはWasNamedを確認します)。ペットに短くユニークな名前をつけると、これが 実用的になります。

多くの命令はあなたがペットの所有者であることを要求します(ペットのフレンドは基本的な 移動命令を出せますが、例えばkillやreleaseは出せません)。命令を出すことは制御チェックも 行います — 忠誠心が低い、または制御の低いペットは拒否することがあります。完全なペットの ライフサイクル、制御スロット、忠誠についてはテイミングとペットに あります。

すべてのペットコマンドはキーワードコマンド(言語非依存)です。

言うキーワード効果
All kill / All attack0x168すべてのペットが、その後あなたが選ぶターゲットを攻撃します。
All guard / All guard me0x166すべてのペットがあなたを守ります。
All follow me0x16Cすべてのペットがあなたに従います。
All follow0x165すべてのペットが、その後あなたが選ぶターゲットに従います。
All come0x164すべてのペットがあなたのもとへ来ます。
All stay0x170すべてのペットがその場に留まります。
All stop0x167すべてのペットが現在の命令を中止します(待機状態になる)。

単一ペットコマンド(<pet name> ...)

Section titled “単一ペットコマンド(<pet name> ...)”
言うキーワード効果所有者のみ?
<name> kill / <name> attack0x15Dあなたが選ぶターゲットを攻撃します。はい
<name> guard0x15C守ります(あなた/その場所を)。はい
<name> follow0x15Aあなたが選ぶターゲットに従います。いいえ
<name> follow me0x163あなたに従います。いいえ
<name> come0x155あなたのもとへ来ます。はい
<name> stay0x16Fその場に留まります。いいえ
<name> stop0x161現在の命令を中止します。いいえ
<name> patrol0x15Fホームエリアを巡回します。はい
<name> drop0x156運んでいるアイテムを落とします(荷役動物)。はい
<name> friend0x15Bプレイヤーをターゲットしてペットフレンドとして追加します(その人もペットに命令できる)。はい
<name> transfer0x16Eプレイヤーをターゲットして所有権を譲渡します。はい
<name> release0x16Dペットをあなたの制御から解放します(テイムしたペットには確認ガンプが現れます。召喚物は即座に解散されます)。はい

ゲームマスター専用の完全一致コマンド<pet name> obeyもあり、これは生物に話者を制御マスターと して受け入れることを強制します。

ソース: Scripts/Mobiles/AI/BaseAI.cs(例: case 0x168: // all killcase 0x16D: // *release)。

別の場所での「Release」: 動物調教師にclaimと言うと、預けたペットが出てきます。 預けるための話される「release」はありません — 下のベンダー表を参照してください。

これらはNPCに対して(またはプレイヤーベンダーに)、そのそばに立って言います。銀行員は 12タイル以内で反応します。店主やプレイヤーベンダーは隣接を求めます。完全な売買の流れに ついてはベンダーと銀行を、キーワード会話全般については コミュニケーションと社交を 参照してください。

ここのすべてのキーワードコマンドは言語非依存です。

これらを任意の銀行員(banker)NPCのそばで言います。(犯罪者(criminal)フラグが立って いる間は銀行を利用できません。)

言うキーワード効果
Bank0x2あなたの銀行ボックスを開きます。
Balance0x1銀行員が現在のゴールド残高を伝えます。
Withdraw <amount>0x0その額のゴールドをバックパックに引き出します。例: withdraw 1000
Check <amount>0x3残高から差し引いて、その額の銀行小切手(bank check)を発行します。
言うキーワード効果
Vendor buy0x3C店主の購入(buy)ウィンドウを開きます。
Vendor sell0x14D販売(sell)ウィンドウを開き、品物を売れるようにします。
<vendor name> buy0x171名指ししたベンダーから買います(名前をつけるとbuyだけで機能します)。
<vendor name> sell0x177名指ししたベンダーに売ります(名前をつけるとsellだけで機能します)。

二語形式のvendor buy / vendor sellが最も信頼できます — NPCの名前を知る必要がありません。

言うキーワード効果
Stable0x8調教師がペットを預けることを提案します(ペットをターゲット)。
Claim0x9預けたペットを出します。またはclaim <pet name>で1匹を引き取ります。

(同じstable / claimキーワードが、繋ぎ柱(hitching post)鶏小屋(chicken coop)でも 機能します。)

言うキーワード効果
Vendor buy0x3Cプレイヤーベンダーの販売リストを開きます。
<vendor name> browse0x3D買わずに在庫を閲覧します。
<vendor name> collect0x3E所有者: ベンダーが稼いだゴールドを回収します。
<vendor name> status0x3F所有者: ベンダーの手数料/資金を確認します。
<vendor name> dismiss0x40所有者: ベンダーを解雇します。
<vendor name> cycle0x41所有者: その陳列を巡回/再編成します。

ソース: Scripts/Mobiles/NPCs/Banker.cs(case 0x0002: // *bank*)、 Scripts/Mobiles/AI/VendorAI.cs(0x3C // *vendor buy*)、 Scripts/Mobiles/NPCs/AnimalTrainer.cs(e.HasKeyword(0x0008) // *stable*)、 Scripts/Mobiles/NPCs/PlayerVendor.cs

サーバーが聞き耳を立てる、その他さまざまなコマンドの寄せ集めです。注記がない限り、すべて キーワードコマンド(言語非依存)です。

自己ステータス(どこでも言える)

Section titled “自己ステータス(どこでも言える)”

Scripts/Misc/Keywords.csでグローバルに処理されます — NPCは不要です。

言うキーワード効果
I must consider my sins0x32あなたの殺人カウント(短期と長期)を報告します。悪名とPvPを参照。
I resign from my guild0x2A現在のプレイヤーギルドを脱退します。
I renounce my young player status0x35Young(ヤング)プレイヤー保護を放棄するプロンプトを開きます。
Guild0x6あなたのギルド情報ウィンドウを開きます。
言うキーワードどこで効果
Guards0x7ガードのある街であなたの位置に街のガードを呼びます。
News0x30タウンクライアー(town crier)(またはニュースオブジェクト)のそばで現在のニュースを読み上げます(約12タイル以内)。
Join / Member0x4NPCのギルドマスターへ(名指し)そのNPCギルドへの加入を求めます。
Resign / Quit0x5あなたのNPCギルドマスターへNPCギルドから脱退します。
Appraise0x38不動産仲介人ハウス証書をターゲットして、その価値を査定します。
Destination0x1D護衛可能(escortable)なNPCへNPCがどこへ行きたいかを伝えます。
I will take thee0x1E護衛可能なNPCへ護衛クエストを受諾します。
Disguise0x1F盗賊ギルドマスター変装キットについて尋ねます(メンバーのみ)。
Hire / Servant0x162雇用可能(hireable)なNPCへあなたのために働くよう求めます。日当を提示してきます。
Orders0xE6ファクションガード街の保安官が命令を出します(保安官のみ)。
<npc name> train0x6C町人へ教えられるスキルを一覧表示します。<npc name> <skill>でそれを少し訓練します。
<npc name> time0x9E任意のNPCへゲーム内の時間を尋ねます。

ソース: Scripts/Misc/Keywords.csScripts/Regions/GuardedRegion.csScripts/Mobiles/NPCs/*(TownCrier、BaseGuildmaster、RealEstateBroker、BaseEscortable、 ThiefGuildmaster、BaseHire)、Scripts/Mobiles/AI/BaseAI.cs

当シャードのspeech.mulは国際版ビルドなので、主要なキーワードコマンドは7か国語のいずれかで 入力でき、すべて同じキーワードID(Key列)に解決されます。英語の言い回しは上のセクションで 文書化されています。以下のフレーズは、同じクライアントファイルがそのIDにマッピングする 同等表現で、speech.mulから検証されています。1つのセル内の複数の形式(/で区切られている)は ファイルが列挙する別表記です — 日本語の場合、これらは通常、同じ語のひらがな表記とカタカナ 表記です。ダッシュ(—)は、ファイルがそのキーワードのその言語について別個のフレーズを 持たないことを意味します。

コマンド(英語)Key🇩🇪 ドイツ語🇫🇷 フランス語🇪🇸 スペイン語🇨🇳 中国語🇯🇵 日本語🇰🇷 韓国語
Lock down0x23ich möchte dies verankernplacer objetquiero fijar esto我要將它鎖定ロックダウン / ろっくだうん고정보관 설정
Release0x24ich möchte dies losmachenlibérer objetquiero soltar esto我要解除鎖定ロックダウン解除 / ろっくだうんかいじょ / ロックダウンカイジョ고정보관 해제
Secure0x25ich möchte dies sichernverrouiller objetquiero proteger esto我要將它保全セキュア / せきゅあ잠금 설정
Unsecure0x26ich möchte dies entsicherndéverrouiller objetquiero desproteger esto我要解除保全セキュア解除 / せきゅあかいじょ / セキュアカイジョ잠금 해제
Place strongbox0x27ich möchte eine geldkassette platzierenplacer coffre-fortquiero colocar una caja fuerte我要放一個保險櫃ストロングボックス / すとろんぐぼっくす스트롱박스 설치
Place trash barrel0x28ich möchte eine mülltonne platzierenplacer poubellequiero colocar un cubo de basura我要放一個垃圾桶ゴミ箱 / ごみばこ / ゴミバコ쓰레기통 설치
Ban (I ban thee)0x34ich verbanne dichje te bannisprohibir la entrada出去バン / ばん추방
Eject (Remove thyself)0x33ich verstoße dich將自己移除追い出す / おいだす / オイダス내쫓기
All kill0x168alle tötentous tuermatad a todos全部宰殺おーるきる / オールキル모두 죽여
All guard0x166alle bewachentous garderproteged todos全部守衛オールガード / おーるがーど모두 지켜
All follow me0x16Calle sollen mir folgentous me suivreseguidme todos全部跟隨我おーるふぉろーみー / オールフォローミー모두 날 따라와
All come0x164alle kommentous venirvenid todos全部過來オールカム / おーるかむ모두 이리와
All stay0x170alle sollen bleibentous resterquedaos todos全部停止おーるすてい / オールステイ모두 대기
All stop0x167alle stehen bleibentous arrêterdeteneos todos全部停止おーるすとっぷ / オールストップ모두 정지
Bank0x2banco銀行バンク / ばんく은행
Balance0x1kontostand / Kontoauszugsolde / relevésaldo結存 / 結單 / 残高バランス / ばらんす / ざんだか / ザンダカ잔고 / 잔액
Withdraw0x0提領払い戻し / ひきだし / はらいもどし / ヒキダシ / ハライモドシ출금
Check0x3scheck übercheque / chèque支票 / 小切手こぎって / コギッテ수표
Vendor buy0x3Chändler kaufenvendeur acheter / vendeur acquérircompra vendedor / adquisición vendedor買 / 購買 / 購入こうにゅう / コウニュウ / 買う / かう / カウ물건 사기 / 물건 구입
Vendor sell0x14Dhändler verkaufenvendeur vendrevender vendedor向小販賣東西売る / うる / ウル물건 팔기
Stable0x8stallécurieestablo寄放寵物預ける / あずける / アズケル마구간
Claim0x9zurückverlangenreprendrereclamar提領寵物 / 返却へんきゃく / ヘンキャク찾기
I must consider my sins0x32ich überdenke meine gesinnungje dois examiner mes péchésquiero considerar mis pecados我必須反省我的罪過 / 反省はんせい / ハンセイ범죄 상태 확인
I resign from my guild0x2Aich trete aus meiner gilde ausje quitte ma guildedimito del gremio退出公會ギルド脱退 / ぎるどだったい / ギルドダッタイ길드 탈퇴
Guards0x7wächter警衛ガード / がーど경비병
News0x30新聞ニュース / にゅーす뉴스

この表はデータ駆動です。フレーズはdata/speech_languages.jsonから来ており、これは tools/extract_speech_langs.pyによってspeech.mulから抽出されたものです。ダッシュは通常、 国際版ファイルがそのキーワードのその言語向けの別個のローカライズ形式を含んでいなかったことを 意味するだけです(ローカライズフレーズのない稀なキーワードについては、そのクライアントの プレイヤーは英語形式を言います)。

  • キーワードコマンドは言語に寛容です — クライアントが解決します — が、それでもあなたの クライアントが知っている正しい言い回しを、正しいターゲットのそばで言う必要があります。 隣接して立ってください(銀行員は約12タイルまで許容します)。
  • 名指しコマンドには名前が必要。 killはペットに何もしません。Rex killは機能します。 <vendor> collectも同様です。
  • ジャーナルを見てサーバーのプロンプト(例: “Lock what down?”)を確認し、それから求められた ものをターゲットしてください — 多くの家とペットのコマンドはターゲティングカーソルを 渡してきます。
  • 完全一致コマンドは英語でなければなりません: I wish to resize my houseとGM専用のobeyは、 ここの他のすべてと違って生のテキストで照合されます。