Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9749

Unity公式チュートリアルを紐解く

$
0
0

概要

Unityには公式で用意されているUnity Learnというものがあります。
これはUnityを学ぶ人向けにエディタ上での次に行うべき操作をハイライトなどで教えてくれるようになっており、
Unityエディタ上で動くチュートリアル機能によって実装されています。

今回はこちらの仕組みを見ていき、このチュートリアルの自作ができないか?
という試みです。

よって、今回の対象読者としては、上のUnity Learnを使う初学者、ではなく、すでにUnityを使っている中級者以上(?)となります。

環境

  • MacBook Pro (Retina, 13-inch, Late 2013)
  • macOS Catalina 10.15.6
  • Unity 2019.4.13
  • Unity Hub 2.4.2
  • Interactive Tutorial Core 0.3.0-preview.5 (Platformer Microgameに入っているもの)

今回、プロジェクトはPlatformer Microgameを使用します。
Interactive Tutorial CoreはUnity上のPackageManagerでダウンロードできますが、
1.0.0の直前のpreviewバージョンでTutorial Frameworkと名前が変わっているようです。(LEGO®︎ Microgameではそちらの1.1.0が使用されている。)

Unity Hubからダウンロードし、開くことができます。
スクリーンショット 2020-10-31 21.33.11.png

チュートリアルのデータを見る

プロジェクトを開くと、Assets/Tutorialsフォルダ内にチュートリアルのデータが入っているので、とりあえずこちらを見ていきます。
スクリーンショット 2020-11-01 14.05.25.png

TutorialContainerクラス

Assets/Tutorials/Tutorials.assetを見てみます。
インスペクタでは「Show Tutorial」ボタンしか表示されないので、インスペクタをデバッグ表示にして見ていきます。

スクリーンショット 2020-11-01 14.10.00.png

Scriptの欄を見ると、Tutorial CoreのTutorialContainerというScriptableObjectであることが分かります。
ヘッダー画像、タイトル、プロジェクト名、説明、レイアウト、セクションが含まれており、セクションはさらに別のScriptableObjectを参照しているようです。
これが最も親となる、メインのファイルのようです。

Tutorialクラス

次にAssets/Tutorials/Tutorial1/Walkthrough1.assetを見てみます。
このプロジェクトではTutorial1~5があり、それらが実際にインタラクティブなチュートリアルを実現しているらしいです。
とりあえずこちらのファイルもインスペクタで見ていきます。
スクリーンショット 2020-11-01 14.17.37.png

見ると、こちらのPagesにさらに子となるScriptableObjectへの参照があります。
これらがウインドウやボタンにハイライトしたり、個別の機能を提供しており、それを順に再生していくという仕組みに見えます。

TutorialPageクラス

それではAssets/Tutorials/Tutorial1/Walkthrough1-01-Introduction.assetを見てみます。
スクリーンショット 2020-11-01 14.21.03.png

このScriptableObjectはTutorialPageというものらしいです。
Paragraphsはチュートリアルウインドウの中身や進行条件を記述しているようです。

分かりにくいので、Assets/Tutorials/Tutorial1/Walkthrough1-02-First-Play.assetをインスペクタ表示で見てみます。
このアセットが担っている部分は、エディタ上部の再生ボタンを押させる。というものです。
今度はデバッグ表示ではなく、普通のインスペクタで表示してみます。
スクリーンショット 2020-11-01 14.44.18.png

Paragraphs内のType Instructionになっている部分を見ると、Criteriaというところにどうやらそれっぽい記述があります。

そのほかにCamera Settingsでシーンビューのカメラ位置などを変えたり、音を鳴らしたりできるようです。

Instruction

Instructionに関して深く掘ってみます。

Criteria Completion

ここには

  • Completed When All Are True (全て完了)
  • Completed When Any Is True (どれか一つ完了)

の二つで終了条件を記述できるようになっています。

Criteria

Criteriaとは、判定基準、評価基準という意味らしいです。
ここのTypeには以下の種類があるようです。
スクリーンショット 2020-11-01 14.50.04.png
ここは深くは掘りませんが、名前からなんとなく想像できるかと思います。

まとめ

チュートリアルのアセットについてまとめます。
階層としては

  • TutorialContainer
    • Tutorial
      • TutorialPage

という風になっており、それぞれが複数個の子を持つようになっています。
TutorialPage内のParagraphs内にチュートリアルウインドウ内の表示と実際の挙動を記述していく。という形です。
これがわかれば、とりあえずエディタ上でのインタラクティブなチュートリアルの自作や改変ができそうです。

P.S.

実は今回はゲーム内でのチュートリアル実装や、エディタ拡張の実装に役立てる。
というのが本題のつもりだったのですが、長くなりそうだったので、今回はチュートリアルのデータの作りだけとしました。
途中で力尽きているので、おかしな記述があるかもしれません。
年末辺りにInstruction周りなどをもう少し深く掘り下げて書けたらと思います。


Viewing all articles
Browse latest Browse all 9749

Trending Articles