English | 日本語
· ·:·: 明瞭の石チュートリアル :·:· ·
入門 | マニュアル | ベータ ·:· リリースノート | よくある質問
_ ______________________ _ ,:´ \____ __.---,. `. :.! __________\_______\__`--__ \ :' \ \--------------------------.\ \ ':' · \ ·:. :'· :.:· \\ \ ':' \ \ :·' :·:. \\ \ ':' · \ .: ·:: '.:. ':'··:. \\ \ ':' \ \ · :.. \\ \ ':' · \ :·: ..': :·:. ·:: '. \\ \ ':' \ \__________________________\\ \ ':' ` . \ . ) ':' . . . \ . . . . ' . . . . \ . .; `·.;,;,;,;,;,;,;,;,;,;,;,;,;,;,:'
このチュートリアルで学べること: 明瞭の石を使って枯木の渓谷を自動周回する方法 所要時間: 約20分 必要な前提知識と準備: - 侵食の「ナーガラージャ」を倒している。 - エリア内で自動で武器が切り替わることの戦略的価値を理解する。 - 大釜を作り、回復ポーションを作れるようにする。 - ウロボロスの石がエリアをループすることを理解する。 必要なアイテム: - 剣、盾、クロスボウをそれぞれ☆4以上。 - タールが80以上。 - 大釜の自動補充を有効にすること。 明瞭の石は非常に強力な遺物です。その目的は、エリアを走ってる途中で武器を持ち替えたり、ポーションを使ったりといった行動を自動化することです。指示はゲーム内のAIに送られ、何をすべきかを指示する。明瞭の石に正しく指示を書き込めれば、プレイヤーキャラクターが即座に適応し、手動では出来ない超人的な行動が可能になります。 この遺物は、Stone Storyのカスタマイズやコスメティックの入り口でもあります。他プレイヤーの作品を探したり、自分の作品を作ることもできます!ペット、帽子、カスタムインターフェイス、さらにはミニゲームまで、さまざまな要素があります。コスメティックやMODについてはこちらから。 明瞭の石の指示は、誰でも使えるように設計された最小限の言語、"Stonescript"で書かれています。キーボードさえ打てれば今すぐにでもStonescriptを使うことができます!プログラミングの知識は必要ありません!しかし、より深く理解したい場合は、Stonescriptマニュアルを参照してください。 助けがほしい?共同でスクリプトを作りたい?ぜひDiscordサーバーに参加してください! それでは書いてみよう!
·:·:· 1. 明瞭の石をまっさらにしよう ·:·:· 明瞭の石にデフォルトで表示されているテキストを全て選択し、削除しましょう。もし望むなら、賢者ベゼラの書き置きを残すこともできます。//から始まるテキストはAIに無視されるため、なんの影響も及ぼすことはありません。 ヒント:全てを選択するショートカットは Ctrl + A です。 _.,·─·──·────┬───────────────────────·──·─·.,_ .:´ | `-. .:' └--------┐ Power `. /:' | ____,---╓───┐ `\ ,:' ◘ │ '---╙───┘ \ :' | `. :.' ╔══════════════════════════════════╧═══════════════╕ | :.| ║ │ '/ :.! ║ │ ´! :. ║ │ | :.' ║ │ '| :. ║ │ | :.' ║ │ '| :. ║ │ | !.' ║ │ '| :. ║ │ | :.' ║ │ '| :.| ║ │ | :.' ║ │ '| :. ║ │ .( :.' ║ │ '| :. ║ │ | :.' ║ │ '| :.| ║ │ | :.' ╙────────────────────────┬─────────────────────────┘ '; ':.\ . | . ./ '::.`- | ° | .' '':.:.:.:.:.|.:.:.:.:.:.:.:.:.:.:.:.:.:.:.|.:.:.:.:.:·`
·:·:· 2. 回復ポーションを使ってみよう ·:·:· )( (~≈) ¯¯ 指示とは、人間が持つ常識をゲームのAIが理解出来るように変換することです。例えば、瀕死状態になったら回復ポーションを使うのが普通ですよね? そのためのコマンドがあります。以下の内容を明瞭の石に入力しましょう: activate potion これはAIに"ポーションを発動する"よう指示するコマンドです。どこかのエリアに入るとAIは毎フレーム、継続的にポーションを発動しようと試みます。そして、体力が少しでも程度減ったらすぐに発動します。しかし、ラッキーポーションなどの攻撃系ポーションを持っている場合、エリアに入った瞬間すぐに発動してしまいます。おそらく望ましい結果にはならないので、より適切な指示に改善しましょう。 例えば、このような指示を考えることができます: "もし、HPが低くなったら、ポーションを発動する" この考えをStonescriptに変換し、明瞭の石を以下のように修正しましょう: ?hp < 7 activate potion 最初の行の?hp < 7 は、"自分のHPは7未満ですか?"という質問をしています。人間の言語とは逆に、ゲームでは行の最初に疑問符を付けることで、それが"質問"であると認識します。(¿スペイン語の疑問符みたいな使い方ですね?) また、activate potionの前にスペースが追加されていることに注目してください。このスペースは重要で、上の行の質問に依存する指示である事を示しています。そのため、上記の質問の答えが"はい"の場合のみ実行されます。
·:·:· 3. 実行してみよう ·:·:· \|' /´, `| / , /\ / `-´- \ò ó` /´ | , ( '¡'!| | |-'´ _'-. ¯'_/`´·\ ` 明瞭の石に電源を入れ、淹れたての回復ポーションを持って、危険ななエリアに向かいましょう。敵からの攻撃を受け、HPが7未満になると自動的にポーションが発動するはずです。 ヒント:エリア内で明瞭の石を開くには、'M'キーを押します。わざわざ作業台に戻る必要はありません。明瞭の石を閉じると、スクリプトが再読み込みされ、新しく書かれた指示が反映されます。
·:·:· 4. 武器を持たせてみよう ·:·:· │ O__ ┼/|)_) / \ このチュートリアルの目的は枯木の渓谷を完全自動周回させることです。。通常の剣、盾の組み合わせである程度の難易度まではクリアするのに十分なので、まずはこれを基準にしましょう。 明瞭の石の1番下に、以下の内容を書き加えましょう: equipL sword equipR shield equipコマンドは、その名の通り"装備する"ための指示です。インベントリから武器を見つけて装備します。コマンドの右側にあるテキストは、指示の追加の詳細です。LRは、それぞれ左右どちらかの手に装備するかを示します。装備する武器をより具体的に指定することもできます。おそらくインベントリにはたくさんの剣があるはずなので、例えば7つ星の剣を装備したい場合、*7を追加しましょう:equipL sword *7 追加の詳細がなければ、AIは自動的に最も強い武器を見つけて装備します。特に問題なければ、そのままでも十分でしょう。 |/) o.-._ ´ /|`-` `' 一般的にはこれで十分ですが、大きな吸血蚊相手にはクロスボウを装備し、その敵からのダメージを完全に回避したほうがいいでしょう。大きな吸血蚊は、単体では非常に弱いですが、大群で襲ってくるため、大ダメージを受ける可能性があります。そこで以下の内容を入力しましょう: ?foe = mosquito equip crossbow foeというキーワードを使用すると、AIが現在ターゲットにしている敵の種類を判別し、それがどのような敵であるかに基づいて適切な行動を取ることが可能です。 このequipコマンドにLRの指定がないことに気づきましたか?クロスボウについては、詳細を指定せず、AIに最適な装備方法を判断させてシンプルなままにしておきましょう。 ここまでの内容を反映すると、スクリプトは次のようになります: ?hp < 7 activate potion equipL sword equipR shield ?foe = mosquito equip crossbow ここで重要なのは、スクリプトは上から順番に実行されるという点です。まずポーションの使用をチェックし、その後に剣と盾を装備します。最後に、現在の敵が大きな吸血蚊であればクロスボウに持ち替えます。スクリプト全体は1秒間に30回実行されます。 すべてが正しく動作しているか確認するために、枯木の渓谷へ行ってみましょう。スクリプトが想定通りに動作していて、現在の武器でもクリアできる難易度のエリアであれば、ウロボロスの石でループして周回できるはずです。ただし、ポーション用のタールが尽きるか、インベントリが宝箱でいっぱいになるまでは、という条件付きです。
·:·:· 5. 木を伐採してみよう ·:·:· \| |, |/ \| | /-' `-─\ | /_/─, \'// '\} { { } } { //\`\ 枯木の渓谷で木に近づいたとき、ついでに木の枝を集めたいと思うかもしれません。 スクリプトの最後に、次の内容を追加しましょう: ?harvest.distance < 10 equip hatchet この場合、LRの指定は不要です。なぜなら、手斧は右手にしか装備できないためです。 さっそく枯木の渓谷へ行き、スクリプトの変更を試してみましょう!
·:·:· 6. 周回を安定させてみよう ·:·:· ____, _.-·´ o/`___ ,´ _.-._\¯¯`-.`. / ,´ `.`. | : | : | :. .' ; \ `':.,,,,,..·´ ,´ `-._ _,-´ ¯¯¯¯¯ この時点で、スクリプトは機能していますが、装備の星レベルやエリアの難易度によっては、敵から受けるダメージが多すぎる場合があります。そこで、装備している間に徐々に回復できるウロボロスの石を装備するように、スクリプトを改良しましょう。 次の内容を追加しましょう: ?foe ! boss & foe.distance > 8 equipL ouroboros ここでの質問は少し複雑なので、分解して説明しましょう。1行目の前半の部分、foe ! boss"敵はボスではない"という意味です。感嘆符(!)は、等号(=)と逆の意味を持ちます。 続いて、1行目の後半部分、foe.distance > 8"プレイヤーと敵との距離が8より大きいか?"という意味です。これら2つの質問は、&(AND)シンボルによって1つの条件式にまとめられています。 つまりこの指示全体は、 "敵がボスではなく、かつプレイヤーとの距離が8より大きければ、左手にウロボロスの石を装備する" ヒント:敵との距離が8より上という内容では、接敵中にウロボロスの石で敵を攻撃します。これは装備が弱い場合に有効です。しかし、敵との距離を8ではなく17にすると、ウロボロスの石で敵を攻撃することは無くなり、ループ時間が短縮されることでしょう。これはウロボロスの石の攻撃範囲が17だからです。8にすると、敵に近づいた際にのみ剣を装備するようになります。
·:·:· 7. 素材を回収してみよう ·:·:· , _/-' プレイ中の遅延の原因となるものの1つが、地面に落ちているアイテムの取得です。枯木の渓谷では、それが木の枝になります。幸運なことに、星の石を装備すると、周囲のアイテムを吸い寄せることができ、移動速度も大幅に向上します。 次の内容を追加しましょう: ?pickup.distance < 10 equipL star foe.distanceと同様に、この指示では次の取得アイテムまでの距離が10ユニット未満かどうかを確認しています。もしそうであれば、左手に星の石を装備します。なお、ここではstarとだけ記述していますが、ほかにstarという名前のアイテムは存在しないため、これで問題ありません。
·:·:· 8. スクリプトをグループ化しよう ·:·:· これで、枯木の渓谷を周回するためのスクリプトは完成しました!しかし、現状ではこれらの指示が全てのエリアで実行されてしまいます。そこで、それぞれのエリアで特定の指示を行えるよう、特定のエリアでのみスクリプトが実行されるようにグループ化しましょう。 現在のエリアを確認するには、locというキーワードを使用します。 スクリプトの一番上に、以下を追加してください: ?loc = deadwood そして、その後に続くすべての行の前にスペースを追加して、これらがエリア条件に依存する形にします。 スクリプト全体は次のようになります: ?loc = deadwood ?hp < 7 activate potion equipL sword equipR shield ?foe = mosquito equip crossbow ?harvest.distance < 10 equip hatchet ?foe ! boss & foe.distance > 8 equipL ouroboros ?pickup.distance < 10 equipL star ヒント: ここから、または他のプレイヤーのスクリプトをコピーして、Ctrl+C / Ctrl+V で明瞭の石に貼り付けることができます。
·:·:· 次はどうする? ·:·:· .-. \ ´ .-. ,-. ) \ ´ '- `-/¯\-´ .· /`°´\ ·. `-´ `-´ 以下に外部リソースやミニチュートリアルを紹介します。 リンク集 このチュートリアルで困ったことがありますか?他のエリアでの助けが必要ですか?Discordコミュニティに参加してみましょう。 Stone Storyコミュニティが作成した楽しいコスメティックやミニゲームを探してみましょう。 もっと深く学びたいですか?Stonescriptマニュアルですべてを学べます。 吸血 もし吸血効果を持っている活力属性の剣(dL)を持っているなら、回復ポーションだけに頼るのではなく、それを活用してHPを管理するのがオススメです。これにより、生存率が大幅に向上します。(ついでにタールの節約にもなります) ?hp < maxhp & foe.distance < 7 equipL sword dL 毒 攻撃を弱体化させるデバフを与えられる毒属性の武器(dP)があれば、ボスからのダメージを軽減することができます。これもまた、ポーションの使用を減らし、生存率を大きく向上させます。これにより、最小限の装備で高難易度のエリアに挑戦可能です。 ?foe = boss & foe.debuffs.count = 0 equipR dp このスクリプトでは、毒効果が残っている間に再度適用してしまわないように、デバフの数をチェックしています。 高速移動 プレイヤーたちは、ループ時間を短縮するためにダッシュの盾、トリスケルの石、六尺棒などの能力をよく使います。以下は一例です。 ?foe.distance >= 11 & foe.distance <= 16 equipR dashing 能力発動 ここから少し複雑になります。よくある質問の1つが「能力をどうやって発動させるか?」です。手斧や堕神の剣のようなものは簡単ですが、よくプレイヤーを悩ませるアイテムがバルディッシュです。 ?foe = boss & foe.distance <= 10 & ^item.GetCooldown("bardiche") <= 0 | ^item.GetCooldown("bardiche") > 870 equip bardiche activate R ここで新しく登場する記号に前の行の続きを意味する ^ と、「または」を意味するOR演算子 | があります。 この例では、ボス(?foe = boss)が範囲内(foe.distance <= 10)にいるとき、equip bardicheで装備し、activate Rで能力を発動します。さらに、item.GetCooldown()を使って、バルディッシュの能力のクールダウン時間をチェックしています。 クールダウン情報を活用して、能力発動中にのみバルディッシュを装備するようにします。瞬時に発動する能力とは違い、バルディッシュにはキャスト時間があるため、その間は装備し続ける必要があります。能力発動中に他の装備に切り替えると能力はキャンセルされ、攻撃できないままクールダウンに入ってしまいます。ここで出てくる870という数字は、フレーム数で表現されたクールダウン時間から来ています。ゲームでは、1秒が30フレームとされており、バルディッシュのクールダウンは30秒で900フレームです。能力発動から攻撃までのキャスト時間は1秒(30フレーム)で、その分を引いた数が870フレームというわけです。 バルディッシュの動作状況を視覚的に確認したい場合は、以下を追加してみましょう: var cd cd = item.GetCooldown("bardiche") >`0,0,バルディッシュのクールダウン = @cd@ この指示は、画面左上にバルディッシュのクールダウンを表示させるものです。能力を発動すると900になり、そこから0までカウントダウンされる様子が確認できます。 Copyright Martian Rex, Inc. 2020