Item クラス
Vket Cloud上でワールドを構成する際、Player以外の各要素はItemとして表現されます。
Itemは、VKC Item Field、VKC Item Objectなど、VketCloudSDKによって追加されたコンポーネントを持つゲームオブジェクトを配置・設定することでシーンに出力することが可能です。
Itemクラスは、上記のItemをHeliScriptにて操作するためのものです。
hsItemGet() などの関数を呼び出すことで、Itemクラスのインスタンスを取得できます。
Itemクラスは多くのメソッドを持ち、これらのメソッドを呼び出すことで、様々な操作を行うことが可能です。
コンポーネントからItemクラスオブジェクトの取得方法
コンポーネント内のメソッドから以下のような呼び出しを行うことで、Itemクラスのインスタンスを取得できます。
Item instance = hsItemGet("アイテム名");
hsItemGetSelf() を利用することで、コンポーネントが所属しているアイテムのインスタンスを取得できます。
Item myitem = hsItemGetSelf();
Itemのユーティリティー関数
hsItemGet
Item hsItemGet(string itemName)
グローバル関数。指定した名前でItemを取得する。
hsItemGetSelf
Item hsItemGetSelf()
グローバル関数。コンポーネントのコンストラクタや、Update(), OnClickNode() 等のメソッド内から呼び出すことで、コンポーネント自身が所属しているItemインスタンスを取得します。
メソッド
Equals
public bool Equals(Item obj)
引数 obj と自身の同一性を判定する。
hsItemGet() などで Item を取得する場合、同一の Item であっても別のインスタンスが返る場合があるため、同一性の確認には "===" 演算子ではなく Equals() を利用してください。
このメソッドを呼び出し可能なオブジェクトタイプ
GetName
public string GetName()
Item の名前を取得する。
このメソッドを呼び出し可能なオブジェクトタイプ
SetPos
public void SetPos(Vector3 pos)
Item を指定した座標に移動させる。
このメソッドを呼び出し可能なオブジェクトタイプ
GetPos
public Vector3 GetPos()
Item の座標を取得する。
このItemがActivityの中にある場合、取得できる値はActivityからの相対座標になります。
このメソッドを呼び出し可能なオブジェクトタイプ
GetWorldPos
public Vector3 GetWorldPos()
Item のワールド座標を取得する。
このItemがどこにあるのか(Activityの外か中か)に関わらず、常にワールド空間における座標を返します。
使用上の注意
Activityの場合でワールド座標を取得したいときはこちらを使用してください。
Activityではない場合は通常はGetPosを使用してください。
このメソッドを呼び出し可能なオブジェクトタイプ
SetQuaternion
public bool SetQuaternion(Quaternion Rotate)
Itemの回転を設定します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetQuaternion
public Quaternion GetQuaternion()
Itemの回転をQuaternionとして取得します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetWorldQuaternion
public Quaternion GetWorldQuaternion()
Itemのワールド回転をQuaternionとして取得します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetWorldRotate
public Vector3 GetWorldRotate()
Itemのワールド回転をVector3(オイラー角)として取得します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetScale
public Vector3 GetScale()
ItemのスケールをVector3として取得します。
このメソッドを呼び出し可能なオブジェクトタイプ
SetScale
public void SetScale(Vector3 Scale)
ItemのスケールをVector3で設定します。
このメソッドを呼び出し可能なオブジェクトタイプ
MovePos
public void MovePos(Vector3 pos, float time, bool CollisionDetection = false)
posで指定した座標に、time秒かけて Item を移動させる。
CollisionDetectionがtrueの場合は、プレイヤーアバターと同等の衝突判定がおこなわれます。
このメソッドを呼び出し可能なオブジェクトタイプ
IsMoving
public bool IsMoving()
Item が移動中の場合はtrueを返す。
このメソッドを呼び出し可能なオブジェクトタイプ
Play
public bool Play()
サウンドやパーティクルの再生を開始する。再生処理の開始に成功すると true を返す。失敗した場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
Stop
public void Stop()
サウンドやパーティクルの再生を停止する。
このメソッドを呼び出し可能なオブジェクトタイプ
IsPlay
public bool IsPlay()
オブジェクトのモーションやサウンドやパーティクルが再生中の場合は true を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
返り値について
- VKC Item Audio: オーディオクリップで設定したサウンドが再生中の場合はtrueを返す
- VKC Item Object: オブジェクトモードがMotionの際に、Motionリストに設定したhemが再生中の場合はtrueを返す
- VKC Item Particle: .hepで設定したパーティクルが再生中の場合はtrueを返す
Pause
public bool Pause()
オブジェクトのモーション再生を一時停止します。
このメソッドを呼び出し可能なオブジェクトタイプ
Restart
public bool Restart()
オブジェクトの一時停止したモーション再生を再開します。
このメソッドを呼び出し可能なオブジェクトタイプ
SetPlayTime
public bool SetPlayTime(float PlayTimeMS)
オブジェクトのモーション再生時間の位置を変更します。
単位はミリセカンドです。
このメソッドを呼び出し可能なオブジェクトタイプ
GetPlayTime
public float GetPlayTime()
オブジェクトのモーション再生時間の位置を取得します。
単位はミリセカンドです。
このメソッドを呼び出し可能なオブジェクトタイプ
SetShow
public void SetShow(bool flag)
true で Item を表示する。false で Item を非表示にする。
このメソッドを呼び出し可能なオブジェクトタイプ
IsShow
public bool IsShow()
Item が表示状態の場合は true を、そうでない場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
ChangeMotion
public bool ChangeMotion(string MotionName, float BlendTimeMS = 0.0f)
MotionName で指定したモーションに動作を切り替えます。
BlendTimeMSはブレンディングする時間をミリセカンド単位で指定します。
このメソッドを呼び出し可能なオブジェクトタイプ
LoadMotion
public bool LoadMotion(string MotionName, string FileName, bool Loop)
モーションをロードします。
このメソッドを呼び出し可能なオブジェクトタイプ
FacialEmoteFixed
public bool FacialEmoteFixed(int FacialEmoteType)
表情を切り替えます。切り替えは即時おこなわれ、プレイヤーアバターのように一定時間で戻ることはありません。
指定出来るタイプは以下になります。
- FACIALEMOTETYPE_NEUTRAL
- FACIALEMOTETYPE_JOY
- FACIALEMOTETYPE_ANGRY
- FACIALEMOTETYPE_SORROW
- FACIALEMOTETYPE_FUN
このメソッドを呼び出し可能なオブジェクトタイプ
Load
public bool Load()
Item のロードを開始する。ロード処理の開始に失敗した場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
Unload
public bool Unload()
Item をアンロードする。アンロード処理に失敗した場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
IsLoading
public bool IsLoading()
Item がロード中の場合は true を、そうでない場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
IsLoaded
public bool IsLoaded()
Item のロードが完了していた場合は true を、そうでない場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
GetNodeIndexByName
public int GetNodeIndexByName(string nodeName)
名前でノードを検索し、該当するノードを識別するインデックスを返す。 見つからない場合は、-1 を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
GetNodeNameByIndex
public string GetNodeNameByIndex(int nodeIndex)
インデックスでノードを指定し、そのノードの名前を返す。 見つからない場合は、空文字列を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
GetNodePosByIndex
public Vector3 GetNodePosByIndex(int nodeIndex)
インデックスでノードを指定し、そのノードの座標を返す。 見つからない場合は、Vector3.zeroを返す。
このメソッドを呼び出し可能なオブジェクトタイプ
SetShowNode
public bool SetShowNode(string nodeName, bool flag)
名前でノードを指定し、そのノードを true で表示、false で非表示にする。
このメソッドを呼び出し可能なオブジェクトタイプ
IsShowNode
public bool IsShowNode(string nodeName)
名前でノードを指定し、そのノードが表示されている場合は true を、非表示の場合は false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
SetRotateNode
public bool SetRotateNode(string nodeName, Vector3 rotate)
名前でノードを指定し、そのノードを回転させる。
このメソッドを呼び出し可能なオブジェクトタイプ
SetEnableCollider
public bool SetEnableCollider(string nodeName, bool flag)
名前でコライダーを指定し、そのコライダーを true で有効、false で無効にする。
このメソッドを呼び出し可能なオブジェクトタイプ
IsEnableCollider
public bool IsEnableCollider(string nodeName)
名前でコライダーを指定し、そのコライダーが有効なら true を、無効なら false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
SetClickableNode
public bool SetClickableNode(string nodeName, bool flag)
名前でクリック可能なノードを指定し、true でクリックを有効に、false でクリックを無効にする。
このメソッドを呼び出し可能なオブジェクトタイプ
IsClickableNode
public bool IsClickableNode(string nodeName)
名前でノードを指定し、そのノードをクリック可能なら true を、そうでないなら false を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
SetUVOffset
public bool SetUVOffset(string materialName, float u, float v)
名前でマテリアルを指定し、原点を左上としてuv座標を変更する。変更に失敗すると false を返す。
UV座標原点について
通常のUnityプロジェクトではUVの原点(0,0)はUVの左下にありますが、HeliScriptでは左上を原点としていることにご注意ください。
このメソッドを呼び出し可能なオブジェクトタイプ
PlayVideo
public void PlayVideo(string materialName, string url, bool loop)
再生するマテリアルを指定し、ビデオ再生を開始する。loop に true を指定するとループ再生を行う。
このメソッドを呼び出し可能なオブジェクトタイプ
StopVideo
public void StopVideo()
再生中のビデオを停止する。
このメソッドを呼び出し可能なオブジェクトタイプ
IsPlayVideo
public bool IsPlayVideo()
ビデオが再生中であれば true を返す。
このメソッドを呼び出し可能なオブジェクトタイプ
ClearTextPlane
public void ClearTextPlane()
テキストを消去する。
このメソッドを呼び出し可能なオブジェクトタイプ
WriteTextPlane
public void WriteTextPlane(string text)
テキストを設定する。
このメソッドを呼び出し可能なオブジェクトタイプ
SetCamera
public bool SetCamera()
カメラタイプのアイテムをカメラとして設定する。
使い方についてはVKC Item Cameraを参照してください。
このメソッドを呼び出し可能なオブジェクトタイプ
ResetCamera
public void ResetCamera()
SetCameraで設定したものを解除する。
使い方についてはVKC Item Cameraを参照してください。
このメソッドを呼び出し可能なオブジェクトタイプ
ReplaceItem
public bool ReplaceItem(string URL)
指定したモデルデータでItemの内容を置き換えます。
このメソッドを呼び出し可能なオブジェクトタイプ
ReplaceTexture
public bool ReplaceTexture(string MaterialName, string URL)
MaterialNameで指定したマテリアルのテクスチャを、URLの内容で置き換えます。
このメソッドを呼び出し可能なオブジェクトタイプ
SetPhysicsEnable
public bool SetPhysicsEnable(string NodeName, bool Flag)
NodeName で指定したノードに対し、trueで物理演算を有効化、falseで無効化します。
このメソッドを呼び出し可能なオブジェクトタイプ
IsPhysicsFixed
public bool IsPhysicsFixed(string NodeName)
物理演算において、このItemが固定されている場合は true を返します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetPhysicsIDByNodeName
public int GetPhysicsIDByNodeName(string NodeName)
ノード名を指定して、ItemのPhysicsIDを取得します。
このメソッドを呼び出し可能なオブジェクトタイプ
SetProperty
public bool SetProperty(string Key, string Value)
プロパティを設定します。同じKeyが存在すれば上書きされ、なければ追加されます。
このメソッドを呼び出し可能なオブジェクトタイプ
GetProperty
public string GetProperty(string Key)
プロパティを取得します。Keyが存在しない場合は空文字列が返ります。
このメソッドを呼び出し可能なオブジェクトタイプ
CallComponentMethod
public void CallComponentMethod(string ComponentName, string MethodName, string Params)
Item に設定されているコンポーネントのメソッドを呼び出します。
ComponentNameでコンポーネント名を、MethodNameでメソッド名を指定し、メソッドを呼び出します。その際、Paramsで指定した文字列が引数として渡されます。
呼び出せるメソッドには、以下の制限があります。
- 引数として string を 1つだけ持つこと。
- 戻り値がvoidであること。
このメソッドを呼び出し可能なオブジェクトタイプ
SetOverridesProperty
public bool SetOverridesProperty(string Key, string Value, string ItemName)
overridesを設定します。同じKeyが存在すれば上書きされ、なければ追加されます。"itemname"を使用していない場合はItemNameには空文字列を指定します。
このメソッドを呼び出し可能なオブジェクトタイプ
GetOverridesProperty
public bool GetOverridesProperty(string Key, ref string Value, ref string ItemName)
overrides設定を取得します。