diary主にゲーム開発関連についての記事を書きます。2017の5日目の記事です。UE4の例も出して多くの方にイメージが伝わるように書ければと思います。Luaですので誤りがあれば指摘いただけると幸いです。enitityで作成します。ここで作成されたコンポーネントエンティティシステムは現在はPreviewで絶賛開発中のようです。Systemと置き換わるようです。ObjectUE4でいうところのActorといった感じでしょうか。ComponentからLuaScriptを選択しますUnityのスクリプトの追加に近いイメージなので、Unityユーザーにはイメージしやすいかもしれませんね。Editorが開きます。ここで一度Scriptを保存しておきます。今回はStarterGameのプロジェクトを使用しているのでdev/StarterGame/Scriptsの下にComponentsフォルダを作成し、Sample.luaという名前で保存します。ここでちょっと特殊なのが、この段階ではこのスクリプトがEntityに関連付いていません。このLuaScriptを参照するように設定します。LuaScriptの”...”ボタンを押します。すると、下図のようなWindowが開くので、先程保存したLuaを指定します。指定するとそのScript名が表示されます。Lua「HelloWorld」とりあえずはHelloWorldから始めましょう。Luaについては先ずはこのドキュメントから読み始めると良さそうです。sampleOnActivateはUnityでいうStart()、UE4でいうBeginPlay()といったところでしょうか。Worldが出てきました。続いてPropertiesテーブルを追加してみます。MaxのRangeを指定した状態ですね。HitPoint;追加したら無事に反映されました。更新処理と終了処理の追加ここまででプロパティの追加、初期化が分かりました。あとは更新と終了処理があれば何か動くものが作れそうです。DeltaTime)とEndPlay()ですね。いうわけで、更新処理と終了処理を追加しました。sampleしれっとOnActivate()でActivateLogMessageという新しいプロパティが使用されていますがこれはPropertiesへのアクセス方法を示したかっただけですので、特別な意味はありません。終了処理から見ていきましょう。構文は下記のような形でOnActivate()が分かれば理解は簡単ですね。scriptname:OnDeactivate()end問題は更新処理の呼び出し方です。Lumberyardで更新処理を呼び出すにはシステムのTickBusから通知を受け取る必要があるようです。そのため、初期化時にはTickBusハンドラーの作成と接続を行い、終了時には切断を行う必要があります。self.tickBusHandler:Disconnect()end実行してみるとログが正しく出力されていることが確認できました。今回の入門編は以上になります。スクリプト言語でかっても分からないことも多く、苦戦しました。あとはスクリプト間の通信方法と衝突判定の通知の受け取り方が分かればゲームが作れそうな気はします。»プロフィールid:PaperSloth主にゲーム開発関連についての記事を書きます。(1)はてなブログをはじめよう!PaperSlothさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。