Ravenfield Guide

[日本語]Ravenscriptガイド for Ravenfield

[日本語]Ravenscriptガイド

Overview

Ravenscript Moddingのやり方を解説しています。

1.初めに

このModdingガイドは、Ravenscriptのやり方を解説するガイドです。
カスタムマップ&武器は他のガイドで参照してください。
このガイドはRavenscript[ravenfieldgame.com]を参考にガイドを作成しています。

スクリプトを作るうえで前提知識として以下の知識が必要となってきます。

  • Ravenfield Modding
  • Unity
  • Lua言語

⚠Ravenscriptまだ開発段階なので不具合があるので注意してください。⚠
⚠仕様変更される可能性があるので注意してください。⚠
お知らせ&このガイドの更新内容:

・お知らせ なし

2.インストール

Ravenscriptを使い始めるためには以下の物が必要です。
Ravenfield本体以外は無料です。

サイト
容量
Unity 5.6.7f1[unity3d.com]
/
Blender[www.blender.org]
391 MB
Visual Studio Code[code.visualstudio.com]
255 MB
Ravenfield Tools Pack[drive.google.com]
79 MB

Ravenfield Tools Packは【Beta Branch version】を選んでください。
Ravenfield Tools Packの保存場所は、自分が分かりやすい場所に置いておくといいです。
(ただし、フォルダ名が全角になっている場所は非推奨です。)

フォルダー階層は2重にならないようにしてください。

※ちなみにVisual Studio Code(以下「VSCode」 という)でなくてもスクリプトは編集はできます
フリーソフトのテキストエディターでも可能ですが、VSCodeを使うことを推奨します。
VSCodeを推奨する理由はいくつかあります。

  • Unityの組み込みサポート
  • Luaのデバッガサポート
  • .txt拡張子を持つLuaファイルの構文強調表示*1

このガイドは、VSCodeを使って解説しています。

*1
Ravenscriptファイルは.txtファイル拡張子を使用します。ファイルはテキストアセットとしてUnity Asset Bundlesにバンドルされているため、ファイル拡張子が必要となります。
.txtをlua言語として扱う必要があるため以下の設定をします。
.vscodeディレクトリの中に「settings.json」の中に以下の分を追加します。

“files.associations”: { “*.txt”: “lua”, }

3.VSCode設定

  • 拡張機能インストール

メニューバー表示を選択して拡張機能(Ctrl+Shift+X)選択
検索欄で入力して以下の物をインストールします。

  • C#
  • EditorConfig for VS Code
  • Japanese Language Pack for Visual Studio Code
  • MoonSharp Debug
  • vscode-lua

  • VSCode日本語化

インストールが完了して起動するとデフォルトが英語なっています。
日本語化は拡張機能からインストールしてください。

  • VSCodeフォルダー

Ravenfield Tools Packをフォルダー選択する設定です。

  1. メニューバー【ファイル】の中に【フォルダーを開く…】を選択
  2. Ravenfield Tools Pack保存している場所を選択します。

4.Unity 設定

スクリプトを編集するときに、VSCodeを起動するように設定します。

  1. メニュバー【Edit】を選択して【Preferences】を選択。

  2. 【External Tools】を選択して【External Script Editor】クリックして【Browse…】を選択。

  3. VSCodeをインストールした場所の中に【Code.exe】があるので選択。
    デフォルトの場所はの場合はここです↓
    【Users%USERNAME%AppDataLocalProgramsMicrosoft VS Code】

  4. 選択したら【Visual Studio Code】が出てくるので選択。

これでスクリプトを編集するときにVSCodeが起動するようになりました。

5.Unity プレハブ作成

自分が作ったものを保管する場所を作成します。

Ravenfield Tools Pack自分が置いた場所にフォルダを選択します。

少し時間がかかりますので終わるまで気軽に待ちましょう。

プロジェクト内で右クリックして【Create】の中に【Folder】を選択。
名前は何でもいいです。今回は【Mymod】にします。

フォルダ作成したら【Content】のフォルダの中に
【Example Weapon Content Mod.prefab】があるので複製します。
複製は選択して【Ctrl】+【D】キーで複製します。
複製したものは自分がわかりやすいもので名前を変更します。
変更は選択して【F2】キーで変更します。
名前を変えたら、さっき作ったフォルダ内にドラッグ&ドロップします。

そこまで終わったらこんな感じになります。

6.Unity 編集

さっき作ったプレハブを選択すると右側に【Weapon Content Mod (Script)】が出てきます。
Weapon EntriesのSizeが0になっている場合は、1にしてください。
名前は何でもいいです。今回は【\(^o^)/】にします。
Prefabは、右側に◎があるのでクリックします。

上のところに検索バーあるので【AR-15 GL】と検索すると下の画像のところに
赤枠で囲っているところがあるのでそれを選択します。

・スクリプト作成

プロジェクト内で右クリックして【Create】の中に【RavenScript】があるので選択
そしたら名前を変更してください。
名前はさっき作ったプレハブと同じ名前にすることをお勧めします。
理由は、たくさん作ったときにどれが一緒になっているのか一目でわかるようにするためにです。

こんな感じになります。

・スクリプト編集

テキストアイコンダブルクリック

VSCodeが起動します。
ここでスクリプトを編集します。(Lua言語)

7.テストプレイ

スクリプト適用する設定をします。

編集が終わったら【Scenes】→【Weapons Lab】を開きます。

画像には兵士のモデルが表示されています。
もし兵士のモデルが表示されていない場合は、「8.トラブル」の
「モデルの表示する方法」を試してみてください。

次は、スクリプトを実行させるために設定を行います。

  1. ヒエラルキーの一番下に【AR-15 GL】があるので選択。
  2. インスペクターの一番下に【Add Component】があるので選択。

  3. 検索欄があるので【Scripted】だけで打つと【Scripted Behavior】が出てくるので選択。

  4. Sourceの部分に自分が作ったスクリプトを選択します。
    右側に◎があるので検索欄で名前を入力します。
    ちなみに【Behaviour】のところは、空白にすると自動的ソースファイルと同じ名前を
    見つけてくれます。

  5. インスペクター一番上のところに【Apply】を選択。
  • ゲーム起動

①そこまでできたら自分作ったフォルダーを開いてプレハブを選択。
②【Ravenfield Tools】 →【Test Map or Content Mod】を選択。(Ctrl+T)

ゲームが起動したらメイン武器項目を選択すると右下に自分で作成した武器の名前が表示されます。

マップのスポーンする場所を選択して【Deploy】を選択。

【Page Up】キーを押します。
一番下にLua言語で書いたものが表示されます。
問題なく動作した人は、【Hello World】が表示されます。

スクリプトを再読み込みしたいときは、メニューから【Restart】を選択してください。
または【Page Down】キーでスクリプトを再読み込みを行います。
(新しい変数が導入されると、壊れる可能性があります。)

8.トラブル

ここまでうまく動作できなかった人の一般的な対象を書いておきます。

Page Upを押してもコンソールが表示されません

  • Ravenfieldのバージョンは最新版ですか?
  • インスペクター一番上の項目【Apply】を押して保存していますか?
  • 武器orその他装備した状態で実行してますか?

RavenScript編集するとき構文に強調がついていない

  • .vscodeディレクトリの中に「settings.json」を開く
  • 以下の分が含まれていくことを確認して下さい。
    “files.associations”: { “*.txt”: “lua”, }

  • モデルの表示する方法

今後も新規で作るときは、このやり方を覚えておくと対処できます。

  1. 【Models】を右クリック
  2. 【Reimport】を選択します。

少し時間がかかりますが、気軽に待ちましょう。
ちなみにこれをやらないと、ゲーム内でモデルが正常に表示されませんので注意してください。

Q&A

Q:○○が作りたいのですが、どうすればできるのでしょうか?
A:知りません。自分もUnity&Lua言語にはそんなに詳しくないので分かりません。

Q:Ravenscriptの項目がありません。
A:「Ravenfield Tools Pack」が最新版なのか確認してください。
開発中なのでBeta版しかありません。

9. チュートリアル

チュートリアルは下記参考に作成しています。
サイト[ravenfieldgame.com]
作成するのは、距離計スクリプトです。

コメントを日本語に書き換えただけです。
functionの部分は自分がつけた名前が入ります。
このまま書き写してもエラー出ますので注意してください。

— フレーム単位処理 function behaviourName:Update() –距離500m local distance = 500 –敵、車両、壁、地面など発射物ヒットレイヤー –上のオブジェクトとの交差を検出 local target = RaycastTarget.ProjectileHit –[[オブジェクトの原点位置を起点とする光線作成 1オブジェクトの前方方向(transform.position) 2前方方向はZ軸に沿っています(transform.forward) ]] local ray = Ray(self.transform.position, self.transform.forward) –[[レイキャスト 500m以内のProjectileHitレイヤー上のオブジェクト取得 それ以外の場合は、「nil」を返す。 ]] local hit = Physics.Raycast(ray, distance, target) –条件 –500m以内のオブジェクトに当たったのか? if hit ~= nil then –「hit.distance」にプレイヤーからオブジェクトの「distance」に代入 distance = hit.distance end –コンソール画面に出力 print(“距離: ” .. tostring(distance) .. “M”) end
  1. 「3D Object」から「Cylinder」を作成します。

  2. 画像のように配置します。

  3. GameObjectの生成します。

  4. 名前は何でもいいです
    「Cylinder」→「Rangefinder」
    「GameObject」→「laser」
    に変更しました。
    AR-15GLの中に入れて下さい。

  5. GameObjectはZ軸(青軸)が画像のように設置してください。
    Z軸が距離を取得します。

  6. GameObject内に「Scripted Behaviour」を追加します。
    「Source」内に自分が作成したスクリプトを選択します。

  7. 最後に【Apply】を忘れずに押しましょう。
    押し忘れるとゲーム内で更新が適応されませんので注意してください。

  8. ゲームを起動して武器を選択し
    【PageUp】キーを押すと画像のように距離が測定できていれば成功です。

10.ミューテーター作成

作成手順説明を考え中. . .

SteamSolo.com