【Vket Cloud】動画つき！ゼロから始めるHeliScript超入門② - HeliScriptを作る / Hello World!をコンソールに出力する

# はじめに
Vket Cloudでは、「HeliScript」という独自のスクリプトを使用してコーディングを行うことで、ワールド内に高度なギミックを導入することが出来ます。

本記事では、HeliScriptの作成方法、HeliScriptでHello World!をコンソール上に出力する方法を解説します。

:::note
**Hello World!とは**
プログラム言語について学習する際、初めに取り扱う、文字列の出力です。
単純な文字列の出力を通し、基本的なプログラムの書き方やプログラムの動かし方について学習することが出来ます。

慣例的に「Hello World!」やそれに準ずる文字列を出力することが多いです。
これから学習する新しい言語に、まずは「こんにちは！」と伝えてみましょう。
:::

:::note
**コンソールとは**
プログラムで文字を表示する命令を行ったり、プログラムでエラーが発生した時にその内容を表示する場所です。
本記事の後半では、Vket Cloudでのコンソールの場所とコンソールの表示方法について紹介しています。
:::

# 動画

<iframe width="560" height="420" src="https://www.youtube.com/embed/GFmBWqy_e_4?si=J3-iMhOqPg-Xqqql" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

# 解説

:::note warn
ここから先、Unity上の操作説明に「**ビュー**」という言葉が出てきます。
Sceneビュー、Hierarchyビュー、Projectビュー、Inspectorビューについての解説は、[用語集 - ビュー](<https://qiita.com/shirapy/private/d91f164b83e8eab06410#scene%E3%83%93%E3%83%A5%E3%83%BChierarchy%E3%83%93%E3%83%A5%E3%83%BCproject%E3%83%93%E3%83%A5%E3%83%BCinspector%E3%83%93%E3%83%A5%E3%83%BC>)をご覧ください。
:::

### HeliScriptの作成

HeliScriptを作成するためには、VketCloudSDKが導入されたプロジェクトでUnityのProjectビューにある「+」ボタン、あるいはProjectビュー内で右クリックした際に表示されるCreateからHeliScriptを選択することで作成することが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/53acec8e-749a-f460-194d-530ebf63e466.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/fb00fad2-008f-1226-2df6-8860138edbb7.png)

新しくファイルが作成され、名称入力を行う画面になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/f8e29f38-c1bf-116c-298f-e4984ce7c58c.png)

今回は、「**HeliScriptExample**」という名前に設定します。

::: note warn
**【注意！】** この際のファイル名が1行目のcomponent名称定義、3行目のコンストラクタ名称に適用されます。
一度名称を確定した後に名称を変更する場合、名称変更前のcomponentが定義された状態となっているため、HeliScriptのファイル名とcomponent名称が異なる状態となります。

この状態でも正常に動かすことは可能ですが、初めのうちは**HeliScriptは最初にファイル名を決めたら変更しない**、**ファイル名を間違えて作成したら一度HeliScriptファイルを削除して作り直す**を心掛けると良いでしょう。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/ae4c754b-5af5-b01a-a20c-44f336f08b14.png)

これで、HeliScriptを新しく作成することが出来ました。
HeliScriptは **.hs** という拡張子になります。

::: note
前章にてVSCodeの導入を行った場合、ここでHeliScriptをVSCodeで開くようにする作業を行います。
作業手順は[こちら](<https://qiita.com/shirapy/items/633859a73189baa1d44f#heliscript%E3%82%92vscode%E3%81%A7%E9%96%8B%E3%81%8F%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B>)を参照してください。
:::

### Hello World!を出力するHeliScriptを作成

コンソールに文字を出力するときは、`hsSystemWriteLine("(出力したい文字)");`とプログラム上に書きます。
`hsSystemWriteLine()`は、カッコ`()`の中に記載した、ダブルクォーテーション`"`で挟んだ文字をコンソールに表示する、HeliScriptの関数(動作を起こす、機能の塊のようなもの)です。

::: note
カッコ`()`はShiftキーを押しながら`8`キー、`9`キーを押すことで、
ダブルクォーテーション`"`はShiftキーを押しながら`2`キーを押すことで入力することが出来ます。
セミコロン`;`は一般的なキーボードだと`L`キーの右にあります。
:::

先程作成したHeliScriptExampleをダブルクリックすることで、エディタによるスクリプト編集画面が立ち上がるので、そちらを使いHeliScriptExampleの中身を

```
component HeliScriptExample
{
    public HeliScriptExample()
    {
        hsSystemWriteLine("Hello World!"); // Hello World!をコンソールに出力
    }

    public void Update()
    {
        
    }
}
```
とします。
変更点は5行目にhsSystemWriteLineを追加したことです。

これで、Hello World!を出力するHeliScriptの準備が整いました。

### HeliScriptをシーンに組み込む
HeliScriptをシーンに組み込むには、**VKC Attribute Script** Unityコンポーネントを使用します。
VKC Attribute Script Unityコンポーネントは、**VKC Item**から始まるUnityコンポーネントを持ったオブジェクトに付けて使用することを推奨します。
今回は、VKC Item Field Unityコンポーネントを持つWorldオブジェクトに付けて使用します。

HierarchyビューでWorldオブジェクトを選択し、Inspectorビューの下部にある「Add Component」というボタンを選択します。

表示された検索欄に「vkca」などと入力すると、一覧にVKC Attribute Scriptが表示されるため、そちらを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/1b281333-bc6f-513c-a2aa-c066db5a2146.png)

選択後の画面は下記のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/b258c281-6fa5-e932-d01c-434e001946b7.png)

初期状態だと、コンポーネントのリストが空の状態になっているため、「+」ボタンを選択、
その後「選択」ボタンを押しHeliScript一覧からHeliScriptExampleを選択します。
すると、コンポーネント欄にもHeliScriptExampleが入力されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/5362076c-bbd2-40b7-3b31-690337d83fb7.png)

この状態になったら、シーン内にHeliScriptが組み込まれた状態になります。

:::note warn
Unityコンポーネントとコンポーネントは全くの別物です。
詳しくは[用語集](<https://qiita.com/shirapy/private/d91f164b83e8eab06410>)をご確認ください。
:::

:::note warn
HeliScriptExample.hsを作る際、HeliScriptを作成した後にファイル名を変更した場合、コンポーネント欄に自動で入力される内容が異なる場合があります。
その場合、前章内にあるHeliScriptExampleのコード全文をコピーし、上書きして使用してください。
:::

#### コンソールを閲覧できるようにする

このままビルドしても、コンソールをワールドの画面から閲覧することは出来ません。
ワールド画面にコンソールを表示するためには、BasicSettingsが持つVKC Setting Baseにて、「デバッグモード」にチェックを入れる必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/f5366cf1-4db8-6cc2-a22a-16ed3b9df670.png)

この状態でビルドを行うことにより、画面上部にステータスとコンソールが表示されるようになります。
コンソールは画面上部に表示されている文字列の最下部になります。
※下記画像の場合、「Version：」から始まる行まではコンソールではありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/02a78c46-ad90-69bc-b826-9d444013b64d.png)

Hello World!の表示が確認出来たら、HeliScriptのシーンへの組み込みの出来上がりです。

次 : [③ HeliScriptをシーンに組み込む / シーンから取り外す](<https://qiita.com/shirapy/private/927c7fa53f2c0a8981b0>)
前 : [① HeliScriptを作成する環境を作る](<https://qiita.com/shirapy/items/633859a73189baa1d44f>)