[{"data":1,"prerenderedAt":458},["ShallowReactive",2],{"page-CEDEC-2":3,"page-count-CEDEC":457},[4,210],{"id":5,"title":6,"body":7,"date":186,"description":13,"extension":187,"meta":188,"navigation":191,"path":203,"seo":204,"stem":205,"tags":206,"__hash__":209},"blogs\u002F_legacy\u002F2021\u002F2021-01-23-cedec-idol-master-notes-platinum-stars.md","CEDEC IdolMaster笔记-白金星光篇",{"type":8,"value":9,"toc":179},"minimark",[10,14,23,26,29,36,39,44,47,50,59,62,78,81,84,87,90,93,101,104,110,113,116,119,128,131,134,140,143,146,149,152,155,158,164,167,173,176],[11,12,13],"p",{},"原始的演讲标题是：『目指せトップアイドル！』　PS4アイドルマスタープラチナスターズで目指したこと。",[11,15,16,17],{},"同样没有PPT，参考的：",[18,19,20],"a",{"href":20,"rel":21},"https:\u002F\u002Fgame.watch.impress.co.jp\u002Fdocs\u002Fnews\u002F1016369.html",[22],"nofollow",[11,24,25],{},"因为是PS4，所以画面要比CGSS好一些，不过这边是765。",[11,27,28],{},"开发上，这边也不是Cygames而是万代南宫梦。",[11,30,31],{},[32,33],"img",{"alt":34,"src":35},"image-20210115092727212_thumb","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210115092727212_thumb.png",[11,37,38],{},"这边没什么太详细的内容。",[40,41,43],"h2",{"id":42},"variable-toon","Variable toon",[11,45,46],{},"在ToonShader的技术基础上作了很多改进，技术命名是Variable toon。分享中没有透露具体的技术内容，只是一些概要性的说明。",[11,48,49],{},"由于默认的ToonShader会丢失掉很多信息，Variable toon的主要做法是，将这些信息重新补充到ToonShader上去。当然并不是单纯的作叠加，而是在Shader中的计算处理，所以有的地方也会作阴影的减弱。",[11,51,52,53,58],{},"示例给出的都是对比图片，由于没有什么美术素养，很多图片放到图片浏览器里面前后切换才看出差别。对比的图片可以参考原始的文章，为了防止有人访问不了，在DropBox上也上传了一份，可以到[",[18,54,57],{"href":55,"rel":56},"https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fcm5bd6b1hcerzg1\u002FIms-%E7%99%BD%E9%87%91%E6%98%9F%E5%85%89.7z?dl=0",[22],"这里","]取。",[11,60,61],{},"VariableToon的构成要素有",[63,64,65,69,72,75],"ul",{},[66,67,68],"li",{},"颜色不会有种褪色感",[66,70,71],{},"阴影计算不会出现预期外的颜色",[66,73,74],{},"根据角色动作计算出可叠加的详细阴影",[66,76,77],{},"头发、眼睛、脸颊、舌头、眼瞳各个部分添加不同的特殊处理",[11,79,80],{},"让角色无论从哪个角度看都很可爱。",[11,82,83],{},"关于详细的计算方式，虽然有作简单的说明，不过不是很确定是否是转述的问题，有点搞不明白。似乎是说，在通常的光照计算中，当3D模型受到光照时，在远离光照的那一侧将会产生阴影。而VaribleToon并不是对所有的物体都作一样的处理，而是针对离光源的远近采用不同的公式。",[11,85,86],{},"由于没有PPT，报道的文章也没有详细的记述，只能按照拍照来猜测：",[11,88,89],{},"皮肤表现上看，应当是添加了一些颜色的细节，应该是某种阴影实现。",[11,91,92],{},"根据角色动作的详细阴影，有可能是作了某种动态的接触阴影计算。",[11,94,95,96,100],{},"防止白色溢出，",[97,98,99],"em",{},"白飛び","应该是过度曝光的意思，例子中是手臂的白色计算溢出过度了。",[11,102,103],{},"各个部件的特殊处理：",[11,105,106],{},[32,107],{"alt":108,"src":109},"image-20210117154151523","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210117154151523_thumb.png",[11,111,112],{},"从对比上看，嘴唇鼻子脸颊这些应该是在削减阴影，头发应该是对高光作了处理。同时头发到脸颊有类似接触阴影或者投影的效果，不知道光是哪里来的，无法确定。",[11,114,115],{},"VariableToon的效果是受动态光照影响的，至少可以反映周围光照颜色的变化。",[11,117,118],{},"动画风格渲染方面，有两个元素非常重要：",[120,121,122,125],"ol",{},[66,123,124],{},"轮廓线(outline)",[66,126,127],{},"简略化的上色(通过shading进行2~3阶调的上色)",[11,129,130],{},"不是很了解上色，这里应该是灰阶上色，不然运算成本会高一些，不确定……",[11,132,133],{},"轮廓线处理上会对太过密集的轮廓线进行移除，同时让轮廓线受到周围的颜色的渗透，变得更加自然。",[11,135,136],{},[32,137],{"alt":138,"src":139},"image-20210117161655763","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210117161655763_thumb.png",[11,141,142],{},"这个图就是在密集处移除轮廓线的处理对比",[11,144,145],{},"另外，轮廓线带上周围的颜色目前应该算是比较常规的操作了。",[11,147,148],{},"表情方面，前作的表情是作用于脸部全体的。本作表情则分为上下两个部分，将两个部分组合以提供更高的灵活性，同时减少资源占用。",[40,150,151],{"id":151},"演出要素",[11,153,154],{},"与前作相比，白金星光的舞台特效主要添加的要素有：接近角色的长光束和观众席上的荧光棒的演出。荧光棒对表现力的提升很大，尤其是对于可以在其中行走的伸展式舞台场景更是想要尽可能的多加一些。",[11,156,157],{},"在演出制作上，由于具有很多舞台，所以演出就有了舞台和乐曲两个变量。为了减少制作成本，灯光的配置在各个舞台都采用了基本相同的配置。这样各个灯光和大型显示器的变化则可以和动作表演一样按照歌曲来进行设定，对于一个歌曲的演出表就只需要使用一个配置就可以了。",[11,159,160],{},[32,161],{"alt":162,"src":163},"image-20210117173907301","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210117173907301_thumb.png",[11,165,166],{},"特别需要提到的是灯光方面，例如LightHouse、武道馆、Arena三个舞台的灯光组的位置都基本是相同的，不过光的朝向、强度则各有不同，所以即便使用相同的演出表也能产生不同的效果。",[11,168,169],{},[32,170],{"alt":171,"src":172},"image-20210117174828697","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210117174828697_thumb.png",[11,174,175],{},"左边是LightHouse，右边是武道馆。",[11,177,178],{},"采用这样的设计之后，添加一个舞台或者添加一首歌曲也不会产生很大的工作量。",{"title":180,"searchDepth":181,"depth":182,"links":183},"",2,3,[184,185],{"id":42,"depth":181,"text":43},{"id":151,"depth":181,"text":151},"2021-01-23","md",{"layout":189,"status":190,"published":191,"author":192,"author_login":194,"author_email":195,"wordpress_id":196,"wordpress_url":197,"date_gmt":198,"excerpt":199},"post","publish",true,{"display_name":193,"login":194,"email":195,"url":180},"风铃","flinkor","flinkor@foxmail.com",3217,"\u002F?p=3217","2021-01-23 06:08:30 +0000",{"type":8,"value":200},[201],[11,202,13],{},"\u002F2021-01-23-cedec-idol-master-notes-platinum-stars",{"title":6,"description":13},"_legacy\u002F2021\u002F2021-01-23-cedec-idol-master-notes-platinum-stars",[207,208],"Idolmaster","CEDEC","rKHDsZFO8-VFoZBDXS2KmcC0e_RxRbafXFHwGSk9w1E",{"id":211,"title":212,"body":213,"date":442,"description":217,"extension":187,"meta":443,"navigation":191,"path":452,"seo":453,"stem":454,"tags":455,"__hash__":456},"blogs\u002F_legacy\u002F2021\u002F2021-01-21-cedec-idol-master-notes-technic.md","CEDEC IdolMaster笔记-制作事例技术篇",{"type":8,"value":214,"toc":434},[215,218,221,228,235,242,245,248,255,264,267,290,297,300,303,306,309,312,315,318,321,324,327,338,341,349,352,355,358,361,367,370,373,376,379,382,385,388,394,397,400,403,406,409,412,422,425,428,431],[11,216,217],{},"CEDEC看到的IdolMaster相关的分享，严格上来说并不是系列。",[11,219,220],{},"主要的构成是，CEDEC2016的三篇：",[11,222,223],{},[18,224,227],{"href":225,"rel":226},"https:\u002F\u002Fcedec.cesa.or.jp\u002F2016\u002Fsession\u002FENG\u002F3515.html",[22],"アイドルマスターシンデレラガールズ スターライトステージ 制作事例・テクニカル編",[11,229,230],{},[18,231,234],{"href":232,"rel":233},"https:\u002F\u002Fcedec.cesa.or.jp\u002F2016\u002Fsession\u002FVA\u002F4787.html",[22],"アイドルマスターシンデレラガールズ スターライトステージ 制作事例・アート編",[11,236,237],{},[18,238,241],{"href":239,"rel":240},"https:\u002F\u002Fcedec.cesa.or.jp\u002F2016\u002Fsession\u002FVA\u002F3727.html",[22],"『目指せトップアイドル！』　PS4アイドルマスタープラチナスターズで目指したこと",[11,243,244],{},"这三篇都没有公开PPT，所以是以其他地方的引用为基础的。",[11,246,247],{},"以及CEDEC2020的：",[11,249,250],{},[18,251,254],{"href":252,"rel":253},"https:\u002F\u002Fcedil.cesa.or.jp\u002Fcedil_sessions\u002Fview\u002F2315",[22],"「アイドルマスター シンデレラガールズ スターライトステージ」制作事例",[256,257,258,261],"blockquote",{},[11,259,260],{},"由于部分参考的是二手资料，会将几篇文章相互对照，采用个人认为合理的解释。",[11,262,263],{},"所以可能会出现与原文意思有出入的情况~",[11,265,266],{},"由于放在一起实在是太长了，所以按照篇章进行了拆分：",[63,268,269,272,278,284],{},[66,270,271],{},"技术篇(就是这篇)",[66,273,274],{},[18,275,277],{"href":276},"\u002F2021-01-23-cedec-idol-master-notes-art\u002F","美术篇",[66,279,280],{},[18,281,283],{"href":282},"\u002F2021-01-23-cedec-idol-master-notes-platinum-stars\u002F","白金星光篇",[66,285,286],{},[18,287,289],{"href":288},"\u002F2021-01-23-cedec-idol-master-notes-iteration\u002F","長期運用篇",[11,291,292,293],{},"这里是技术篇，参照的这里：",[18,294,295],{"href":295,"rel":296},"https:\u002F\u002Fwww.4gamer.net\u002Fgames\u002F307\u002FG030796\u002F20160829088\u002F",[22],[40,298,299],{"id":299},"引擎选择",[11,301,302],{},"候补引擎有Unity和Cocos2d-x两个，花费一个月的时间对两个引擎进行了考察验证。分成两组分别使用对应的引擎进行功能实现。",[11,304,305],{},"最核心的要求是：一定要保证帧率维持在60帧。",[11,307,308],{},"目标上，要能够让偶像的演出更加接近插画的风格。对于高性能的手机，则要能够提供对应的高品质输出。",[11,310,311],{},"在验证时，分别对2D旋律游戏和3D演出这两个部分进行。",[11,313,314],{},"3D部分的主要考察点是顶点数、贴图分辨率、骨骼数量等基本性能。在进行性能分析时，除了使用引擎本身提供的工具之外，还使用了硬件开发商提供的性能优化工具对Shader的性能进行分析。",[11,316,317],{},"除了基本的性能验证，对图像特效这些可以动态调整的要素也进行了验证。图像效果上，考虑到为了表现出插画的风格，必须要能够支持Bloom和DOF特效的实现。",[11,319,320],{},"经过了一个月的验证后，最终选择了Unity。虽然Cocos2d-x具有开源的优势，但是Unity的开发效率更高，同时公司内部也已经有了相应的开发经验。最重要的是，在1个月的验证期间Unity产出的成果的品质起了关键作用。",[40,322,323],{"id":323},"性能优化",[11,325,326],{},"在引擎验证阶段就遇到了Thermal Throttling的问题，手机在高负荷运作导致温度上升后，会对CPU和GPU的运行效率进行下调。这个问题只能通过优化来解决。",[11,328,329,330,333,334,337],{},"为了在所有的设备上都达到60帧，CGSS提供了",[97,331,332],{},"3D轻量","和",[97,335,336],{},"3D标准","两个级别的画质级别，对于2D部分也相应的有两个选项。这方面，苹果手机由于机种和性能比较明确，对于IPhone 5之前的手机使用的是3D轻量，包括IPhone 6之后的手机，则使用3D标准。",[11,339,340],{},"对于Android手机，由于存在很多碎片化的问题，则是通过获取手机的硬件信息，根据其性能参数来动态的决定使用哪一个性能等级。",[256,342,343,346],{},[11,344,345],{},"IOS使用UnityEngine.iOS.Device.generation",[11,347,348],{},"Android基于SystemInfo.graphicsDeviceName进行判定",[11,350,351],{},"对于MV视频播放这种用户无法操作的3D部分，由于性能负担较低，全部都使用的3D标准级别进行。",[40,353,354],{"id":354},"图像效果",[11,356,357],{},"两个性能等级在渲染上的差别之一在于部分图像效果的启用与否。",[11,359,360],{},"CGSS使用了一个混合的方法来达到Bloom和DOF的效果：",[11,362,363],{},[32,364],{"alt":365,"src":366},"image-20210112075819248","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210112075819248_thumb.png",[11,368,369],{},"在进行效果计算时，使用四分之一大小的渲染结果作为基础，上面的路径使用深度贴图进行模糊处理，下面的路径使用基于亮度的像素抽出。",[11,371,372],{},"由于深度贴图会额外的消耗一个DrawCall，对于低端设备而言难以承担，所以在3D轻量中没有启用。",[11,374,375],{},"四分之一大小的渲染贴图除了在这里使用之外，也会被用于场景中显示器上的图像输出。",[40,377,378],{"id":378},"光照",[11,380,381],{},"CGSS没有使用动态光照，角色、背景的光照都是通过Ambient Light来实现的。环境光照通过时间轴来控制，SpotLight的效果则使用面片来实现。",[11,383,384],{},"OutLine(轮廓线)使用的是反转Culling这种古典的方法来实现的，轮廓线的宽度和颜色，则通过Vertex Color来控制。",[11,386,387],{},"角色下方的阴影，使用的也是假的阴影。主要原因有两个，首先，要生成阴影必须使用深度贴图，无法在没有深度贴图的3D轻量上实现；另一方面，舞台上有非常多的光源，即便使用光照计算也无法很好的再现。",[11,389,390],{},[32,391],{"alt":392,"src":393},"image-20210112083029487","\u002Fwp-content\u002Fuploads\u002F2021\u002F01\u002Fimage-20210112083029487_thumb.png",[11,395,396],{},"通过对DrawCall进行限制可以很好的减轻CPU的负担，Unity提供的Draw call Batching功能提供了很大的帮助。",[40,398,399],{"id":399},"角色动画",[11,401,402],{},"对于CGSS而言，角色的动画是相当重要的部分，所有的动画都是采用动态捕捉制作的。",[11,404,405],{},"从MotionCapture数据到角色动画，全部使用同一个Generic的Rig，不使用IK而是使用旋转传递的方式来映射动画。同时基础骨骼全部都是等倍率，不会进行缩放。",[11,407,408],{},"在进行动画播放时，会给每一个角色添加一个随机的时间偏差，让动作产生差别。这样即便玩家在MV中进行暂停，也会看到全员的动作微妙的有一些不同。这样是为了模拟出人在舞蹈的真实感，而不是所有的模型都在作一模一样的动作。",[11,410,411],{},"旋转处理方面有一个问题，就是旋转的误差会随着骨骼累计到末端，尤其是当手上拿着什么东西的时候会特别的明显。这里一般会使用Motion Reduction来处理。",[256,413,414],{},[11,415,416,417,421],{},"The ",[418,419,420],"strong",{},"Motion Reduction"," property settings enable you to reduce the amount of motion transferred between the chest, neck, head, and shoulder body parts of your source Actor or Character to the corresponding object of your target character.",[11,423,424],{},"对于一些无法消除的抖动，会让动画表现中的一部分直接使用相对身体的Transform，而不是使用骨骼传递。例如利用手上拿着的麦克风，即便手的末端有一些传递过来的抖动，由于有麦克风遮挡住，可以有效的减少穿帮。",[40,426,427],{"id":427},"衣服模拟",[11,429,430],{},"衣服的物理模拟主要就是单纯的sprint计算，以及添加尽可能少的碰撞形态来作简单的碰撞判定。碰撞判定用的形态上，只有Sphere与Sphere以及Sphere与Capsule两种。由于运算在C#上消耗比较大，在完成之后转移到了原生代码上，获得了10%~20%的性能提升。",[11,432,433],{},"总体而言，在技术上很大程度使用了上一个世代的主机的很多优化技术。现代(指2015年)的手机已经具有能够匹敌上一个世代的主机的运算能力了，所以技术方面也能有很大的沿用。",{"title":180,"searchDepth":181,"depth":182,"links":435},[436,437,438,439,440,441],{"id":299,"depth":181,"text":299},{"id":323,"depth":181,"text":323},{"id":354,"depth":181,"text":354},{"id":378,"depth":181,"text":378},{"id":399,"depth":181,"text":399},{"id":427,"depth":181,"text":427},"2021-01-21",{"layout":189,"status":190,"published":191,"author":444,"author_login":194,"author_email":195,"wordpress_id":445,"wordpress_url":446,"date_gmt":447,"excerpt":448},{"display_name":193,"login":194,"email":195,"url":180},3159,"\u002F?p=3159","2021-01-21 15:10:00 +0000",{"type":8,"value":449},[450],[11,451,217],{},"\u002F2021-01-21-cedec-idol-master-notes-technic",{"title":212,"description":217},"_legacy\u002F2021\u002F2021-01-21-cedec-idol-master-notes-technic",[207,208],"Krvf8F4cDU1TX1sAE1mjPeIcd5tO6Pxn6Yg_T226ffM",7,1788763178572]