ART & GALLERY
ART & GALLERY
GYRE GALLERYで開催されている個展「Oracle」は、名和晃平さんにとって、どのような挑戦だったのか。
自らの“現在地”とともに、アートに見いだしている限りない可能性について語ったモノローグ。
これまでは1つの部屋に1つの作品シリーズを展示することで、見せるものを絞り、そこで知覚されるものをシンプルにしてきましたが、今回は複数の作品シリーズを同室に共存させたうえに、そうした空間が連続するように構成しています。それほど広くない会場ですが、進んでいくと、次から次に異なるものと出合う。さまざまな作品のストーリーやコンセプトが組み合わさったり、そこから広がりが生まれたら面白いと思いました。
〈PixCell〉は20年近くつくり続けているシリーズですが、それ以外はほとんど新しい試みによって出来たものばかりです。
たとえば〈Dune〉は“砂丘”を意味し、そのランドスケープのようなイメージを、物質的に再現するペインティングができないだろうかと取り組みました。数種類の絵の具やメディウムをある配合で混ぜ合わせたものを、床に置いたキャンバスの上に流すと、質量が重いものと軽いもの、粒の大きなものと小さなものとでは、流れる距離などが違うために、いろいろな模様や形状が現れる。また、粘り気のあるものとないものを混ぜると、乾くときに分離したり、シワができたりする。とくに厚みがあるところは、表面が乾いたあとに破れて稲妻のようにひび割れたり、予想のつかない表情も生まれました。
2019年に京都の二条城で開催された展覧会「時を超える:美の基準」で、〈Tornscape〉という映像のインスタレーションを発表しました。プログラマーの白木良さんと組んで、物理シミュレーションによってランドスケープや天候を変化させて、その生成の場を空撮しているような映像作品をつくったのですが、題材となったのは、およそ800年前に鴨長明によって書かれた『方丈記』でした。京都を襲った厄災のルポルタージュのような随筆で、大火や飢饉、疫病、地震と、人々がたいへんな災難に見舞われながらも、生き続けていくさまが淡々と描かれています。死と生が繰り返され、そのなかに自分たちがいるという感覚。そこに無常観のようなものがある。
大きな地震や今年(*2020年)のコロナウイルスの蔓延など、現代にも『方丈記』に記されているような災難が繰り返し起こりますが、それでもやはり人々の生活は続いていくのだなと実感しました。その世界観を、コンピューターによるシミュレーションではなく、〈Dune〉のように本物の絵の具などを使ったペインティングで表現することで、物性がより豊かに感じられる作品としてつくってみたかった。僕が“彫刻”というものに向き合い続けている理由も、そうしたところにあります。物質から直接的に伝わる質感や、空間の中で体感として得られるものは、やっぱり強いと思う。そのような着想から、今回の「Oracle」では、よりフィジカルに感じられるもの、受け取れるものを重視しながら作品をつくりました。
大きな地震や今年(*2020年)のコロナウイルスの蔓延など、現代にも『方丈記』に記されているような災難が繰り返し起こりますが、それでもやはり人々の生活は続いていくのだなと実感しました。その世界観を、コンピューターによるシミュレーションではなく、〈Dune〉のように本物の絵の具などを使ったペインティングで表現することで、物性がより豊かに感じられる作品としてつくってみたかった。僕が“彫刻”というものに向き合い続けている理由も、そうしたところにあります。物質から直接的に伝わる質感や、空間の中で体感として得られるものは、やっぱり強いと思う。そのような着想から、今回の「Oracle」では、よりフィジカルに感じられるもの、受け取れるものを重視しながら作品をつくりました。
パフォーマンスの舞台にも携わることがあります。コレオグラファーが振り付けをして、ダンサーがそれに従って動くわけですが、細かく身体の動きを決めておく場合もあれば、ストーリーやコンセプトを共有したうえで、自らの意思で動いてもらう場合もある。僕の作品づくりは、後者によく似ているところがあって。ダンサーのかわりに、絵の具やなにかしらの物質で、どうやったらその物性のもつ幅をいかして、人の感覚に届けられるだろうかと考えます。最終的に、どこで、どういうかたちで人の知覚へと接続するか。絵の具などを配合するときにも、そういったことを念頭に置いて、作品のイメージを膨らませます。
ここ数年、植物の種子や胚珠をモチーフとして3Dの形状を作成し、収集するように増やしてきました。〈Blue Seed〉はその形状が次々に現れる作品で、実際には、連続的なスキャンラインに置き換えて、UVレーザーで特殊な顔料を塗ったボードに照射しています。種子や胚珠を輪切りにした断面のアウトラインをレーザー光線が描き続け、その紫外線に反応した顔料が数十秒のあいだ青く変色することによって、立体をイメージさせる像が浮かび上がっては消えていきます。
種子や胚珠は、その形状の内にある力を想像すると非常に面白い。水を吸収したり、気温が変わったりすることで芽が出て、ゆくゆくは大木にまで育ったりするわけですよね。まさしく生命の源であって、神秘的だと思います。
彫刻家を志したころから、歴史に残るような彫刻には憧れをもっています。なかでも、中世に発展を遂げた宗教美術のすごみには感銘を受けます。
現代の資本主義の世の中では、そのような作品は生まれにくいと思われがちですが、京都を例にとると、仏師や塗師、箔職人などがまだまだ活躍していて、卓越した技術や知恵が継承されている。それは産業革命以降の大量生産でプロダクトを生み出すという方法論とは、まったく違うものです。何百年後、千年後にも作品を残す方法が、変わらず確立されていることは、リスペクトすべきだと思います。〈Trans-Sacred Deer(g/p_cloud_agyo)〉は、そういった京都のさまざまな職人たちの協力を得て生まれた作品です。
仏像のつくり方というのも、当然ながら時の流れとともに変遷があって、その当時の革新的な技術を駆使することによって、錚々たる作品がつくられてきた歴史があります。それほどの作品を残そうとするならば、いまだったら、どういうやり方になるだろうかと考えて、僕はコンピューターの中で造形する方法を選びました。そうしてつくった3Dモデルをもとに、木彫り、漆塗り、箔仕上げと、それぞれの工房での工程を経て、新しさと伝統が融合した彫刻が出来上がっていきました。
「Oracle」(*神託、神の言葉などの意味)という個展タイトルですが、それほど深い意味はありません。
〈Trans-Sacred Deer(g/p_cloud_agyo)〉は、鎌倉・南北朝時代につくられた「春日神鹿舎利厨子」の神鹿をモチーフとして、“雲鹿”(くもじか)の通称で、昨年(*2019年)末から制作を始めていました。霧の中をさまよう人々の前に、雲で出来た神鹿が現れて先導してくれる、そんな存在をイメージしたものです。その制作を進めているうちに、やがてコロナウイルスが世界中に広まり始め、今回の展示とタイミングが重なってしまいました。
このコロナ禍にあって、いろいろな人が答えを出そうと試みても、なかなか出すことができない。医学においても、政治においても、間違いなくこうすればいいと断言することは、その道の専門家ですら難しい。ある意味、神頼みするしかない状態のように感じられて、タイトルに関しては、そういった現状を反射したところもありますね。
「Oracle」(*神託、神の言葉などの意味)という個展タイトルですが、それほど深い意味はありません。
〈Trans-Sacred Deer(g/p_cloud_agyo)〉は、鎌倉・南北朝時代につくられた「春日神鹿舎利厨子」の神鹿をモチーフとして、“雲鹿”(くもじか)の通称で、昨年(*2019年)末から制作を始めていました。霧の中をさまよう人々の前に、雲で出来た神鹿が現れて先導してくれる、そんな存在をイメージしたものです。その制作を進めているうちに、やがてコロナウイルスが世界中に広まり始め、今回の展示とタイミングが重なってしまいました。
このコロナ禍にあって、いろいろな人が答えを出そうと試みても、なかなか出すことができない。医学においても、政治においても、間違いなくこうすればいいと断言することは、その道の専門家ですら難しい。ある意味、神頼みするしかない状態のように感じられて、タイトルに関しては、そういった現状を反射したところもありますね。
今年は明治神宮が鎮座から100年を迎え、さまざまな奉祝行事が催されています。僕は約1年間にわたって開催される「神宮の杜芸術祝祭」に参加していて、この「Oracle」展の会期初日には、本殿の正面にあたる南神門に〈鳳/凰(Ho/Oh)〉が展示されます(*2020年11月3日で展示は終了)。そうした明治神宮の百年祭にまつわる展示とともに、こうして表参道で個展を開くことができました。
明治以降の近代化の歩みが、いまの東京や日本の社会の礎となっていることについて、あらためて考えたいし、この記念となる年を祝いたいと思っています。この機会に、表参道は明治神宮へと続く参道である、ということを多くの人に思い出していただいて、明治神宮にもぜひ足を運んでいただきたいです。
今回の展示において、コロナ禍だからこういう内容にしよう、といった考えはありませんでした。〈Rhythm〉などは球体がいくつも配置されているので、まるでウイルスのように見えるかもしれませんが、それはこの一年のうちに、人々の感じ方が変わったのだろうと思います。この作品自体は、昨年から試作していたもので、とくにウイルスを表現しようとしたわけではない。それでも、そんな風に見えてしまうという現象そのものに、僕はとても興味があります。アートというのは、そういうことが起こるメディアだということです。
言葉ではないことで、また個人的な感情も、誰かが手を入れた痕跡も一切感じさせないことによって、物性や造形そのものが表現より手前にやってくる。自然物を見ているかのように、きわめてニュートラルに知覚できるようになる。
そうした接点や入り口をつくったほうが、作品を見た本人がなにかを見つける、自身の中でなにかが始まる、といった状態に導けるのではないかと考えています。
以前から述べてきたことですが、僕にはあまり、自己表現をしようという意識はありません。自己表現や自己実現で作品をつくるのは、もう十分というか。自分を表現する機会は、いまや誰もがたくさん持っているわけだから、アーティストがことさらそれを追究する必要はないように感じてしまいます。
それよりも、自分というフィルターを通してなにかを解釈し直すことで、あるいは、自分自身が鏡面となってなにかを反射するように、新しい表現を生み出していきたい。思想やイデオロギーとも異なる、アーティストならではの直感や感覚が、きっかけや裂け目となって、人々のものの見方や感じ方を変える瞬間がある。それこそがアートのすごさであり、そういう可能性をもった作品を常につくりたいと思っています。
いまは、淡々と作品をつくり続けることだけだと思います。普遍的な表現に向かい続けて、残していく。それが自分のやりたいことです。ひとつの社会問題を主題としたり、制度に対して抗うために作品をつくるといった動機は、そもそも持ち合わせていません。なにかへの意見としての表現をアートに置き換えること自体が、ロジックとして単純すぎると思えてしまう。僕はやはり、もっと普遍的なものを追い求めていたいです。
var GYRE = GYRE || {}; GYRE.ARTDETAIL = {}; GYRE.ARTDETAIL.INIT = []; GYRE.ARTDETAIL.DESTROY = [];
var GYRE = GYRE || {};
GYRE.ARTDETAIL = {};
GYRE.ARTDETAIL.INIT = [];
GYRE.ARTDETAIL.DESTROY = [];
/*
アップデートして利用をする事で軽量化する
*/
var oracleData = {
width:window.innerWidth,
height:window.innerHeight,
height_static:$(window).height(),
scroll:0,
pcmode:(window.innerWidth > 1200),
spmode:(window.innerWidth <= 1200),
update:function(){
oracleData.scroll = $(window).scrollTop();
},
resize:function(){
oracleData.width = window.innerWidth;
oracleData.height = window.innerHeight;
oracleData.height_static = $(window).height();
if(oracleData.width > 1200){
oracleData.pcmode = true;
oracleData.spmode = false;
}else{
oracleData.pcmode = false;
oracleData.spmode = true;
}
},
init:function(){
$(window).on('resize.oracleData', oracleData.resize);
oracleData.resize();
setTimeout(oracleData.resize,1000);
setTimeout(oracleData.resize,3000);
},
destroy:function(){
$(window).off('resize.oracleData', oracleData.resize);
}
}
/*
data-aspectをつけた要素は横幅に合わせて縦幅が可変していく。
*/
var resizeAspect = {
interval0:null,
init:function() {
var _resize = oracleData.resize;
oracleData.resize = function(){
_resize();
$('[data-aspect]').each(function(){
$(this).css({"height":$(this).width()*$(this).data("aspect")})
});
if (oracleData.spmode) {
$('[data-aspectsp]').each(function(){
$(this).css({"height":$(this).width()*$(this).data("aspectsp")})
});
}
if (oracleData.spmode) {
$(".oracle_content_6_left h2").css({"height":"auto"});
}else{
var _h = 37 + 96+ $(".oracle_content_6_center p").eq(0).height() + 8;
$(".oracle_content_6_left h2").css({"height":_h});
}
var _count = 0;
$(".oracle-img").each(function(){
if ($(this).is(":hidden")) {
//非表示のときの処理をする
$(".oracle-copy").eq(_count).removeClass("-on");
$(".oracle-copy").eq(_count).css({
"display":"none"
})
} else {
//表示しているときの処理をする
$(".oracle-copy").eq(_count).addClass("-on");
$(".oracle-copy").eq(_count).css({
"display":"block",
top:$(this).offset().top,
left:$(this).offset().left,
width:$(this).width(),
height:$(this).height()
})
}
_count++;
});
if (oracleData.spmode) {
var _top1 = parseFloat($(".oracle_content_2").offset().top) - parseFloat($(".oracle_content_1").offset().top);
_top1 -= $(".oracle_content_1 .oracle_content_1_right .oracle-img").height()/2;
$(".oracle-bg_1").css({
"display":"block",
top:$(".oracle_content_1").offset().top,
left:0,
width:"5.86vw",
height:_top1+"px"
});
var _top2 = parseFloat($(".oracle_content_9_right").offset().top) - parseFloat($(".oracle_monologue .oracle_content_9").offset().top);
_top2 += parseFloat($(".oracle_content_9_right").height())/2;
_top2 -= $(window).width()/100*2.2
$(".oracle-bg_2").css({
"display":"block",
top:$(".oracle_monologue .oracle_content_9").offset().top + $(window).width()/100*2.2,
left:0,
width:"5.86vw",
height:_top2+"px"
});
}else{
var _top1 = parseFloat($(".oracle_content_2").offset().top) - parseFloat($(".oracle_content_1").offset().top);
$(".oracle-bg_1").css({
"display":"block",
top:$(".oracle_content_1").offset().top,
left:0,
width:88,
height:_top1+"px"
});
var _top2 = parseFloat($(".oracle_content_12").offset().top) - parseFloat($(".oracle_monologue .oracle_content_9 .oracle_content_9_left p").eq(2).offset().top) - 66;
_top2 -= $(window).width()/100/5*3
$(".oracle-bg_2").css({
"display":"block",
top:$(".oracle_monologue .oracle_content_9 .oracle_content_9_left p").eq(2).offset().top + 66 + $(window).width()/100/5*3,
left:0,
width:88,
height:_top2+"px"
});
}
}
var _scrlTop = 0;
var _scrlTarget = 0;
var _scrlDiff = 0;
resizeAspect.interval0 = setInterval(function(){
oracleData.update();
_scrlTarget = oracleData.scroll;
_scrlTop += (_scrlTarget - _scrlTop)*0.1;
_scrlDiff += ((_scrlTop - _scrlTarget) - _scrlDiff)*0.05;
if (oracleData.pcmode && false) {
$(".oracle_pala").css({
"transform":"translateY(-"+_scrlTop+"px)",
"position":"fixed"
});
}else{
$(".oracle_pala").css({
"transform":"translateY("+0+"px)",
"position":"absolute"
});
}
var _p = 30 + _scrlDiff/20;
if(_p > 60){
_p = 60;
}else if(_p < 0){
_p = 0;
}
_p -= 30;
_p *= 2;
if (oracleData.pcmode && false) {
$(".oracle-copy.-on").each(function(){
if(
( _scrlTop < parseInt($(this).css("top")) + parseInt($(this).css("height")) )
&& ( _scrlTop + oracleData.height > parseInt($(this).css("top")) )
){
var percent = (_scrlTop - (parseInt($(this).css("top")) + parseInt($(this).css("height"))) )/(oracleData.height + parseInt($(this).css("height")))*100 + 100;
$(this).css({
"background-position-y":(_p+percent)+"%"
});
}
});
}else{
//スマホの場合は位置のみに依存
$(".oracle-copy.-on").each(function(){
if(
( _scrlTop < parseInt($(this).css("top")) + parseInt($(this).css("height")) )
&& ( _scrlTop + oracleData.height > parseInt($(this).css("top")) )
){
var percent = (_scrlTop - (parseInt($(this).css("top")) + parseInt($(this).css("height"))) )/(oracleData.height + parseInt($(this).css("height")))*100 + 100;
$(this).css({
"background-position-y":(percent)+"%"
});
}
});
}
},16);
},
destroy:function() {
clearInterval(resizeAspect.interval0);
}
};
GYRE.ARTDETAIL.INIT.push(resizeAspect.init);
GYRE.ARTDETAIL.DESTROY.push(resizeAspect.destroy);
/*
トップの画像の切り替えGL
*/
var glSetting = {
interval0:null,
interval1:null,
interval2:null,
init: function() {
var GALLERY_EFFECT = {
VERTEX:"varying vec2 vUv;\
uniform float uFixAspectY;\
uniform float uFixAspectX;\
void main() {\
vUv = uv - .5;\
vUv.y *= uFixAspectY;\
vUv.x *= uFixAspectX;\
vUv += .5;\
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\
}",
FRAGMENT:"varying vec2 vUv;\
uniform sampler2D texture1;\
uniform sampler2D texture2;\
uniform sampler2D disp;\
uniform float dispFactor;\
uniform float nextFactor;\
uniform float effectFactor;\
uniform float largeFactor1;\
uniform float largeFactor2;\
void main() {\
vec2 uv = vUv;\
vec4 disp = texture2D(disp, uv);\
uv.xy *= largeFactor1;\
uv.xy += (1.0 - largeFactor1)/2.0;\
vec2 distortedPosition = vec2(uv.x + dispFactor * ((disp.r-.5)*effectFactor), uv.y + nextFactor * ((disp.r-.5)*effectFactor));\
uv.xy -= (1.0 - largeFactor1)/2.0;\
uv.xy *= 1.0/largeFactor1;\
uv.xy *= largeFactor2;\
uv.xy += (1.0 - largeFactor2)/2.0;\
vec2 distortedPosition2 = vec2(uv.x - (1.0 - dispFactor) * ((disp.r-.5)*effectFactor), uv.y + nextFactor * ((disp.r-.5)*effectFactor));\
vec4 _texture = texture2D(texture1, distortedPosition);\
vec4 _texture2 = texture2D(texture2, distortedPosition2);\
vec4 finalTexture = mix(_texture, _texture2, dispFactor);\
gl_FragColor = finalTexture;\
}"
};
glSetting.interval0 = setInterval(function() {
/*
if (oracleData.spmode) {
$(".oracle_header").css({
"height": oracleData.height,
"min-height": $(window).innerHeight()
});
}*/
}, 100)
/*
"margin-top": -$(window).innerHeight()
*/
// レンダラーを作成
const renderer = new THREE.WebGLRenderer({
canvas: document.querySelector('#myCanvas')
});
renderer.setClearColor(0xffffff, 1.0);
renderer.setPixelRatio(1);
renderer.setSize(oracleData.width, oracleData.height+100);
// シーンを作成
const scene = new THREE.Scene();
// カメラを作成
var camera = new THREE.OrthographicCamera(oracleData.width / -2,oracleData.width / 2,oracleData.height / 2,oracleData.height / -2,1,1000);
camera.position.set(0, 0, 1000);
var loader = new THREE.TextureLoader();
loader.crossOrigin = "";
var _texArray = [
loader.load("/assets/img/art-detail/oracle/top_gallery_1.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_2.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_3.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_4.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_5.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_1_sp.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_2_sp.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_3_sp.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_4_sp.jpg"),
loader.load("/assets/img/art-detail/oracle/top_gallery_5_sp.jpg")
];
var disp = loader.load("/assets/img/art-detail/oracle/clouds.jpg");
disp.wrapS = disp.wrapT = THREE.RepeatWrapping;
function setTex(tex) {
tex.wrapS = tex.wrapT = THREE.RepeatWrapping;
tex.magFilter = THREE.LinearFilter;
tex.minFilter = THREE.LinearFilter;
tex.anisotropy = renderer.getMaxAnisotropy();
}
setTex(_texArray[0]);
setTex(_texArray[1]);
setTex(_texArray[2]);
setTex(_texArray[3]);
setTex(_texArray[4]);
setTex(_texArray[5]);
setTex(_texArray[6]);
setTex(_texArray[7]);
setTex(_texArray[8]);
setTex(_texArray[9]);
var mat = new THREE.ShaderMaterial({
uniforms: {
effectFactor: { type: "f", value: 0.8 },
dispFactor: { type: "f", value: 0 },
nextFactor: { type: "f", value: 0 },
largeFactor1: { type: "f", value: 1 },
largeFactor2: { type: "f", value: 1 },
texture1: { type: "t", value: _texArray[0] },
texture2: { type: "t", value: _texArray[1] },
disp: { type: "t", value: disp },
uFixAspectY: { type: "f", value: 1 },
uFixAspectX: { type: "f", value: 1 }
},
vertexShader: GALLERY_EFFECT.VERTEX,
fragmentShader: GALLERY_EFFECT.FRAGMENT,
transparent: true,
opacity: 1.0
});
var _reverse = false;
var _count = 1;
TweenMax.to(mat.uniforms.largeFactor1, 7.2, {
value: 0.7,
ease: Quad.easeIn
});
/*
画像の切り替え
*/
glSetting.interval1 = setInterval(function() {
var _base = 0;
if (oracleData.spmode) {
_base = 5;
}
if (pause) {
return;
} else if (_reverse) {
mat.uniforms.texture1.value = _texArray[_count % 5 + _base];
mat.uniforms.texture1.value.needsUpdate = true;
TweenMax.to(mat.uniforms.dispFactor, 3.2, {
value: 0,
ease: Quad.easeInOut
});
mat.uniforms.largeFactor1.value = 1;
TweenMax.to(mat.uniforms.largeFactor1, 7.2, {
value: 0.9,
ease: Quad.easeIn
});
} else {
mat.uniforms.texture2.value = _texArray[_count % 5 + _base];
mat.uniforms.texture2.value.needsUpdate = true;
TweenMax.to(mat.uniforms.dispFactor, 3.2, {
value: 1,
ease: Quad.easeInOut
});
mat.uniforms.largeFactor2.value = 1;
TweenMax.to(mat.uniforms.largeFactor2, 7.2, {
value: 0.9,
ease: Quad.easeIn
});
}
_count++;
_reverse = !_reverse;
}, 5500);
var pause = false;
var pausing = false;
glSetting.interval2 = setInterval(function() {
if (oracleData.scroll > 1 && !pause && !pausing) {
//pause = true;
pausing = true;
$(".oracle_header").fadeOut(800, function() {
pause = true;
pausing = false;
});
$(".section-title").css({ "visibility": "visible" })
$(".scroll-arrow").css({ "visibility": "visible" })
TweenMax.to(mat.uniforms.nextFactor, 0.8, {
value: 1,
ease: Quad.easeOut
});
} else if (oracleData.scroll< 1 && pause && !pausing) {
pause = false;
tick();
$(".oracle_header").fadeIn(800);
$(".section-title").css({ "visibility": "hidden" })
$(".scroll-arrow").css({ "visibility": "hidden" })
TweenMax.to(mat.uniforms.nextFactor, 0.8, {
value: 0,
ease: Quad.easeOut
});
}
if(oracleData.scroll > $(".oracle_monologue").offset().top){
$("#oracle_gallery").addClass("-show");
}else{
$("#oracle_gallery").removeClass("-show");
}
}, 100);
scene.add(new THREE.Mesh(new THREE.PlaneBufferGeometry(oracleData.width,oracleData.height,1), mat));
tick();
function tick() {
renderer.render(scene, camera); // レンダリング
if (!pause) {
requestAnimationFrame(tick);
}
}
var _resize = oracleData.resize;
oracleData.resize = function(){
_resize();
renderer.setPixelRatio(1);
renderer.setSize(oracleData.width, oracleData.height_static + 100);
//camera.aspect = 20;//width / height;
//camera.updateProjectionMatrix();
var _aspect = oracleData.width / (oracleData.height_static+100);
if (oracleData.spmode) {
if (_aspect > 0.66) {
mat.uniforms.uFixAspectY.value = 0.66 / _aspect;
mat.uniforms.uFixAspectX.value = 1;
mat.uniforms.uFixAspectX.value.needsUpdate = true;
mat.uniforms.uFixAspectY.value.needsUpdate = true;
} else {
mat.uniforms.uFixAspectY.value = 1;
mat.uniforms.uFixAspectX.value = _aspect / 0.66;
mat.uniforms.uFixAspectX.value.needsUpdate = true;
mat.uniforms.uFixAspectY.value.needsUpdate = true;
}
} else {
if (_aspect > 1.7) {
mat.uniforms.uFixAspectY.value = 1.7 / _aspect;
mat.uniforms.uFixAspectX.value = 1;
mat.uniforms.uFixAspectX.value.needsUpdate = true;
mat.uniforms.uFixAspectY.value.needsUpdate = true;
} else {
mat.uniforms.uFixAspectY.value = 1;
mat.uniforms.uFixAspectX.value = _aspect / 1.7;
mat.uniforms.uFixAspectX.value.needsUpdate = true;
mat.uniforms.uFixAspectY.value.needsUpdate = true;
}
}
}
},
destroy: function() {
clearInterval(glSetting.interval0);
clearInterval(glSetting.interval1);
clearInterval(glSetting.interval2);
}
}
GYRE.ARTDETAIL.INIT.push(glSetting.init);
GYRE.ARTDETAIL.DESTROY.push(glSetting.destroy);
/*
クリックやホバーのイベント
*/
var clickevent = {
init:function() {
$("#oracle_to_information").on('click', function(){
var speed = 1200;
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
$("html, body").animate({scrollTop:position}, speed);
return false;
});
var cursor=$("#oracle_cursor");
$(document).on("mousemove",function(e){
var x=e.clientX;
var y=e.clientY;
cursor.css({"top":y+"px","left":x+"px"});
});
$(".oracle-img").on({
"mouseenter": function() {
//activeクラス付与
cursor.addClass("active");
},
"mouseleave": function() {
cursor.removeClass("active");
}
});
}, destroy:function() {
$("#oracle_to_information").off('click');
$(window).off('click');
$(".oracle-img").off("mouseenter");
$(".oracle-img").off("mouseleave");
$(document).on("mousemove");
}
};
GYRE.ARTDETAIL.INIT.push(clickevent.init);
GYRE.ARTDETAIL.DESTROY.push(clickevent.destroy);
/*
var prrxevent = {
init:function() {
}, destroy:function() {
}
};
GYRE.ARTDETAIL.INIT.push(prrxevent.init);
GYRE.ARTDETAIL.DESTROY.push(prrxevent.destroy);
*/
/*
YOUTUBEの表示用
*/
/*
var oracleyoutube = {
init: function() {
var _f = window.onYouTubeIframeAPIReady;
window.onYouTubeIframeAPIReady = function() {
oracleyoutube.ready();
if(_f != null){
_f();
}
}
},
destroy: function() {
},
ready: function() {
var player;
player = new YT.Player('oracle_youtube', {
height: '360',
width: '640',
videoId: 'N1zkeT01WD8', //表示させたいYouTubeの動画ID
playerVars: {
controls: 0,
autoplay: 1,
disablekb: 1,
enablejsapi: 1,
iv_load_policy: 3,
playsinline: 1,
loop: 1,
playlist: 'N1zkeT01WD8',
rel: 0
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
function onPlayerReady(event) {
event.target.mute();
event.target.playVideo();
}
function onPlayerStateChange(event) {
var ytStatus = event.target.getPlayerState();
if (ytStatus == YT.PlayerState.ENDED) {
player.mute();
player.playVideo();
}
}
}
};
GYRE.ARTDETAIL.INIT.push(oracleyoutube.init);
GYRE.ARTDETAIL.DESTROY.push(oracleyoutube.destroy);
*/
var oracleRollover = {
init:function(){
var _length = $(".oracle_ro").length;
for(var i = 0; i < _length ; i++){
var _src = $(".oracle_ro").eq(i).attr("src")
var _src_replace = _src.replace(".","_over.");
var _img = new Image();
_img.src = _src_replace;
$(".oracle_ro").eq(i).hover(function(){
console.log(_src_replace)
this.setAttribute("src", _src_replace);
},function(){
this.setAttribute("src", _src);
})
}
},
destroy:function(){
$(".oracle_ro").unbind();
}
}
GYRE.ARTDETAIL.INIT.push(oracleRollover.init);
GYRE.ARTDETAIL.DESTROY.push(oracleRollover.destroy);
GYRE.ARTDETAIL.INIT.push(oracleData.init);
GYRE.ARTDETAIL.DESTROY.push(oracleData.destroy);
/*
var $pageWrapper = $('#jsi-page-wrapper');
if ($pageWrapper.hasClass('jsc-art-detail') && (GYRE.ARTDETAIL.INIT.length > 0)) {
GYRE.ARTDETAIL.DESTORY_ONE_FLAG = true;
GYRE.ARTDETAIL.INIT.forEach(function(value) {
value();
});
} else {
GYRE.ARTDETAIL.DESTORY_ONE_FLAG = false;
}
*/
var $pageWrapper = $('#jsi-page-wrapper'); if($pageWrapper.hasClass('jsc-art-detail') && (GYRE.ARTDETAIL.INIT.length > 0)){ GYRE.ARTDETAIL.DESTORY_ONE_FLAG = true; GYRE.ARTDETAIL.INIT.forEach(function(value){ value(); }); } else { GYRE.ARTDETAIL.DESTORY_ONE_FLAG = false; }