この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新リビジョン 両方とも次のリビジョン | ||
vci:script:luatutorial [2021/06/23 16:50] t-daihisa |
vci:script:luatutorial [2023/10/04 18:34] pastatto リファレンスページのURL変更 |
||
---|---|---|---|
ライン 17: | ライン 17: | ||
Luaを使ったプログラミングを俯瞰する為の基本的なチュートリアルになります。 | Luaを使ったプログラミングを俯瞰する為の基本的なチュートリアルになります。 | ||
- | Luaの基本を把握した上で [[vci:script:reference|VCIスクリプトリファレンス]] を参考にしていただけると、VCIで様々な事ができるかと思います。 | + | Luaの基本を把握した上で [[https://developer.virtualcast.jp/vci-docs/api/|VCIスクリプトリファレンス]] を参考にしていただけると、VCIで様々な事ができるかと思います。 |
==== 1.Luaのコメントについて ==== | ==== 1.Luaのコメントについて ==== | ||
ライン 66: | ライン 66: | ||
※1 ""をつける事で、文字列なのか変数なのか区別をつける事ができます。 | ※1 ""をつける事で、文字列なのか変数なのか区別をつける事ができます。 | ||
+ | <wrap notice right>⇒ [[vci/script/console]]</wrap>\\ | ||
==== 3.変数と型 ==== | ==== 3.変数と型 ==== | ||
ライン 103: | ライン 104: | ||
print("Grab : "..GranCount) | print("Grab : "..GranCount) | ||
| | ||
- | --掴んでる回数が3の倍数か判定 | + | --つかんでる回数が3の倍数か判定 |
local num = GranCount % 3 | local num = GranCount % 3 | ||
if num == 0 then | if num == 0 then | ||
ライン 340: | ライン 341: | ||
<file lua main.lua> | <file lua main.lua> | ||
function onGrab(target) | function onGrab(target) | ||
- | print(target.."を掴みました") | + | print(target.."をつかみました") |
end | end | ||
ライン 348: | ライン 349: | ||
function onUse(use) | function onUse(use) | ||
- | print(use.."を掴んだ状態でグリップボタンが押されました") | + | print(use.."をつかんだ状態で使用されました") |
end | end | ||
ライン 368: | ライン 369: | ||
</file> | </file> | ||
- | VCIを掴んだ時、離した時、グリップした時、触れた時、離れた時等…\\ | + | VCIをつかんだ時、離した時、使った時、触れた時、離れた時等…\\ |
- | VCIを使ってる状態を条件にして実行する関数を [[vci:script:reference:eventfunction|イベント関数]] といいます。 | + | VCIを使ってる状態を条件にして実行する関数を [[https://developer.virtualcast.jp/vci-docs/api/events/index.html|イベント関数]] といいます。 |
また、イベント関数には**引数**を設定できます。\\ | また、イベント関数には**引数**を設定できます。\\ | ||
引数とは、**関数が情報を受け取る仕組み**です。\\ | 引数とは、**関数が情報を受け取る仕組み**です。\\ | ||
イベント関数の場合は **SubItemのgameobject名が引数に渡される** という決まりがあります。\\ | イベント関数の場合は **SubItemのgameobject名が引数に渡される** という決まりがあります。\\ | ||
- | イベント関数でSubitemの名前が受け取れると何がいいのか?といいますと… ''function onGrab(target)'' の ''target'' の文字列を見る事で、**どのSubitemを掴んだのか?**を知る事ができます。\\ | + | イベント関数でSubitemの名前が受け取れると何がいいのか?といいますと… ''function onGrab(target)'' の ''target'' の文字列を見る事で、**どのSubitemをつかんだのか?**を知る事ができます。\\ |
- | 掴んだアイテム名を知る事ができるので、そのアイテムに対して処理が施せるわけです。 | + | つかんだアイテム名を知る事ができるので、そのアイテムに対して処理が施せるわけです。 |
(引数…例えば、所持金に対して、買えるジュースの本数を計算関数があるとします。この場合、関数を実行するのに所持金を知る必要があります。この所持金が引数にあたります。) | (引数…例えば、所持金に対して、買えるジュースの本数を計算関数があるとします。この場合、関数を実行するのに所持金を知る必要があります。この所持金が引数にあたります。) | ||
ライン 399: | ライン 400: | ||
関数は自作する事ができます。\\ | 関数は自作する事ができます。\\ | ||
作成する場合は ''function 任意の関数名()'' で宣言し…関数の処理を書いて ''end'' で囲います。\\ | 作成する場合は ''function 任意の関数名()'' で宣言し…関数の処理を書いて ''end'' で囲います。\\ | ||
- | 関数を実行する時は [[vci:script:reference:eventfunction|イベント関数]] の中で ''作成した関数名()'' と書く事で実行できます。\\ | + | 関数を実行する時は [[https://developer.virtualcast.jp/vci-docs/api/events/index.html|イベント関数]] の中で ''作成した関数名()'' と書く事で実行できます。\\ |
VCIスクリプトでは自作の関数はイベント関数を経由して実行します。 | VCIスクリプトでは自作の関数はイベント関数を経由して実行します。 | ||
==== 11.関数の引数と戻り値 ==== | ==== 11.関数の引数と戻り値 ==== | ||
- | {{:モデル作成:vci作成:function.png?direct&200|}} | + | {{vci:script:function.png?direct&200|}} |
関数とは、ある入力に対して処理を行い、その結果を返してくれます。 | 関数とは、ある入力に対して処理を行い、その結果を返してくれます。 | ||
ライン 414: | ライン 415: | ||
function ShowPosition(target) | function ShowPosition(target) | ||
- | local pos = vci.assets.GetSubItem(target).GetPosition() | + | local pos = vci.assets.GetTransform(target).GetPosition() |
local posc = tostring(pos) | local posc = tostring(pos) | ||
local message = target.."の現在位置は"..posc.."です" | local message = target.."の現在位置は"..posc.."です" | ||
ライン 472: | ライン 473: | ||
Luaのライブラリは [[http://milkpot.sakura.ne.jp/lua/lua52_manual_ja.html|Lua 5.2 リファレンスマニュアル]] に書かれています。\\ | Luaのライブラリは [[http://milkpot.sakura.ne.jp/lua/lua52_manual_ja.html|Lua 5.2 リファレンスマニュアル]] に書かれています。\\ | ||
- | VCIで使用可能なライブラリは[[vci:script:reference|VCIスクリプトリファレンス]]の他、[EmbeddedScriptWorkspace]フォルダ内の[types.lua]からも定義されてる関数を確認する事ができます。 | + | VCIで使用可能なライブラリは[[https://developer.virtualcast.jp/vci-docs/api/|VCIスクリプトリファレンス]]の他、[EmbeddedScriptWorkspace]フォルダ内の[types.lua]からも定義されてる関数を確認する事ができます。 |
※1 使えるライブラリには制限があります。 | ※1 使えるライブラリには制限があります。 | ||
ライン 478: | ライン 479: | ||
==== 13.使えるライブラリの確認について ==== | ==== 13.使えるライブラリの確認について ==== | ||
- | [[vci:top|VCI TOP]] の **使えるライブラリ一覧** よりヘルプのファイルをダウンロード。\\ | + | [[vci/script/reference|旧VCIスクリプトリファレンス]] の **リファレンス(自動出力)** より''vcireferencedoc.zip''のファイルをダウンロード。\\ |
(Lua自体のライブラリも確認できます) | (Lua自体のライブラリも確認できます) | ||
- | VCIのライブラリは [[vci:script:reference|VCIスクリプトリファレンス]] より確認できます。 | + | 現在のVCIのライブラリは [[https://developer.virtualcast.jp/vci-docs/api/|新VCIスクリプトリファレンス]] より確認できます。 |
また、**Luaのみのプログラミング**をしたい場合であれば [[http://codepad.org/|codepad]] で簡易的な確認をする事ができます。\\ | また、**Luaのみのプログラミング**をしたい場合であれば [[http://codepad.org/|codepad]] で簡易的な確認をする事ができます。\\ | ||
※上記は当然VCI固有の処理はできないので、純粋なLuaのプログラミングに使用します。 | ※上記は当然VCI固有の処理はできないので、純粋なLuaのプログラミングに使用します。 |