RICOH THETA SC + WebVRの記事の続き。
RICOH THETAで撮影した360度パノラマ画像を複数枚使用してのコンテンツ作成を試みました。
条件として、
- 画面中央にカーソルを固定表示(常に画面中央にある)
a-sphere
要素にカーソルを当てて一定時間経過すると、リンク先に移動a-sphere
要素にカーソルを当てる前後でカーソルを拡大・縮小のアニメーションを付与- カーソルを当て始めるとカーソルが縮小していく
- カーソルを
a-sphere
外に持って行ってフォーカスが外れると元の大きさに戻る a-sphere
をクリックしてリンク先コンテンツに移動したら、元の大きさに戻る
といったことを実現しました。
これも前回記事に書きましたが、バージョン0.9.0の記事が少なく、公式ドキュメントもAPIのキーは書いてあるものの値が書いてないので「このプロパティに対して何を書けば良いのか」が分からず、四苦八苦しました……。
<!-- カーソル (焦点時アニメーション付き)-->
<a-entity camera look-controls position="0 1.6 0">
<a-entity cursor="fuse: true;"
position="0 0 -1"
geometry="primitive: ring; radiusInner: 0.02; radiusOuter: 0.025"
material="color: #blue; shader: flat"
animation__click="property:scale;startEvents:click,mouseleave;easing:easeOutQuart;dur:1000;from:0.1 0.1 0.1;to:1 1 1;"
animation__focus="property:scale;startEvents:fusing;easing:easeInCubic;dur:1500;from:1 1 1;to:0.1 0.1 0.1;">
</a-entity>
</a-entity>
0.9.0では
a-animation
が削除され、
a-entity
内に
animation
属性を記述することでアニメーションを実現します。
特に「フォーカスが当たったら」「フォーカスが外れたら」のようなアニメーションの開始イベントのプロパティ
startEvents
が課題。
上記条件の2.3.(元の大きさに戻る)は
startEvents:click,mouseleave;
で。1.は
startEvents:fusing;
で。
それから、
dur
は
1000
(ms)が最小?それ以下だとアニメーションが動いている気配が感じられませんでした……。
あとこれは公式ドキュメントに書いてありましたが、複数の
animation
属性を指定する場合はアンダースコア2つを使って
animation__XXXXX
という形式で記述するように、とのことです。
以上3つが個人的に躓いた点でしょうか。
参考